ssuleiman/simrig-orbit-reach
SimRig Orbit-Arm Reach
Trained PPO reference for SimRig's examples/mujoco_reach/orbit_reach.py environment. The actor moves a 3-DoF arm (base_yaw, shoulder, elbow) to a world-frame target and must keep ee_site within 0.05 m for five consecutive 0.02 s control ticks, with no forbidden arm-floor or arm-base contacts.
This is a toy orbit arm, not an industrial manipulator.
Use revision `v2`. Same weights as v1; the env module adds preview_episode so simrig preview pins the displayed eval goals. Training reset() is unchanged.
Training
- SimRig environment:
examples/mujoco_reach/orbit_reach.py - Env module SHA-256:
bf93e9d7af55aa0ea5d8cf512d43d435ef6701e833a32c9362d6312671d64554 - Model:
examples/models/orbit_arm.xml - PPO steps: 4,014,080 (requested: 4,000,000)
- Vectorized environments: 2,048
- Training seed: 23
- Hardware: NVIDIA GeForce RTX 4060 Ti
- Python: 3.13.13
- JAX: 0.10.2; Brax: 0.14.2; MuJoCo: 3.10.0; Playground: 0.2.0
Trainer eval success on random reset targets was 81.25%.
Independent evaluation
Deterministic promotion on the displayed 30-goal set (60 seeds) in the recorded Linux CUDA runtime:
The held-out 30-goal suite was not used for this promotion gate.
Run with SimRig
git clone https://github.com/Su1eym4n/simrig.git
cd simrig
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[playground,hf]"
.venv/bin/simrig preview \
hf://ssuleiman/simrig-orbit-reach/policy.params \
--env examples/mujoco_reach/orbit_reach.py \
--hf-revision v2 \
--allow-runtime-mismatch \
--port 8765The env's preview_episode hook replaces the training-reset target with the displayed eval goals. Generic reset-only preview would not match eval-suite. --allow-runtime-mismatch is required off the recorded Linux Python 3.13 / CUDA runtime and makes the preview qualitative.
.venv/bin/simrig eval-suite \
hf://ssuleiman/simrig-orbit-reach/policy.params \
--contract examples/mujoco_reach/policy_task.v2.frozen.json \
--suite promotion \
--hf-revision v2Files
policy.params: exported Brax policy parameters (same bytes as v1).config.json: resolved training config with the v2 env-module hash.final_metrics.json: final PPO trainer metrics.evaluation.json: independent displayed-set promotion summary.orbit_reach.py: environment source snapshot used with this revision.orbit_arm.xml: model snapshot used for training.policy_task.v2.frozen.json: frozen task contract used for training.
