Open Source · NOV 02, 2026 · 6 MIN READ
bionic: The AI-Native IDE for Robotic Engineering
bionic is a browser IDE where you build robots with natural language. Four panels: a file tree of scripts, a drillable robot component tree, a central 3D simulation that responds exactly as your scripts dictate, and an AI engineering agent that edits the files, runs the simulation, and reads the telemetry to check its own work. The differentiator is determinism: same script + same seed = a bit-identical run on every machine, reproducible from a small artifact and verifiable in CI with a hash.
Everything Is a File
The file tree, component tree, and 3D viewport are three views of one source of truth — a directory of human-diffable text files. The robot is plain MJCF (robot.xml): the file you edit is the file the physics executes, with no lossy conversion in between. Vendor metadata — part numbers, prices, recommendations — lives in a sidecar, robot.manifest.json, never in the physics file. The agent edits files; the panels render them.
Determinism, Engineered
Physics is Google DeepMind's official @mujoco/mujoco WebAssembly build, single-threaded for deterministic stepping. Scripts run in a QuickJS-WASM sandbox that sees only sim time and a seeded PRNG, and physics and sandbox share one Web Worker in lockstep: the sim does not step until your callback returns, and vice versa. The control API is one function, control(t, obs), called at a fixed 50 Hz of simulated time. A Node harness runs the identical engine headless and compares a chained FNV-1a hash of the full physics state against a golden file — browser and Node runs are bit-identical.
An Agent That Checks Its Own Work
The chat panel is a real engineering agent. Bring your own Anthropic API key — stored in your browser, with requests going browser-direct to the API — and it works through a small set of tools. Every turn gets a one-click undo checkpoint that captures the sim moment too, so restoring a turn rebuilds the sim, fast-forwards to that tick, and verifies the hash reproduces.
| Tool | What It Does |
|---|---|
| edit_file | Edits the control script and project files |
| edit_robot_model | Patches the MJCF, validated by compiling in MuJoCo before the change is committed |
| run_sim | Runs a deterministic simulation, fast-forwarded in the worker |
| read_telemetry | Queries the recorded trace of the last run |
| query_robot | Introspects components, interfaces, limits, and part assignments |
Components Bound to Real Parts
The component tree maps actuators, compute, power, and gripper slots to records in a git-native parts catalog — one JSON file per part, validated against a schema, with a cited source on every spec. Sparse records beat plausible guesses. The catalog grows three ways: structured importers (the whole Dynamixel X-series is generated from ROBOTIS's own e-Manual data file), the agent researching parts on demand with web search and a validated save_part tool, and hand-curated records. Each part gets a detail card, one-click alternatives, and a live BOM total.
The repo's history records further phases since: exportable replay artifacts that npm run replay verifies headlessly; LeRobot-style Obs/Action feature dicts derived from the robot model; the SO-ARM100 arm imported from MuJoCo Menagerie with real mesh geometry; and a Python script tier under Pyodide that runs in the same lockstep worker and reproduces the JavaScript template's checksum exactly.
Quickstart
npm install
npm run dev # open the printed URL (Chromium recommended)
npm run determinism # headless Node run, verifies the golden state hash
npm run e2e # browser end-to-end suite (the agent API is mocked)Why We Built It
We procure and deploy robots for clients, and the gap we keep hitting is between "describe what the robot should do" and "prove it does it". Chat interfaces can generate a control script; they cannot tell you whether it runs the same way twice. bionic puts the agent inside a loop where every claim is checkable — compiled before it's committed, simulated deterministically, and verified by hash — and keeps everything as plain files you own.
this note evidences a capability — Robot Procurement ↓
