simrig 0.3.0__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- simrig-0.5.0/AGENTS.md +44 -0
- simrig-0.5.0/CHANGELOG.md +201 -0
- simrig-0.5.0/MANIFEST.in +5 -0
- simrig-0.5.0/PKG-INFO +522 -0
- simrig-0.5.0/README.md +490 -0
- simrig-0.5.0/docs/agent_workflow.md +236 -0
- simrig-0.5.0/docs/remote-gpu.md +213 -0
- simrig-0.5.0/docs/skill-installation.md +103 -0
- simrig-0.5.0/examples/README.md +83 -0
- simrig-0.5.0/examples/demo_reach.py +237 -0
- simrig-0.5.0/examples/learned_reach/README.md +132 -0
- simrig-0.5.0/examples/learned_reach/controllers/ik.py +40 -0
- simrig-0.5.0/examples/learned_reach/controllers/near_miss.py +47 -0
- simrig-0.5.0/examples/learned_reach/controllers/random.py +7 -0
- simrig-0.5.0/examples/learned_reach/controllers/zero.py +7 -0
- simrig-0.5.0/examples/learned_reach/evaluator.py +76 -0
- simrig-0.5.0/examples/learned_reach/preview.py +38 -0
- simrig-0.5.0/examples/learned_reach/results.json +164 -0
- simrig-0.5.0/examples/learned_reach/results.md +47 -0
- simrig-0.5.0/examples/learned_reach/task.json +246 -0
- simrig-0.5.0/examples/learned_reach/verify.py +77 -0
- simrig-0.5.0/examples/models/simple_arm.xml +38 -0
- simrig-0.5.0/examples/mujoco_reach/README.md +92 -0
- simrig-0.5.0/examples/mujoco_reach/controllers/ik.py +31 -0
- simrig-0.5.0/examples/mujoco_reach/controllers/zero.py +11 -0
- simrig-0.5.0/examples/mujoco_reach/evaluator.py +144 -0
- simrig-0.5.0/examples/mujoco_reach/task.json +67 -0
- simrig-0.5.0/examples/vision_cartpole.py +153 -0
- {simrig-0.3.0 → simrig-0.5.0}/pyproject.toml +2 -2
- {simrig-0.3.0 → simrig-0.5.0}/simrig/__init__.py +58 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/_version.py +1 -1
- {simrig-0.3.0 → simrig-0.5.0}/simrig/browser_render.py +19 -0
- simrig-0.5.0/simrig/browser_shell.py +333 -0
- simrig-0.5.0/simrig/cli.py +1076 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/core.py +2 -1
- simrig-0.5.0/simrig/custom_env.py +252 -0
- simrig-0.5.0/simrig/evaluation_suite.py +352 -0
- simrig-0.5.0/simrig/evaluator.py +248 -0
- simrig-0.5.0/simrig/failures.py +107 -0
- simrig-0.5.0/simrig/gates.py +361 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/huggingface.py +7 -5
- {simrig-0.3.0 → simrig-0.5.0}/simrig/io.py +6 -1
- {simrig-0.3.0 → simrig-0.5.0}/simrig/live_view.py +12 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/model_view.py +135 -5
- simrig-0.5.0/simrig/networks.py +80 -0
- simrig-0.5.0/simrig/playground_backend.py +1360 -0
- simrig-0.5.0/simrig/playground_evaluator.py +96 -0
- simrig-0.5.0/simrig/predicates.py +386 -0
- simrig-0.5.0/simrig/presets.py +200 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/preview.py +572 -99
- simrig-0.5.0/simrig/progress.py +218 -0
- simrig-0.5.0/simrig/ranking.py +131 -0
- simrig-0.3.0/simrig/lambda_cloud.py → simrig-0.5.0/simrig/remote.py +86 -34
- {simrig-0.3.0 → simrig-0.5.0}/simrig/rendering.py +11 -0
- simrig-0.5.0/simrig/rollout.py +212 -0
- simrig-0.5.0/simrig/run_manifest.py +162 -0
- simrig-0.5.0/simrig/runtime.py +372 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/scaffold.py +8 -0
- simrig-0.5.0/simrig/success.py +142 -0
- simrig-0.5.0/simrig/task_contract.py +668 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/three_scene.py +25 -0
- simrig-0.5.0/simrig/validate_env.py +499 -0
- simrig-0.5.0/simrig.egg-info/PKG-INFO +522 -0
- simrig-0.5.0/simrig.egg-info/SOURCES.txt +109 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig.egg-info/requires.txt +1 -1
- simrig-0.5.0/skills/simrig/SKILL.md +418 -0
- simrig-0.5.0/skills/simrig/agents/openai.yaml +4 -0
- simrig-0.5.0/skills/simrig/references/custom-environments.md +179 -0
- simrig-0.5.0/skills/simrig/references/evaluation-and-operations.md +368 -0
- simrig-0.5.0/skills/simrig/references/remote-gpu.md +75 -0
- simrig-0.5.0/skills/simrig/references/task-design.md +217 -0
- simrig-0.5.0/tests/fixtures/analytic_reach/README.md +21 -0
- simrig-0.5.0/tests/fixtures/analytic_reach/controllers/reward_trap.json +3 -0
- simrig-0.5.0/tests/fixtures/analytic_reach/controllers/valid.json +3 -0
- simrig-0.5.0/tests/fixtures/analytic_reach/planar_reach_evaluator.py +104 -0
- simrig-0.5.0/tests/fixtures/analytic_reach/planar_reach_task.json +132 -0
- simrig-0.5.0/tests/test_cli.py +508 -0
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_custom_env.py +93 -1
- simrig-0.5.0/tests/test_demo_reach.py +59 -0
- simrig-0.5.0/tests/test_evaluation_suite.py +197 -0
- simrig-0.5.0/tests/test_evaluator.py +149 -0
- simrig-0.5.0/tests/test_gates.py +152 -0
- simrig-0.5.0/tests/test_huggingface.py +73 -0
- simrig-0.5.0/tests/test_learned_reach.py +83 -0
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_live_view.py +2 -0
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_model_view.py +58 -0
- simrig-0.5.0/tests/test_networks.py +71 -0
- simrig-0.5.0/tests/test_playground_backend.py +502 -0
- simrig-0.5.0/tests/test_predicates.py +157 -0
- simrig-0.5.0/tests/test_presets.py +95 -0
- simrig-0.5.0/tests/test_preview.py +124 -0
- simrig-0.5.0/tests/test_progress.py +107 -0
- simrig-0.3.0/tests/test_lambda_cloud.py → simrig-0.5.0/tests/test_remote.py +110 -54
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_rendering.py +35 -1
- simrig-0.5.0/tests/test_rollout.py +102 -0
- simrig-0.5.0/tests/test_run_manifest.py +63 -0
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_runtime.py +58 -1
- simrig-0.5.0/tests/test_scaffold.py +167 -0
- simrig-0.5.0/tests/test_skill_guidance.py +53 -0
- simrig-0.5.0/tests/test_task_contract.py +166 -0
- simrig-0.3.0/PKG-INFO +0 -268
- simrig-0.3.0/README.md +0 -236
- simrig-0.3.0/simrig/browser_shell.py +0 -130
- simrig-0.3.0/simrig/cli.py +0 -643
- simrig-0.3.0/simrig/custom_env.py +0 -109
- simrig-0.3.0/simrig/playground_backend.py +0 -623
- simrig-0.3.0/simrig/presets.py +0 -93
- simrig-0.3.0/simrig/runtime.py +0 -134
- simrig-0.3.0/simrig/validate_env.py +0 -211
- simrig-0.3.0/simrig.egg-info/PKG-INFO +0 -268
- simrig-0.3.0/simrig.egg-info/SOURCES.txt +0 -47
- simrig-0.3.0/tests/test_cli.py +0 -279
- simrig-0.3.0/tests/test_demo_reach.py +0 -34
- simrig-0.3.0/tests/test_huggingface.py +0 -36
- simrig-0.3.0/tests/test_playground_backend.py +0 -65
- simrig-0.3.0/tests/test_presets.py +0 -34
- simrig-0.3.0/tests/test_scaffold.py +0 -67
- {simrig-0.3.0 → simrig-0.5.0}/LICENSE +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/setup.cfg +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/mujoco_backend.py +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig/paths.py +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig.egg-info/dependency_links.txt +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig.egg-info/entry_points.txt +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/simrig.egg-info/top_level.txt +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_core.py +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_jax_compat.py +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_mujoco_integration.py +0 -0
- {simrig-0.3.0 → simrig-0.5.0}/tests/test_paths.py +0 -0
simrig-0.5.0/AGENTS.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# SimRig Agent Guidelines
|
|
2
|
+
|
|
3
|
+
SimRig helps users move from robot models or known simulation tasks toward a
|
|
4
|
+
safe training/evaluation workflow. Prefer existing MuJoCo Playground envs when
|
|
5
|
+
one fits. Custom `*.py` env modules can be smoked/trained after they implement
|
|
6
|
+
reset/step correctly.
|
|
7
|
+
|
|
8
|
+
## Workflow
|
|
9
|
+
|
|
10
|
+
1. Inspect first.
|
|
11
|
+
- For raw MJCF/XML or Menagerie models, run model inspection before proposing
|
|
12
|
+
training.
|
|
13
|
+
- Compilation and short stepping are useful checks, but they do not prove a
|
|
14
|
+
model is trainable.
|
|
15
|
+
2. Prefer existing trainable environments.
|
|
16
|
+
- If a MuJoCo Playground environment exists for the user's robot/task, use
|
|
17
|
+
`simrig inspect-env`, then `simrig smoke`, then `simrig train`.
|
|
18
|
+
- For an attached or downloaded Brax policy, use `simrig eval` for headless
|
|
19
|
+
checks and `simrig demo` for a desktop MuJoCo viewer.
|
|
20
|
+
- Use `simrig preview` when the agent or user needs a browser-visible
|
|
21
|
+
localhost preview with orbit/zoom camera controls.
|
|
22
|
+
- Use `simrig view-model` to inspect raw Menagerie/XML robots with joint sliders.
|
|
23
|
+
- Use `simrig demo` only when a human wants the native desktop MuJoCo viewer.
|
|
24
|
+
3. Custom envs (module path ending in `.py`).
|
|
25
|
+
- Scaffold with `simrig new-env` only after the user chooses a task.
|
|
26
|
+
- Run `simrig validate-env PATH` (structure) then `simrig validate-env PATH --runtime`.
|
|
27
|
+
- Only propose `simrig smoke PATH` / `simrig train PATH` after runtime validation
|
|
28
|
+
passes (or the user explicitly wants to debug failures).
|
|
29
|
+
- Do not invent rewards/observations from model names alone.
|
|
30
|
+
- Prefer obs dict keys `state` and `privileged_state` for SimRig PPO defaults.
|
|
31
|
+
4. Keep generated code editable and ordinary.
|
|
32
|
+
- Do not hide reward logic or environment assumptions in opaque configs.
|
|
33
|
+
5. Be backend-aware.
|
|
34
|
+
- SimRig v0 supports MuJoCo and MuJoCo Playground.
|
|
35
|
+
- Isaac Lab is a future backend and should not be assumed available.
|
|
36
|
+
|
|
37
|
+
## Safety Rules
|
|
38
|
+
|
|
39
|
+
- Do not claim a raw Menagerie model is trainable because it compiles.
|
|
40
|
+
- Do not infer rewards, observations, or termination from model names alone.
|
|
41
|
+
- Do not invent a complete reward function just to make `new-env` look done.
|
|
42
|
+
- Run smoke tests before long training runs.
|
|
43
|
+
- Use `smoke` preset before `local` or `large`.
|
|
44
|
+
- `--preset large` is PPO scale. `simrig remote` is SSH to another Linux GPU.
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 0.5.0 - 2026-08-31
|
|
6
|
+
|
|
7
|
+
### Compatibility and scope
|
|
8
|
+
|
|
9
|
+
- Evaluation-suite reports now use schema v2. Do not rank them with older
|
|
10
|
+
reports; rerun evaluation with complete metric/event/contact evidence.
|
|
11
|
+
- Learned rollouts verify recorded environment source and model identities.
|
|
12
|
+
Checkpoints trained against the old reaching environment must not silently
|
|
13
|
+
run against its corrected source. Reproduce their original environment or
|
|
14
|
+
train a new policy on the corrected environment.
|
|
15
|
+
- Shared policy playback currently supports `action_repeat=1`; other control
|
|
16
|
+
rates fail explicitly. GPU vision and native desktop playback were not
|
|
17
|
+
validated by the new CPU reaching reference.
|
|
18
|
+
- The learned reaching reference demonstrates training, independent evaluation,
|
|
19
|
+
and preview, but both learned and random controls pass its 24 arrival cases.
|
|
20
|
+
Its verifier therefore fails the baseline-discrimination expectation. This
|
|
21
|
+
release does not claim a demanding manipulation skill or hardware readiness.
|
|
22
|
+
- Task/reward design remains agent-owned. Reward probes analyze existing
|
|
23
|
+
reports; they do not automatically search for new exploits.
|
|
24
|
+
|
|
25
|
+
### Changes
|
|
26
|
+
|
|
27
|
+
- Replace the README's Go1 workflow GIF with a recorded dual-Panda A→B→A
|
|
28
|
+
mixed-controller exchange. The GIF labels the expert replay, learned catch,
|
|
29
|
+
and scripted restow; detailed compatibility and evaluation limits remain in
|
|
30
|
+
the release notes and source demo documentation.
|
|
31
|
+
- Show green success, red failure, or neutral unknown outcomes in policy previews
|
|
32
|
+
using environment success metrics. Keep episode completion separate from task
|
|
33
|
+
success, and replace survival wording with neutral step counts.
|
|
34
|
+
- Share policy loading and checked rollout execution across headless eval,
|
|
35
|
+
browser preview, native demo, and a reusable Playground evaluator adapter.
|
|
36
|
+
Restore final parameter files and Orbax checkpoints with recorded network
|
|
37
|
+
normalization and environment identity checks.
|
|
38
|
+
- Add task-owned reset/measurement hooks, reusable evaluator instances, unique
|
|
39
|
+
trial reports, report schema v2, missing-evidence outcomes, strict seed coverage,
|
|
40
|
+
and invalid numerical state/action checks. Empty contact streams require
|
|
41
|
+
declared measurement coverage; mixed identities and unknown samples cannot
|
|
42
|
+
silently pass promotion.
|
|
43
|
+
- Add a real learned-reaching acceptance reference with IK, zero, random, and
|
|
44
|
+
near-miss controls, a separately reserved holdout suite, and scenario-matched
|
|
45
|
+
previews. Fix stale post-integration site positions in the reaching environment
|
|
46
|
+
discovered by the independent evaluator; keep its reward formula and threshold.
|
|
47
|
+
- Add `preview --seed` and `eval --output`; preserve unique reports by default.
|
|
48
|
+
|
|
49
|
+
- Add versioned task contracts with `simrig task init`, `validate`, `freeze`,
|
|
50
|
+
and semantic `diff`. Frozen contracts use canonical content hashes and can
|
|
51
|
+
enforce resolved timestep, wall-time, GPU-hour, and metric abort budgets.
|
|
52
|
+
- Add task-agnostic `simrig gate` promotion suites over independent JSON
|
|
53
|
+
evaluation reports, including required seed/scenario coverage and grouped
|
|
54
|
+
metric requirements.
|
|
55
|
+
- Add `simrig reward-audit` to flag obvious disagreement between reward and
|
|
56
|
+
independently recorded task success.
|
|
57
|
+
- Write v2 `run_manifest.json` lifecycle records with contract identity,
|
|
58
|
+
checkpoint lineage, bounded local source/XML/asset closure hashes, richer Git
|
|
59
|
+
state, actual progress, GPU-hours, optional cost, and failure status.
|
|
60
|
+
- Replace the old cloud SSH path with `simrig remote`. The host is any
|
|
61
|
+
already-running Linux GPU over SSH. SimRig still does not provision or stop
|
|
62
|
+
machines.
|
|
63
|
+
- Rename the large PPO preset from `cloud` to `large`. `--preset large` is
|
|
64
|
+
scale, not a remote launcher. `--preset cloud` remains a hidden alias, and
|
|
65
|
+
old run `config.json` files that recorded `"preset": "cloud"` still load.
|
|
66
|
+
- Write `metrics.jsonl` and `progress.json` during PPO, and add `simrig status`
|
|
67
|
+
plus richer `simrig remote status` (step count, eval reward, ETA).
|
|
68
|
+
- Add `simrig train --resume` / `simrig remote train --resume` to restore Brax
|
|
69
|
+
Orbax checkpoints.
|
|
70
|
+
- Report `task_success` from `state.metrics["success"]` or `SUCCESS_SPEC`
|
|
71
|
+
instead of always leaving it unknown.
|
|
72
|
+
- Add a backend-neutral evaluator plugin protocol and `simrig eval-suite` for
|
|
73
|
+
frozen scenario-by-seed matrices, with evaluator/source hashes in reports and
|
|
74
|
+
run manifests.
|
|
75
|
+
- Add generic event, sustained-signal, metric, sequence, and contact predicates
|
|
76
|
+
with a stable machine-readable terminal failure taxonomy.
|
|
77
|
+
- Add per-condition promotion reports, coverage-failing bounded checkpoint
|
|
78
|
+
evaluation, report-based reward probes, and reward-independent checkpoint
|
|
79
|
+
ranking.
|
|
80
|
+
- Add explicit task-contract schema migration and purpose-specific exact,
|
|
81
|
+
training-resume, checkpoint-evaluation, and result-comparison policies.
|
|
82
|
+
- Add a native MuJoCo controller-evaluation example with explicit task semantics,
|
|
83
|
+
actual actuator stepping, an IK controller, and a zero-action baseline. Keep
|
|
84
|
+
the synthetic reward-trap case under test fixtures, not public checkpoints.
|
|
85
|
+
- Forward additional Brax PPO settings, including adaptive-KL scheduling and
|
|
86
|
+
advantage/value-loss controls, from environment training configuration.
|
|
87
|
+
- Include examples, test fixtures, and skill documentation in source archives
|
|
88
|
+
so their tests and documented examples can run outside a Git checkout.
|
|
89
|
+
- Strengthen the SimRig agent skill with a mandatory, user-confirmed Physical
|
|
90
|
+
Success Definition gate before reward, termination, environment authoring, or
|
|
91
|
+
training for new task semantics, including feasibility checks, counterexamples,
|
|
92
|
+
controls, and independent promotion evidence.
|
|
93
|
+
|
|
94
|
+
## 0.4.0 - 2026-08-17
|
|
95
|
+
|
|
96
|
+
- Require Python 3.11+, test the supported boundary in CI, and make static
|
|
97
|
+
vision validation parse literal metadata without importing JAX or Playground.
|
|
98
|
+
- Publish a five-seed-tested, 1,000-step vision CartPole reference checkpoint
|
|
99
|
+
and download its sibling `config.json` with `hf://` policies so vision CNNs
|
|
100
|
+
reconstruct from Hub artifacts without manual metadata setup.
|
|
101
|
+
- Make policy previews task-aware: hide unsupported command controls, accept
|
|
102
|
+
environment-defined command fields, expose episode state and survival, add
|
|
103
|
+
optional automatic reset, and label physics, policy-observation, sensor, and
|
|
104
|
+
browser display rates separately.
|
|
105
|
+
- Keep Three.js previews headless-safe by lazily starting the optional native
|
|
106
|
+
Sensor renderer and selecting EGL before MuJoCo import on display-less Linux.
|
|
107
|
+
- Pin the tested Warp 1.13 runtime and bridge MuJoCo 3.10's stale internal
|
|
108
|
+
`GraphMode` import so CUDA vision environments can construct and step. The
|
|
109
|
+
vision reference also normalizes Warp's unbatched singleton renderer axis so
|
|
110
|
+
checkpoint evaluation receives logical HWC pixels.
|
|
111
|
+
- Show live, selectable named cameras inside Three.js model and policy previews:
|
|
112
|
+
an authored-pose/FOV Three.js emulation by default, plus a native MuJoCo
|
|
113
|
+
sensor comparison, while preserving the independent human orbit camera.
|
|
114
|
+
- Add declarative custom-env vision CNN selection across train/eval/demo/preview,
|
|
115
|
+
rendered-frame validation with CUDA/Warp capability reporting, and a complete
|
|
116
|
+
MJX-rendered cartpole vision PPO reference.
|
|
117
|
+
- Resolve registered MuJoCo Playground training from each task's tuned Brax PPO
|
|
118
|
+
and network configuration while preserving SimRig's bounded smoke/local gates.
|
|
119
|
+
- Add `--impl auto|jax|warp`, GPU-aware Warp fallback, reproducible `--seed`,
|
|
120
|
+
and opt-out domain randomization for local and remote training.
|
|
121
|
+
- Record the resolved implementation, network, randomizer, source hashes, Git
|
|
122
|
+
state, JAX devices, precision environment, and exact CLI overrides in every run.
|
|
123
|
+
- Reconstruct recorded implementations and network layouts for eval, demo, and
|
|
124
|
+
browser preview, while preserving legacy checkpoint compatibility.
|
|
125
|
+
- Add a full pinned Playground CI job that validates, smokes, trains, and reloads
|
|
126
|
+
the custom reaching example.
|
|
127
|
+
|
|
128
|
+
## 0.3.0 - 2026-08-01
|
|
129
|
+
|
|
130
|
+
- Add an SSH GPU workflow with connection and GPU checks, project sync/setup,
|
|
131
|
+
remote smoke and PPO training, detached-run status, and run-artifact download.
|
|
132
|
+
- Add a remote GPU operations guide covering SSH keys, persistent storage,
|
|
133
|
+
smoke-before-scale gates, port forwarding, and stopping billable VMs.
|
|
134
|
+
- Pin the Playground training stack and require Python 3.11+ during remote
|
|
135
|
+
preparation instead of silently resolving an older environment on Python
|
|
136
|
+
3.10.
|
|
137
|
+
- Record Python and package versions in every training run and refuse eval,
|
|
138
|
+
demo, or preview under a different runtime unless the user explicitly allows
|
|
139
|
+
a qualitative mismatch.
|
|
140
|
+
- Validate SSH identity files, restrict authentication to the selected key,
|
|
141
|
+
fail closed when port forwarding cannot be established, and support older
|
|
142
|
+
macOS `rsync` clients.
|
|
143
|
+
- Require the final policy, metrics, and checkpoint artifacts before reporting
|
|
144
|
+
a detached remote run as completed; fetched runs now include a shutdown-cost
|
|
145
|
+
reminder.
|
|
146
|
+
- Evaluation results distinguish rollout completion from task success and state
|
|
147
|
+
clearly when no task-specific success evaluator is configured.
|
|
148
|
+
|
|
149
|
+
## 0.2.2 - 2026-07-31
|
|
150
|
+
|
|
151
|
+
- `LiveWebViewer` lets ordinary MuJoCo Python scripts publish their existing
|
|
152
|
+
`MjModel`/`MjData` state to the interactive Three.js viewer without handing
|
|
153
|
+
control or simulation stepping to SimRig.
|
|
154
|
+
- Live script viewers can track a named body and draw its browser-side path.
|
|
155
|
+
- Package metadata links PyPI users back to the repository, issues, and
|
|
156
|
+
changelog.
|
|
157
|
+
- CI installs its NumPy test dependency, validates built distributions, and
|
|
158
|
+
uses Node.js 24-compatible GitHub Actions.
|
|
159
|
+
- Tagged releases publish through PyPI Trusted Publishing and create a GitHub
|
|
160
|
+
Release with the wheel and source distribution attached.
|
|
161
|
+
|
|
162
|
+
## 0.2.1 - 2026-07-31
|
|
163
|
+
|
|
164
|
+
- `simrig preview` now uses the Three.js/WebGL renderer by default, with a
|
|
165
|
+
server-side rollout clock, live geom-transform updates, and a tracking camera
|
|
166
|
+
that follows the evaluated robot without coupling orbit controls to frame
|
|
167
|
+
rendering.
|
|
168
|
+
- `simrig preview --render-mode mujoco` retains the streamed MuJoCo policy
|
|
169
|
+
preview for fully local/offline rendering.
|
|
170
|
+
|
|
171
|
+
## 0.2.0 - 2026-07-31
|
|
172
|
+
|
|
173
|
+
- `simrig view-model` now defaults to a GPU-accelerated Three.js/WebGL viewer
|
|
174
|
+
with smooth orbit, zoom, pan, physically based materials, lighting, shadows,
|
|
175
|
+
and responsive browser rendering.
|
|
176
|
+
- The browser model viewer serves compiled MuJoCo mesh and primitive geometry,
|
|
177
|
+
filters collision-only geometry from the default visual scene, and updates
|
|
178
|
+
geom transforms when joint controls change.
|
|
179
|
+
- Model viewing starts from the first authored MJCF keyframe when one exists;
|
|
180
|
+
**Reset Joints** restores that pose.
|
|
181
|
+
- `simrig view-model --render-mode mujoco` retains the streamed MuJoCo renderer,
|
|
182
|
+
and `--render-mode topdown` retains the schematic fallback.
|
|
183
|
+
- `simrig eval` accepts reproducible `--seed` rollouts and fixed
|
|
184
|
+
`--command` values for command-conditioned environments.
|
|
185
|
+
- `simrig --version` reports the package version from one shared source.
|
|
186
|
+
- The reaching example samples reachable planar targets and keeps its rendered
|
|
187
|
+
target marker synchronized with environment state.
|
|
188
|
+
- Codex discovers the repository skill through `.agents/skills/simrig`.
|
|
189
|
+
- Custom `*.py` env modules can be used with `inspect-env`, `smoke`, `train`, `eval`, `demo`, and `preview`.
|
|
190
|
+
- `validate-env --runtime` imports the module and runs construct/reset/step checks when possible.
|
|
191
|
+
- `new-env` scaffold includes `make_env()` and documents the smoke/train path.
|
|
192
|
+
- JAX 0.10 + Brax 0.14 compat shim for `device_put_replicated` so `simrig train` works.
|
|
193
|
+
- Example custom-env test drive: `examples/demo_reach.py` + `examples/models/simple_arm.xml`.
|
|
194
|
+
|
|
195
|
+
## 0.1.0
|
|
196
|
+
|
|
197
|
+
- Agent- and human-friendly CLI for MuJoCo Playground inspect, smoke, train, eval, and browser preview.
|
|
198
|
+
- Model inspection for MuJoCo / Menagerie assets with honest trainability status.
|
|
199
|
+
- Basic custom-env foothold: `simrig new-env` scaffold and `simrig validate-env` static checklist.
|
|
200
|
+
- Hugging Face `hf://` policy loading for eval/demo/preview.
|
|
201
|
+
- Open-source packaging: LICENSE, CONTRIBUTING, CI, and 10-minute quickstart docs.
|