Robots

A shared robot library with real-robot limits from vendor sources.

Shared robot library

Today's tasks use Franka Panda, KUKA iiwa 14 and Booster T1 plus purpose-built machines.

wheeled humanoid (Rainbow Robotics RB-Y1 M)
legged humanoid (Unitree G1, 29 DOF)

legged humanoid (Unitree G1, 29 DOF)

legged humanoidPrototype
DOF
29
Model joints
30
Model mass (kg)
33.3
Model height (m)
1.32

Sports today

No current task uses it yet.

Limit sources
Estimate 1Not published 6
legged humanoid (Unitree H1-2, 27 DOF)

legged humanoid (Unitree H1-2, 27 DOF)

legged humanoidPrototype
DOF
27
Model joints
28
Model mass (kg)
67.4
Model height (m)
1.78

Sports today

No current task uses it yet.

Limit sources
Estimate 1Not published 6

Real limits come from vendor sources (product pages, SDKs, URDFs); where a value is not published it is marked as an estimate or as not published, with the reason.

Purpose-built machines

  • Quadrotor
  • 1:10 racecar
  • Motorised foosball rods
  • Baseball swing rig
  • Basketball shooting machine
  • Disc launcher

Release-command sports

Each shot is a release command with declared scatter.

  • Archery
  • Darts
  • Bowling
  • Curling
  • Putting
  • Billiards

Six hands on one wrist mount

Six hands on one wrist mount
Prototype
  • Paddle (used)
  • Racket
  • Board
  • Suction cup
  • Epee
  • Gripper (geometry only)

Two principles for realism

Real limits (B0)

Every body obeys the real robot's joint position, velocity and acceleration limits; where the vendor SDK and the URDF disagree, the SDK wins; unpublished values are marked as estimates. Platform skills and scripted opponents obey the same limits.

Held to real-robot limits: the rule of the benchmark.

Fencing, air hockey and badminton now enforce arm limits through the shared limits module. Table tennis and tennis have joint-target range and speed checks; their arm controllers do not yet use that module.

Air hockey uses KUKA joint ranges, velocities and torques, Air Hockey Challenge acceleration limits, and estimated jerk limits. A KUKA torque-rate limit is not published and is not enforced.

Physical feasibility (B9)

Before a sport-and-body pair counts, an upper-bound player that knows the true state must be able to do the sport's basic actions under real limits (racket sports: return at least 90% of legal serves). Pairs that fail change the setting or move to a challenge track.

Same match, different bodies

The same table-tennis match runs on Franka (fixed and on a rail), Rainbow RB-Y1, Galaxea R1 Pro, Unitree G1 and Unitree H1-2.

Body-swap results are a research variant, reported separately and never mixed into the standard results table.

Table tennis, six body configurations

Prototype
Table tennissix bodiesreference players
MuJoCo (replay re-render)MuJoCo
Franka Panda (fixed base)Franka Panda + x-y railRainbow RB-Y1Galaxea R1 ProUnitree G1Unitree H1-2
Franka Panda (fixed base)Franka Panda + x-y railRainbow RB-Y1Galaxea R1 ProUnitree G1Unitree H1-2

Shooting drill, three bodies

Prototype
soccer (drill)Unitree G1, Unitree H1-2, Booster T1
MuJoCoMuJoCo
Unitree G1Unitree H1-2Booster T1

Franka on rails

Prototype
Table tennisFranka Panda + x-y railAthlete (high level), reference player
MuJoCo (fine meshes, replay)MuJoCo

Prototype · Preliminary: the legged bodies won 0 of 20 model matches in this table-tennis pilot (n = 20 model matches).

Bodies and sports

OfficialPrototypePlanned

Physics fixed, renderers as plug-ins

The physics engine is fixed per sport: MuJoCo, pooltool, or a validated sport-specific model, because changing it changes the match. Renderers are plug-ins (MuJoCo, Blender Cycles, Isaac Sim RTX), and every match replays bit-exactly, so any match can be re-rendered.

Fixed physics, one replay log, renderer plug-ins Sport provides World geometry Camera definitions Position · field of view Size · frame count Optional presentation assets Physics fixed per sport MuJoCo · pooltool Validated sport-specific models Changing physics changes the match. World motion is recorded, then replayed. Scene + cameras Shared by every renderer One replay log Commands + time steps + state hashes Bit-exact body poses REPLAY Renderer plug-ins Same geometry and cameras; light, materials and image quality can change. DURING THE MATCH Player views MuJoCo (default) Shadows · materials · multisampling Billiards: pinhole renderer Core chooses by task configuration. Per-frame time budget applies. Renderer recorded in the result. OFFLINE RE-RENDER Spectator views Blender Cycles · Isaac Sim RTX Path tracing and GPU rendering Viewing tools replay, then draw. Switch renderers for any replay. Every frame names its renderer. Presentation meshes: spectators only. Kinematics checked before drawing. Renderers never change physics.
Fixed physics, one replay log, renderer plug-ins Sport provides World geometry Camera definitions Position · field of view Size · frame count Optional presentation assets Physics fixed per sport MuJoCo · pooltool Validated sport-specific models Changing physics changes the match. World motion is recorded, then replayed. One replay log Commands + time steps + state hashes Bit-exact body poses Scene + cameras REPLAY Renderer plug-ins Same scene and camera geometry. Light, materials and quality can change. DURING THE MATCH Player views MuJoCo (default) Shadows · materials · multisampling Billiards: pinhole renderer Core chooses by task configuration. Per-frame time budget applies. Renderer recorded in the result. OFFLINE RE-RENDER Spectator views Blender Cycles Isaac Sim RTX Path tracing and GPU rendering Viewing tools replay, then draw. Switch renderers for any replay. Every frame names its renderer. Presentation meshes: spectators only. Kinematics checked before drawing. Renderers never change physics.

Rendering for players

MuJoCo (default), MuJoCo with shadows and multisampling; billiards draws with its own pinhole renderer.

Rendering for spectators (offline re-render)

Blender Cycles (path tracing), Isaac Sim RTX.

For spectators a sport can dress its match scene with the robot's fine visual meshes. The kinematics are checked to be identical before a frame is drawn.

Same frame, different renderer

Table tennis

Prototype
Table tennis: Blender CyclesTable tennis: MuJoCo renderer
MuJoCo rendererBlender Cycles

Soccer 2 v 2

Prototype
Soccer 2 v 2: Blender CyclesSoccer 2 v 2: MuJoCo renderer
MuJoCo rendererBlender Cycles

Curling

Prototype
Curling: Blender CyclesCurling: MuJoCo renderer
MuJoCo rendererBlender Cycles