rocm-oxide-robotics-lab is an experimental AMD-native robotics simulation workbench built on rocm-oxide-sim and ROCm-Oxide. It focuses first on sensor simulation, synthetic data generation, and scenario orchestration.
It is the application/workbench layer. rocm-oxide-sim owns reusable simulation, sensor, scenario, dataset, and validation APIs. ROCm-Oxide owns the Rust-first AMD GPU SDK/runtime/toolchain. This repo should orchestrate those layers, not copy their internals.
This is not an Isaac Sim clone. The first shell does not implement physics, ROS2, URDF, OpenUSD, mesh/BVH rendering, robot articulation, a full GUI editor, zero-copy Vulkan/HIP interop, cloud orchestration, multi-GPU scheduling, or a custom GPU runtime.
crates/lab-project Project/session JSON and path resolution
crates/lab-scenarios Built-in scenario catalog and scenario loading
crates/lab-runner Scenario inspection, backend-aware runs, batch jobs, validation, doctor
crates/lab-report JSON/text/Markdown report helpers
crates/lab-ui-placeholder Future UI status only, no GUI dependency
crates/lab-ros2-placeholder Future ROS2 status only, no ROS2 dependency
apps/robotics_lab Main CLI app
examples/projects/ Example lab project configs
The intended temporary local layout is:
workspace-root/
ROCm-Oxide/
rocm-oxide-sim/
rocm-oxide-robotics-lab/
This checkout currently uses the case-sensitive sibling directory ../ROCm-Oxide-Sim, so Cargo path dependencies point at that local folder. This is temporary until the simulator crates are published.
cargo run -p robotics_lab -- list-scenarios
cargo run -p robotics_lab -- inspect-scenario --scenario basic_sensor_rig
cargo run -p robotics_lab -- render-one --scenario basic_sensor_rig --backend cpu-preview --out target/lab_render --overwrite
cargo run -p robotics_lab -- dataset --scenario randomized_boxes_rig --frames 8 --backend cpu-preview --out target/lab_dataset --overwrite
cargo run -p robotics_lab -- validate --dataset target/lab_dataset
cargo run -p robotics_lab -- doctorLive preview is available through the simulator viewer:
cargo run -p robotics_lab -- preview --scenario basic_sensor_rig --backend rocm --dry-run
cargo run -p robotics_lab --features rocm -- preview --scenario basic_sensor_rig --backend rocm --frames 4 --mode rgbProject files can inspect and run ordered render, dataset, and validation jobs:
cargo run -p robotics_lab -- project inspect --project examples/projects/basic_lab_project.json
cargo run -p robotics_lab -- project list-jobs --project examples/projects/basic_lab_project.json
cargo run -p robotics_lab -- project dry-run --project examples/projects/basic_lab_project.json
cargo run -p robotics_lab -- project run --project examples/projects/basic_lab_project.json --overwrite
cargo run -p robotics_lab -- project preview --project examples/projects/basic_lab_project.json --backend rocm --dry-run
cargo run -p robotics_lab -- robot list --project examples/projects/robot_sensor_project.json
cargo run -p robotics_lab -- robot inspect --project examples/projects/robot_sensor_project.json --robot demo_rover
cargo run -p robotics_lab -- project materialize-scenario --project examples/projects/robot_sensor_project.json --out target/materialized_scenario.json --overwrite
cargo run -p robotics_lab -- preview --scenario-path target/materialized_scenario.json --backend rocm --dry-runexamples/projects/robot_sensor_project.json demonstrates robot placeholders and scenario materialization. It mounts the upstream front_rig sensor rig on a demo_rover base transform, reports robot-aware sensor poses, and can write a simulator-compatible scenario JSON with composed sensor transforms. Robot bodies are metadata only; they are not rendered, simulated, articulated, imported from URDF/OpenUSD, or published through ROS2.
The project commands are documented in:
docs/project_files.mddocs/robot_placeholders.mddocs/scenario_materialization.mddocs/batch_jobs.mddocs/backend_selection.mddocs/live_preview.mddocs/testing.md
Explicit scenario paths are supported:
cargo run -p robotics_lab -- inspect-scenario --scenario-path ../ROCm-Oxide-Sim/examples/scenarios/basic_sensor_rig.json
cargo run -p robotics_lab -- dataset --scenario-path target/materialized_scenario.json --frames 4 --backend cpu-preview --out target/materialized_dataset --overwriteDefault builds do not require ROCm. These commands work CPU-only:
list-scenariosinspect-scenariodoctorrender-one, using deterministic CPU preview outputsdataset, using deterministic CPU preview outputsvalidateproject inspect,project list-jobs,project dry-run, andproject runwith thecpu-previewbackendrobot listandrobot inspectfor placeholder robot metadataproject materialize-scenarioand direct--scenario-pathrender/dataset commandspreview --dry-runandproject preview --dry-runcargo test
The --backend selector accepts cpu-preview and rocm. Default builds reject rocm unless the lab is built with the rocm feature and a compatible local ROCm/HIP device is available.
ROCm builds use the simulator's ROCm renderer path:
cargo check -p robotics_lab --features rocm
cargo run -p robotics_lab --features rocm -- render-one --scenario basic_sensor_rig --backend rocm --out target/lab_render_rocm --overwrite
cargo run -p robotics_lab --features rocm -- dataset --scenario randomized_boxes_rig --frames 4 --backend rocm --out target/lab_dataset_rocm --overwrite
cargo run -p robotics_lab --features rocm -- preview --scenario basic_sensor_rig --backend rocm --frames 4 --mode rgbThere is no silent fallback from rocm to cpu-preview.
The scenario catalog maps:
basic_sensor_rig->../ROCm-Oxide-Sim/examples/scenarios/basic_sensor_rig.jsonrandomized_boxes_rig->../ROCm-Oxide-Sim/examples/scenarios/randomized_boxes_rig.json
The lab writes preview datasets and reports, but it does not simulate dynamics, import robot descriptions, launch ROS2 nodes, edit scenes graphically, or add new simulator primitives. Those belong to later milestones or lower layers.