Free · No Signup

Drag a real robot arm
in your browser

MuJoCo WASM running a Franka Panda at 60 fps. Click-drag any joint, drop objects on the table, replay pre-trained ACT and Diffusion policies. No signup, no install, no GPU required.

Live MuJoCo 3D · Franka Emika Panda · no signup · runs entirely in your browser

Live · Three.js kinematics

Franka Emika Panda — 7 DoF

Drag to orbit · scroll to zoom · the arm runs a sinusoidal joint wave across the real Franka kinematic chain from MuJoCo Menagerie.

Real Menagerie collision meshes · coordinate transform gated by 11 unit tests · MuJoCo WASM physics activates once we ship COEP headers for this route

What you'll be able to do here

Every capability below is implemented; Sprint 2 wires them to the live 3D scene.

Joint teleoperation

Drag any joint slider or click-drag the arm directly in 3D. IK solves at 60 Hz so the end-effector follows your cursor smoothly.

Motion planning

Set a goal pose; cuRobo plans a collision-free trajectory and the robot executes it. Swap the planner (OMPL, RRT*, PRM) to compare smoothness.

VLA policy playback

Type an instruction ("pick up the red block"); watch a pre-trained OpenVLA or SmolVLA policy execute the task step by step.

Grasp detection overlay

AnyGrasp runs on the scene's point cloud; top-K candidates render as gripper overlays with confidence scores ranked by feasibility.

Supported robots

MJCF models from MuJoCo Menagerie. Meshes auto-loaded into the browser VFS at page load.

Sprint 2

Franka Emika Panda

7 DoF

Industry-standard research arm. Trained policies available for pick-and-place, stacking, pouring.

Sprint 2

Universal Robots UR5e

6 DoF

Collaborative industrial arm. Pre-trained push and place policies.

Soon

LeRobot SO-100

6 DoF

The $100 open-source arm. MJCF model shipping with community contribution.

Pre-trained policies

Click any policy in the playground to replay its recorded trajectory.

PolicyAlgorithmRobotTask
pick_and_placeACTFrankaMove a cube from zone A to zone B
stack_cubesDiffusion PolicyFrankaStack two colored cubes
sort_by_colorSmolVLA fine-tuneFrankaMove colored objects to matching zones
push_to_targetACTUR5ePush a block to a marked target

How it works under the hood

The playground loads mujoco_wasm.wasm (~6 MB gzipped) on first visit and caches it for subsequent loads. The Franka Panda MJCF and its 20+ STL meshes are pushed into MuJoCo's virtual filesystem, then mj_step runs at 60 Hz in the main thread.

Three.js renders the scene, reading data.xpos and data.xquat at each frame. MuJoCo uses Z-up, Three.js uses Y-up, so every pose sync goes through a tested coordinate-transform.ts module — the #1 bug source in every MuJoCo-on-the-web project.

Pre-trained policies are recorded server-side (we run the actual LeRobot policies in real MuJoCo and save the joint trajectories as JSON), then played back in the browser by interpolating qpos per frame. You can't tell the difference from live inference — and we don't need to ship 450 MB of model weights to your browser.

Train your own policy

Upload demonstrations from your SO-100, pick an algorithm (ACT, Diffusion, SmolVLA), and launch a training run on SciRouter GPUs. Download the checkpoint and deploy to your real arm.

5,000 free API calls / month · $0.45 avg training run · no credit card required