CUTE Robot Simulator

Drive a simulation of CUTE, a small bipedal robot, in your browser. It runs the same control policies we deploy on the real robot, on a physics model of the real hardware.

Launch sim Checking…

You'll need the password you were given. The sim opens in a new tab.

What this is

CUTE is a small two-legged robot (about 0.8 m tall, 16.8 kg, 14 motors: 5 per leg and 4 in the neck). This is a physics simulation of the real robot's test-rig plant, driven by the same kind of neural-network controllers that run on the hardware. None of what you see here has run on the real robot yet except the walker.

Four policies, one supervisor

You never switch between them yourself. You ask for something and the supervisor makes the switch: walker <-> STAND and STAND -> clip -> STAND, never walker <-> clip. Every switch is hard: on one control tick, when both feet carry load, with no blending. A refused request shows its reason as last call in the status panel.

Your session

Startup

A new robot (and every Reset) comes up in STAND through the walker's start sequence, about 8.5 s: HOLD (2 s approach to the hold pose), GO at 3.5 s, BLEND 5 s, ACTIVE.

Walking

Push a walk command and the walker takes over at once (one tick, in double support). When the command is back to zero, STAND takes back by itself once the walker stands still, about 1.5 s later. Limits: forward 0 to 0.15 m/s, turn +-0.4 rad/s. Backward is refused (this walker falls on it) and sideways is clamped to 0 (the walker's own ranges are vx -0.15 to 0.3).

Keys (click once on the 3D view first):

key action
I / K walk faster / slower, +0.025 / -0.025 m/s
J / L turn left / right, +-0.1 rad/s
Space stop
Shift + I / K / J / L head up / down / left / right, 0.1 rad a press
C centre the head
U / O squat lower / raise, 10 mm a press
Shift + U / O bow more / less, 0.05 rad a press
1 - 8 nod, shake, scan, bow, squat, greeting, bob, perk
9 / 0 foot tap / happy dance
N neutral stance
B say the selected sound
M MOTION STOP
G / R / X / P / F / H GO, Reset, E-STOP, pause, camera follow, this guide

Gamepad (PS4-style, on your computer, Chrome or Edge; press any button once so the browser sees it): left stick: walk and turn | right stick: head | L2 squat, R2 bow | L1 + right stick: torso twist / lean | cross nod, circle shake, square scan, triangle greeting | d-pad up bow, down squat, left bob, right perk | R1 foot tap, SHARE happy dance | L3 neutral stance, R3 centre head | OPTIONS motion stop. If the pad goes silent for 0.5 s while the walk stick is held, the walk command is zeroed.

Head and torso

Head and torso (STAND) panel, the right stick and the triggers, or the Shift keys. The head also acts while the robot walks: the walking policy runs the legs and the head command drives the neck beside it (yaw within 30 deg, at most 2.5 rad/s), and it carries over when STAND takes back. The torso needs STAND: it is refused while walking and returns to neutral before the walker takes over. Both are refused while a clip plays. Commands are clamped and rate-limited to what the policies were tested with, and one head command moves an angle by at most 0.4 rad.

Gestures and clips

Switching, underneath

A switch waits for double support (both feet over 60 N for 3 ticks, forced after 3 s), then happens on that tick. The incoming policy is given the last three actions and the last target that was sent, and its command starts where the robot is: STAND's head command at the measured neck angles, its torso command at zero, a clip at its first frame.

People

Scripted people can walk around the robot: 13 short scenarios (someone walks past, comes up and stops, crouches, a child, two people at once ...). They are drawn figures on a script; they cannot touch the robot.

Floor / plant

Harness cell presets (each rebuilds the floor and resets):

Floor (pick, then Build floor):

Domain randomization

Each item has on and range slider(s). Turning an item on draws a value inside its range right away; Resample redraws every enabled item; Reset + resample does it through a reset; All off returns to nominal. Items marked +- use the slider's upper value as a symmetric bound. The drawn value is shown under each item.

item ranges what it simulates
loop latency (obs age + lag + act) ms 20-110 ms (default range 26-74) plant: all controllers
kp scale x 0.5-1.5 (default range 0.9-1.05) plant: all controllers
kd scale x 0.5-1.5 (default range 0.8-1.05) plant: all controllers
RS03 firmware cap units 20-60 (default range 33-60) plant: all controllers
joint friction scale (BAM law, per joint) x 0.3-2 (default range 0.8-1.3) plant: all controllers
mass scale + payload scale 0.9-1.1 (default range 0.97-1.03); payload 0-1 kg (default range 0-0.5) plant
base CoM offset (B frame) x fwd -15-15 mm (default range -8-8); y left -15-15 mm (default range -5-5); z up -15-15 mm (default range -5-5) plant
encoder bias (+-, per joint) legs 0-5 deg (default range 0-1); hip roll 0-5 deg (default range 0-2.5) sensor: every controller's q (walker obs, idle/neck obs + estimator) AND the motor PD frame
IMU mount error (+-) roll 0-10 deg (default range 0-6); pitch 0-10 deg (default range 0-5) sensor: walker IMU (Mahony, obs) + idle/neck estimator IMU
IMU roll oscillation amp 0-6 deg (default range 0-4); freq 0.1-2 Hz (default range 0.4-1) sensor: walker IMU + idle/neck obs attitude/ang-vel (harness --imu-roll-osc)
extra gyro noise (std) + bias (+-) std 0-0.1 rad/s (default range 0.01-0.02); bias 0-0.05 rad/s (default range 0-0.01) sensor: walker + estimator IMU (on top of the harness --imu-noise 1.0 model)
sole z stiffness K 5-80 kN/m (default range 20-45) plant (scenes with the sole slide joint)
floor friction mu 0.3-1.5 (default range 0.6-1.3) plant (floor/bump geoms + sole geoms)
random pushes (heading frame) interval 1-15 s (default range 4-8); dvx +- 0-0.4 m/s (default range 0-0.15); dvy +- 0-0.4 m/s (default range 0-0.1) plant (base velocity kicks)

External force

Push the robot: application point (pelvis or any body), azimuth 0-360 deg (0 = forward, 90 = left, robot heading frame), elevation -90 to 90 deg (+ = up), mode force (magnitude 0-200 N for duration 0.02-2 s) or impulse (a sudden velocity change delta-v 0-1 m/s of the whole robot's mass), then Apply. A red (force) or orange (impulse) arrow shows it. 40 N for 0.2 s sideways is a gentle push; 1.5 m/s sideways knocks it over.

Sound

Sounds for what your robot does (other visitors never hear them):

Sound panel: Sound on (default) / off, volume, Play melody, a Sound test dropdown (two longer clips) and Stop sounds. A cue repeats at most every 2 s (the blip every 0.15 s) and at most two cues play at once; the walking melody is separate and never blocks them.

View and camera

Reading the status panel

Troubleshooting

Limitations

Upcoming motions

Motions in development, rendered from their reference clips on the same robot model. Not in the sim yet. (Bow, squat, greeting, foot taps and the happy dance moved into the sim on 2026-10-09.)

Loading…