Benchmark

Eleven workloads cover articulated dynamics, rigid contacts, closed loops, ray queries, and deformable objects. The tables compare RaiSim and MuJoCo on the same machine, with three runs per backend. For tuning guidance, see Performance.

Median wall-clock seconds; lower is better. The smaller range below each median is the minimum–maximum of three runs. Speedup is MuJoCo’s median divided by RaiSim’s median. All rows include scene construction and the benchmark loop; rendering is disabled.

Workload

RaiSim (s)

MuJoCo (s)

Speedup

Chain, 10 links

0.302

0.293–0.302

1.141

1.129–1.153

3.78×

Chain, 20 links

0.575

0.573–0.586

3.999

3.949–4.013

6.96×

ANYmal standing

5.513

5.471–5.638

14.126

14.063–14.698

2.56×

ANYmal falling

0.299

0.294–0.303

0.780

0.779–0.784

2.61×

ANYmal on heightmap

1.198

1.185–1.227

5.761

5.482–5.838

4.81×

Primitive speed

3.744

3.493–3.912

8.832

8.829–9.354

2.36×

Strandbeest

0.179

0.179–0.215

0.491

0.484–0.564

2.74×

Heightmap LiDAR

0.889

0.850–0.935

22.869

22.539–23.141

25.71×

Primitive ray scaling

0.016

0.016–0.017

2.427

2.420–2.445

147.16×

Deformable cloth

0.415

0.415–0.417

4.947

4.888–4.960

11.92×

Deformable cube stack

0.445

0.442–0.482

Unstable

—

The eight-cube MuJoCo run reports numerical instability at 0.020 s. Its timing and speedup are omitted. Cloth and cube-stack backends use different deformable models; their parameters and comparison limits are in Workloads.

Download the recorded results and exact arguments. Absolute timings depend on the machine, compiler, and scene. These ratios describe the recorded development build; use your application workload to evaluate the distributed 2.10.2 package.

Dense-mesh contact workloads

Two additional source benchmarks exercise the Unitree G1’s hand collision mesh: a closed half-sphere with 3,002 vertices and 6,000 triangles. They are separate from the eleven recorded comparisons above and require the engine source benchmark runner, which is not shipped in the public binary-package workspace.

Benchmark ID

Workload and measurements

mesh_primitive_proximity

The hand mesh is posed around a torso cylinder, pelvis box, limb cylinder, capsule and sphere at deterministic random orientations. Many poses overlap in their world AABBs while remaining separated. Defaults: 512 poses per primitive, 20 timed rounds. Reports mean narrowphase time, per-call median, 99th percentile and maximum, overlapping/contact pose counts, and RaiSim contact signatures.

g1_hand_self_collision

A fixed-base, 29-DoF G1 follows joint PD targets that swing its hands past the torso, pelvis and hips, with intermittent self-contact. Defaults: 20,000 steps at 2.5 ms. Reports mean, 99th percentile and maximum integration time, steps with self-contacts and hand contacts, total contacts, and a RaiSim contact/final-state signature.

Run from an engine source checkout after building the benchmark runner:

OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 \
  ./build-benchmark/benchmark/benchmarks \
  --bench mesh_primitive_proximity --backend=both -- --poses 512 --rounds 20
OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 \
  ./build-benchmark/benchmark/benchmarks \
  --bench g1_hand_self_collision --backend=both -- --steps 20000

For proximity, --shape torso|pelvis|limb|capsule|sphere selects one primitive. MuJoCo collides the hand as a convex hull and uses true cylinders; RaiSim tests mesh triangles and treats cylinders as capsules for this shape pair. Both G1 runs exclude contacts with the nearest ancestor that has collision geometry, but use their engines’ own dynamics and contact solvers. Compare contact counts and, when RaiSim output is expected to match, signatures alongside timings. A timing ratio alone does not establish matching contact behavior.

Scene illustrations

Images show the RaiSim setups. The chain, falling robot, and primitive ray field have a floor only for visual reference. Green LiDAR points are recorded terrain hits; colored ray segments illustrate hits and misses without changing the benchmark’s collision geometry.