Skip to content

ToolsEnabled Sim 0.1.4 (beta)

Pre-release
Pre-release

Choose a tag to compare

@ToolsEnabled-Inc ToolsEnabled-Inc released this 13 Oct 04:35
· 37 commits to main since this release

ToolsEnabled Sim 0.1.4 (beta) adds MuJoCo as an optional physics engine next to Rapier, ships the /sim read-only panes and native action commands prepared in the unpublished 0.1.3 handoff, and hardens the command-line tools. MIT licensed.

What changed

  • MuJoCo engine option. --engine mujoco on the hub CLI, the demo and the live launcher runs the same warehouse on the official MuJoCo WebAssembly build, pinned as @mujoco/mujoco 3.14.0: gravity, floor friction and bounded motor forces are on, crates are free boxes that slide and stop under friction, a grabbed crate is welded 0.75 m in front of its robot, and go-to brakes early enough to stop on target. The scripted demo delivers 3/3 crates with no collisions on either engine and replays byte-identically.
  • Rapier stays the default. It sits behind the same engine interface and is called in exactly the order the earlier code used, so every existing recording replays byte-identically; the demo trajectory bytes are unchanged since 0.1.2.
  • The engine is recorded. Every trajectory header names its engine, the demo receipt and /sim runs show it, and replay rebuilds the world on the recorded engine. Version-2 headers accept either engine; version-1 headers must name Rapier. A recording whose header names mujoco@3.14.0 needs Sim 0.1.4 or later to verify. The hub's engine is fixed for its lifetime: reset and scenario changes keep it, and no tool argument can change it.
  • /sim panes and native commands (from the 0.1.3 handoff, first published here). Read-only panes for status, help, robots, map, runs, events, scenarios, replay guidance and connection diagnostics, with a separate view quota; eight native Claude Code action commands with before-turn role/mode checks and explicit bound robot IDs; matching namespaced Codex skill verbs and a read-only CLI. Pane readers and action preflights start with an explicit environment allowlist that excludes client credentials, and every reserved pane key is handled in every pane state.
  • Current-run pointer. An owner-only current-run.json with the live deadline and settings sits outside the deterministic recordings. Its write is best-effort: a failed sidecar write is reported once per error code on stderr, never fails the command that triggered it and never stops a live hub.
  • Handoff scanner. tools/handoff.py refuses a hidden LZMA stream even when its header claims both an oversized dictionary and expanded size, keeps accepting ordinary Python bytecode, and fails closed on corrupt or memory-limited compressed input.
  • Command-line hardening. --engine with no value is refused on the hub CLI and the demo instead of silently running Rapier; the demo checks its engine before creating the output directory; a version-1 recording on MuJoCo and an unknown engine id in replay are refused; MuJoCo joint, actuator and weld names stay distinct for every valid scene id; the demo, replay and configuration helpers print one-line errors instead of stack traces; package.json declares the MIT license.
  • Install line. The ZIP needs no install. A Git checkout runs npm ci --ignore-scripts --no-audit --no-fund from the lockfile's registry integrity pins.

Get started

  1. Download toolsenabled-sim-0.1.4.zip and toolsenabled-sim-0.1.4.zip.sha256, then run sha256sum -c toolsenabled-sim-0.1.4.zip.sha256.
  2. With Node.js 22 or later, extract the ZIP and run cd sim && node tools/demo.mjs --output ./runs/demo && node tools/replay.mjs ./runs/demo. For MuJoCo: node tools/demo.mjs --output ./runs/demo-mujoco --engine mujoco && node tools/replay.mjs ./runs/demo-mujoco.
  3. To connect your own agents, see docs/LIVE.md: node tools/live.mjs --root /absolute/run --work-record /absolute/work-record.json (add --engine mujoco for MuJoCo). To use the plugins, see docs/CLAUDE-INSTALL.md.

Tested on this exact release (source commit 651e899, tag v0.1.4; ZIP SHA-256 2bc044f0cc0dad843e077d90ad18271f55b7fde6265c512cb4fd215f7ed325ba; Linux, Node.js 22.19.0)

  • 109 of 109 Node tests passed headless from the extracted ZIP, including the real headless-Chromium render tests. From the extracted ZIP, the 42 plugin hook tests pass and claude plugin validate --strict passes on Claude Code 2.1.296. From the same source tree, the 14 packaging and scanner tests and the DeepSeek configuration test pass.
  • The ZIP rebuilds byte for byte from this public source: twice from the reviewed tree and once from this commit.
  • From the extracted ZIP, the scripted demo delivers all three crates with no collisions on both engines and replays byte for byte over 600 ticks (trajectory SHA-256 453aa414… on Rapier, 27825465… on MuJoCo). The Rapier trajectory is identical to 0.1.2's.
  • Configuration generation and the stdio transport are covered by the suite. Real model-driven client sessions were not run on 0.1.4; they remain a separate integration qualification.

Known limits

  • The download is 5.4 MB, up from 2.7 MB in 0.1.2, because the MuJoCo WebAssembly runtime ships alongside Rapier. Seven bundled dependency files are over 256 KB (Rapier's embedded WebAssembly, mujoco.js, mujoco.wasm, three.js's and Playwright's bundles); THIRD-PARTY.md lists every shipped dependency file.
  • Claude Desktop needs separate testing before native install, and no Desktop bundle is attached to this release. Native Windows is not supported, because Sim relies on POSIX file ownership checks.
  • The handoff scanner cannot inspect a key hidden in raw deflate data, which has no header to detect.
  • For one-tick live runs at the default recording cap, the practical ceiling is about 30,000 ticks; bigger scenes or heavier traffic can stop sooner. The default live step of 60 ticks is not affected.
  • The path planner does not predict other robots' future paths; the coordinator schedules crossing traffic.
  • Identical frames need the same Chromium build and renderer. Only Linux was tested for this release.
  • Driver labels in captions are supplied by the operator. A process running as the same user can act as you. See SECURITY.md.

ToolsEnabled is not affiliated with or endorsed by Anthropic, OpenAI, DeepSeek, Cursor, Google DeepMind or any other AI provider.