Skip to content

release ready - #1

Merged
lok-i merged 29 commits into
mainfrom
release/lean
Sep 26, 2026
Merged

lok-i merged 29 commits into
mainfrom
release/lean

Conversation

@lok-i

@lok-i lok-i commented Sep 26, 2026

Copy link
Copy Markdown
Owner

release/lean → main: v0.1.0

Readies vibe for its public release: fixes release bugs, cuts dead code, and trims the docs to usage.

Fixes

  • Dodge release served the wrong env. The released checkpoint (W&B i8p7jymh) was trained in Vibe-Dodge-ConeFast-ImgFeat-Ext, but the manifest filed it under Vibe-Dodge-ImgFeat-Ext. The manifest, the HF path (lkrajan/vibe @ v0.1.0, same sha256) and the readme now name ConeFast.
  • Missing data broke import vibe. Repose now skips its tasks when their data is missing (SKIP_REASON), like the other families. Before, sync_data.sh grail|omre alone broke every CLI.
  • export-agent --deploy is fork-safe, imports onnxruntime lazily, and takes --release.
  • play --agent release keeps recorded clips out of the download cache. --agent initial refuses a named checkpoint.

Release and reproducibility

  • docs/tasks.md#train: every released run's train command, flag for flag from its W&B metadata.
  • bf16 is documented as RTX 5090-only: on a 3090 or L40S, Diagnostics/logp_drift_mb0 sits near 1e-1 and reward stalls (docs/metrics.md).
  • The W&B project defaults to vibe.
  • CITATION.cff (arXiv 2609.09918) and docs/roadmap.md.

Repo

  • CI: ruff check on push and PR. pytest needs the synced deps and data, so it runs locally (readme ### test).
  • Tests: test_stage_render dropped; 5 contract files, 81 tests.
  • Dead code and comments cut; docs reduced to usage. CLAUDE.md went from 422 to 132 lines.
  • Readme: banner, one task per usage line, task gallery.
  • Viser play: the Attention panel is the first box in the Controls tab.

Verified

  • ruff · pytest (81 passed) · sync_deps and sync_data --check pass, and the lock matches release.json compatibility
  • All 5 released checkpoints: fetched via --agent release, loaded strictly into their play env, 300-step rollout
  • export-agent Vibe-Dodge-ConeFast-ImgFeat-Ext --release: open-loop max|Δa| 2.6e-6, closed loop 128/128 steps
  • Hands-on: logs/play_best.sh (native + viser)

Known

  • deps.lock pins orcs on its dev branch setup/lean-no-smpl (1b71dcf). Re-pinning it to orcs main is roadmap item 1.

lok-i and others added 29 commits September 24, 2026 02:18
- sync_deps.sh --deploy installs the deploy extra before the rsl_rl fork;
  `pip install -e .[deploy]` re-resolved mjlab's rsl-rl-lib==5.2.0 over it
- export-agent imports without onnxruntime (only --check/--viewer need it)
- export-agent --release exports the lkrajan/vibe checkpoint, routed like play

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- a released play files clips under videos/<task>/release/, not ~/.cache
- --agent initial refuses a named checkpoint instead of ignoring it
- auto resolves before the recorder reads the agent (no videos/<task>/auto/)
- VIBE_PAUSED=1 (VIBE_REC kept as alias); take clip count; episode >= 100
- headless GL failure names the fix (MUJOCO_GL=egl)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- repose: ReorientationCommand + helpers, planner slot/seat kernels, unused
  mat6d obs terms and command props, commented-out reward/VOF/query blocks
- zoo: vision towers only (bit-exact vs image_feature); no text half,
  mobileclip2 or offline-analysis API
- core: planner cam, arms.py, unused paths helpers; g1 mesh-hand variant
- dodge: ConeFast delay_steps shim, unused pitch constant
- setup: unzip/pip_subpath lock plumbing; venv python from .python-version

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- flat docs/: setup, tasks, architecture, metrics, record (new), export —
  description + usage only; research log, offline eval, roadmap removed
- readme: what it is, install, usage, releases, tasks, doc index, license
- CLAUDE.md 422 -> 132 lines: rules + sharp bits, no analysis numbers
- THIRD_PARTY_NOTICES: released checkpoints (NVIDIA Open Model License)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- plain words for the motion command and the adapted base; no dev-only
  jargon, run ids, cluster names or pointers to tools not in this repo
- fix misleading comments: q_cls is on by default, model_dtype default,
  query order, the aux=True note on the -Ext agents, zoo's role
- history diaries and measured essays cut to the reason (stage colour,
  floor, dodge camera, setup scripts); _mjlab_compat docstring is a patch table
- every doc reference points at the new flat docs/

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- banner (docs/media/overview.jpg) and a two-row gif gallery replace the task table
- twin table -> docs/tasks.md; `## docs` index -> links at point of use
- release section: one sentence, prefetch optional; `### export ONNX` block
- docs/architecture.md opens with the approach figure
- bash comments trimmed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- VibeRunnerCfg.wandb_project = "vibe" (was mjlab's "mjlab") for every Vibe task
- intro line period, stray blank lines, list-envs comment

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cosmetic (play-only floor colour) and a finished migration: both
break on intended edits and guard nothing a user runs.
CLAUDE.md: five test files; `train <task-id>` needs no flags.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lint only; pytest needs the synced deps + data and runs locally.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
readme: `### test` (ruff + pytest), the train line drops
`--env.scene.num-envs 4096` (now the default), a link to
docs/roadmap.md (orcs main, behavior tests, mjlab 1.6, rsl_rl upstream).
tasks.md: `--agent.max-iterations` (pair it with the anneal) and
`--agent.amp-dtype bfloat16`. setup.md: the GPUs it trained on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/tasks.md#train lists the released runs flag for flag (from their
W&B metadata; internal experiment/project names dropped, task ids
current). The readme trains Repose in full and links the list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The released checkpoint (W&B vbp/dodgeball/i8p7jymh) trained in the
ConeFast env (generated room, 112x64 cam, 2-3.5 m throws), but the
manifest served it under the base Dodge id (plane, 112x63), so
`play ... --agent release` ran it off-distribution. Manifest key, HF
path (lkrajan/vibe v0.1.0, same sha256), readme and test_release now
name ConeFast. test_dodge_cone_fast is back: it pins the released env.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bf16 off the train commands, into a note: on a 3090 (vbp/repose/2w6exho2
vs fp32 cf84qcof) logp_drift_mb0 sits near 1e-1 and reward stalls; the
5090 release run held. metrics.md gains the drift row, amp_dtype's
docstring the card caveat. readme: release facts as bullets, a warm
contribute line linking the roadmap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Repose registered directly (its rows carry runner_cls, which orcs's
register_all does not take), so a machine synced with only
`sync_data.sh grail|omre` raised FileNotFoundError at import and lost
every CLI, PerLoco included. Now MISSING_DATA -> SKIP_REASON, as in the
other families. setup.md's failure-mode row covers every family.
readme: contribute line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The panel was built lazily at the root, after the tab group. It now
goes inside the Controls tab, ordered just above Info; both are
reached from mjlab's Info html through viser's container registry
(no handle on either). Falls back to the old spot if that lookup fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lok-i lok-i self-assigned this Sep 26, 2026
@lok-i
lok-i merged commit 55d8df7 into main Sep 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant