Physicalai/genesis - #5
Conversation
Clarify the learning flow and validate scene and motion assumptions so PhySim01-04 remain reproducible on Genesis 1.3. Co-authored-by: Cursor <cursoragent@cursor.com>
Record the MuJoCo Menagerie origin and include the Apache-2.0 terms required for redistributing the Panda assets. Co-authored-by: Cursor <cursoragent@cursor.com>
Extend the course with ROCm vision and tactile interaction plus a guarded language-agent workflow, reusable live HUD controls, and an optional local LLM runtime. Co-authored-by: Cursor <cursoragent@cursor.com>
Preserve the language-guided Genesis agent demonstration as a reusable README media asset. Co-authored-by: Cursor <cursoragent@cursor.com>
Update the bilingual course overview to reflect PhySim05/06 and feature the language-guided agent demonstration. Co-authored-by: Cursor <cursoragent@cursor.com>
Credit the team for Physical AI teaching material and direct readers to notebook-level source and repository attribution. Co-authored-by: Cursor <cursoragent@cursor.com>
Use GS01-GS06 across notebook filenames, course references, demo assets, and Docker packaging to make the Genesis Simulation identity explicit. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
This PR merges the Genesis Simulation lab sequence updates (GS05/GS06) into develop by expanding the Genesis Simulation curriculum, adding reusable HUD/widget helpers, and updating the container build to include a pinned llama-server binary plus the new notebook set.
Changes:
- Updates the root READMEs to reflect the extended Genesis Simulation progression (through ROCm perception + language-guided agent) and adds clearer attribution notes.
- Adds a full Genesis-Simulation course README plus new helper modules/scripts for recording/exporting a live HUD, GPU telemetry, and starting a local llama.cpp server.
- Extends the Genesis-Simulation Docker image build to compile and ship a pinned
llama-server, and installs additional runtime dependencies for notebooks/widgets/HUD.
Reviewed changes
Copilot reviewed 18 out of 20 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| README.zh-TW.md | Updates Genesis Simulation description and adds AMD AECG / attribution note (zh-TW). |
| README.md | Updates Genesis Simulation description and adds AMD AECG / attribution note (EN). |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/xml/franka_emika_panda/README.md | Replaces embedded MIT license text with upstream attribution + points to local Apache-2.0 license. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/xml/franka_emika_panda/LICENSE | Adds Apache-2.0 license text for the Franka Panda MJCF/assets directory. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/README.md | Adds end-to-end instructions for building/running labs, live HUD usage, and optional LLM endpoint workflow. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/helpers/start_llama_server.sh | Adds a helper script to start and sanity-check a local llama-server inside the container. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/helpers/physisim_widget.py | Adds ipywidgets-based live controllers for GS05/GS06 HUD interaction and export. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/helpers/physisim_hud.py | Adds HUD composition, ffmpeg writer, and AMD GPU telemetry monitor utilities. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/helpers/init.py | Exposes helper module public API via __all__. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/GS05_perception_with_rocm.ipynb | Adds a full ROCm perception + tactile reduction lab, recordings, and a live simulation widget. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/GS04_parallel_simulation.ipynb | Updates GS04 narrative/goals and adds minor safety/consistency improvements (e.g., scene reinit guard). |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/GS03_motion_planning.ipynb | Updates GS03 narrative/goals and adds motion-plan validity checking before execution. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/GS02_control_your_robot.ipynb | Adds a new GS02 lab notebook focused on PD control and DOF-level APIs with recorded output. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/GS01_hello_genesis.ipynb | Updates GS01 narrative/goals and adds consistency improvements (e.g., scene reinit guard, conclusions). |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/Dockerfile | Adds a llama.cpp builder stage, Vulkan runtime libs, new pip deps, and copies GS* notebooks + helpers. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/.gitignore | Ignores generated artifacts/videos/models and Python caches for the Genesis-Simulation workspace. |
| projects/Physical-AI/Physical-Simulation/Genesis-Simulation/.dockerignore | Excludes large/generated directories and GGUFs from Docker build context. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Status messages carry planner output, local LLM replies and exception strings, so interpolating them raw into the ipywidgets HTML pane could break rendering or inject markup into notebook output. Co-authored-by: Cursor <cursoragent@cursor.com>
The writer drained ffmpeg stderr only on failure or shutdown, so a noisy encoder could fill the pipe buffer, stop consuming frames and deadlock both the recording and the surrounding close(). Capture stderr in a temp file instead, which has no buffer ceiling and still preserves the diagnostics reported on failure. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 18 out of 20 changed files in this pull request and generated no new comments.
Suppressed comments (2)
Previously missed (1) — in code that hasn't changed since the last review.
projects/Physical-AI/Physical-Simulation/Genesis-Simulation/README.md:224
- The nbconvert Docker command doesn't set the container working directory. Because the notebooks write relative paths like
Videos/and importhelpers/as a top-level package, running nbconvert from a different CWD can cause outputs to be written outside the bind mount and can break imports. Set-w /opt/workspace/PhySim(or equivalently--ExecutePreprocessor.cwd) in the command.
This issue also appears on line 230 of the same file.
docker run --rm \
--device=/dev/kfd \
--device=/dev/dri \
--group-add video \
--ipc=host \
--security-opt seccomp=unconfined \
-v "$PWD:/opt/workspace/PhySim" \
--entrypoint jupyter \
auplc-physisim:physicalai-genesis \
projects/Physical-AI/Physical-Simulation/Genesis-Simulation/README.md:238
- Same issue as the GS05 nbconvert example: without setting the working directory, relative paths (e.g.
Videos/,Artifacts/,helpers/) may resolve outside the bind mount during non-interactive execution. Add-w /opt/workspace/PhySim(or--ExecutePreprocessor.cwd) so the run is reproducible and artifacts persist on the host.
docker run --rm \
--device=/dev/kfd \
--device=/dev/dri \
--group-add video \
--ipc=host \
--security-opt seccomp=unconfined \
-v "$PWD:/opt/workspace/PhySim" \
--entrypoint jupyter \
auplc-physisim:physicalai-genesis \
Merge GS05 and GS06 to the develop branch.