0:00 / 0:00
Different robots, tasks, and environments simulated together in Steel.

Steel: Scaling Simulation Across Robots, Tasks, and Worlds

Together with NVIDIA, we're introducing Steel (Scalable Throughput-optimized Engine for Embodied Learning), a GPU-accelerated rigid-body dynamics solver for the open-source Newton Physics Engine to accelerate robot learning in NVIDIA Isaac Lab. Across 20 robot-learning benchmarks in our measured configurations, Steel delivers 3.8× PhysX's simulation throughput on geometric mean, with each engine at its best measured batch size, and is faster on 19 of the 20 tasks. On heterogeneous batches combining different robot tasks, the advantage reaches 13.0× PhysX's peak measured throughput.

Steel goes beyond homogeneous workloads - it is designed to efficiently simulate different robots, tasks, and physical worlds together.

Steel delivers 3.8× PhysX's throughput across 20 tasksSimulation throughput relative to PhysX · each engine at its best batch size · geometric mean0×1×2×3×4×5×PhysX1.0×MuJoCo Warp2.9×Steel3.8×Simulation throughput, not end-to-end training speed.Steel: Newton 1.8 release candidate with the opt-in reuse_kinematics=True.
Steel delivers 3.8× PhysX'sthroughput across 20 tasksSimulation throughput relative to PhysX ·each engine at its best batch size ·geometric mean0×1×2×3×4×5×PhysX1.0×MuJoCo Warp2.9×Steel3.8×Simulation throughput, not end-to-end training speed.Steel: Newton 1.8 release candidate with theopt-in reuse_kinematics=True.
Figure 1. Geometric-mean simulation throughput relative to PhysX on 20 tasks, each engine at its best measured batch size. Steel runs with reuse_kinematics=True, which is opt-in in Newton 1.8.

Try it in your browser. steel-webgpu is a WebGPU implementation of Steel's solver. The scenes below run on your own GPU, right in this page: pick one, pull objects around and change the solver settings while it runs.

The Jenga scene before it starts

Simulated live in your browser by steel-webgpu; nothing here is a recording. Open the full demo page

1. From Scaling Simulation to Scaling Diversity

GPU simulation has transformed reinforcement learning for locomotion and whole-body control. Thousands of copies of the same robot can practice in parallel, with domain randomization over terrain, dynamics, and disturbances helping policies transfer to real hardware. Skild's physical self-play shows how far scalable interactive learning in simulation can go.

Manipulation presents a different challenge. A seemingly simple instruction like "clean the table" can require an entirely different sequence of actions as objects, layouts, or constraints change. More broadly, manipulation spans everything from assembly and tool use to dexterous grasps and long-horizon combinations of skills. Different tasks also favor different hardware: a parallel gripper, dexterous hand, and humanoid each bring different capabilities. Scaling general-purpose robot learning therefore means scaling experience across both diverse tasks and diverse embodiments.

That breadth creates two demands on simulation. Individual scenes must handle more interacting bodies, articulated mechanisms, and changing contacts; batches must simultaneously accommodate increasingly different scenes and robot structures. Yet many GPU simulation architectures are most efficient when they replicate one structured workload thousands of times. Dense articulation factorizations grow expensive as robots become more complex, while padded representations waste work and memory when environments differ substantially.

Steel was built for this combination of complexity within environments and heterogeneity across them.

2. Built for Heterogeneity

A robot arm reaching in free space, a dexterous hand reorienting a cube, and a manipulator working through a cluttered bin have different numbers of joints, constraints, and active contacts. Even a single scene's workload changes from step to step as contacts appear and disappear. Treating all three as though they require the same amount of computation leaves much of the GPU's work poorly allocated.

Steel organizes dynamics and constraints per environment, groups articulations with similar joint counts for efficient GPU execution, and routes contact-solving work according to each environment's current demands. Grouping articulations and routing work per environment reduces padding and unnecessary solve work in heterogeneous batches.

Scheduling a mixed batch1 · SCENE DIVERSITY2 · GROUPED BY JOINTS3 · CONTACT ROUTINGAArm + mug7 joints · 1 objectBArm + gripper pushing a box9 joints · 1 objectCArm + dexterous hand + cube23 joints · many finger contactsDArm + bin of 20 parts7 joints · cluttered contactsEArm reaching in free space7 joints · no contacts this step7-joint groupsized for 79-joint groupsized for 923-joint groupsized for 23Free objectssimple updatemug, box, cube, partsgroups run side by side;robots are grouped by joint countNo contactslightweight pathOne small robotcompact local solveComplex scenesgeneral pathre-decided each step ascontacts appear and disappearAABBCCDDEEPer-environment row counts help avoid solving unused constraintsin lighter scenes.
Scheduling a mixed batch1 · SCENE DIVERSITYAArm + mug7 joints · 1 objectBArm + gripper pushing a box9 joints · 1 objectCArm + dexterous hand + cube23 joints · many finger contactsDArm + bin of 20 parts7 joints · cluttered contactsEArm reaching in free space7 joints · no contacts this step2 · GROUPED BY JOINTS7-joint groupsized for 7ADE9-joint groupsized for 9B23-joint groupsized for 23CFree objectssimple updatemug, box, cube, partsgroups run side by side;robots are grouped by joint count3 · CONTACT ROUTINGNo contactslightweight pathEOne small robotcompact local solveABComplex scenesgeneral pathCDre-decided each step ascontacts appear and disappearPer-environment row counts help avoid solvingunused constraints in lighter scenes.
Figure 2. Conceptual scheduling overview: different robots and environments run together in one batch, with per-environment work sized to each scene.

Under the hood, Steel combines reduced-coordinate articulation dynamics with projected Gauss-Seidel constraint solving. It reuses the factorization of each articulation's joint-space mass matrix across its contacts, without constructing a dense matrix of pairwise constraint interactions. Together, these design choices let one solver handle workloads with widely different articulation and contact structures efficiently.

3. Performance at Scale

All numbers in this section are simulation-only throughput on one NVIDIA RTX PRO 6000 Blackwell GPU, with each engine at its best measured batch size unless noted.

The most distinctive result appears when those workloads are mixed. We evaluated batches combining 5, 10, 15, and 20 different task types, including humanoids, quadrupeds, arms, and dexterous hands. Across those mixtures, Steel achieved 9.2× to 13.0× PhysX's peak measured throughput, with each engine evaluated at its own best batch size.

For the 20-task mixture, Steel reached 3.90 million environment steps per second at 245,760 environments, compared with 300,000 for PhysX at 61,440 environments. At the matched batch size of 61,440 environments, Steel ran at 3.61 million environment steps per second, 12.0× PhysX's 300,000, and used about 62% less GPU memory (approximately 11 versus 29 GiB).

Heterogeneous simulation at scaleEach batch mixes 5 to 20 distinct robot task typesSolverSteelPhysXTask types per batch5101520lighter to darker; PhysX shaded the same wayThroughput (M env steps/s)01234569601.9K3.8K7.7K15K31K61K123K246KGPU memory (GiB)0204060809601.9K3.8K7.7K15K31K61K123K246KParallel environments (log scale)Parallel environments (log scale)12× higher throughputMatched batch: 20 task types @ 61,440 environmentsSteel 3.9MPhysX 0.3M~62% less GPU memoryMatched batch: 20 task types @ 61,440 environmentsPhysX 54 GiB @ 123KSteel 39 GiB @ 246K↑ Higher is better↓ Lower is better
Heterogeneous simulation at scaleEach batch mixes 5 to 20 distinct robot task typesSolverSteelPhysXTask types per batch5101520lighter to darker; PhysX shaded the same wayThroughput (M env steps/s)↑ Higher is better12× higher throughputMatched batch: 20 task types @ 61,440 environments01234569601.9K3.8K7.7K15K31K61K123K246KParallel environments (log scale)Steel 3.9MPhysX 0.3MGPU memory (GiB)↓ Lower is better~62% less GPU memoryMatched batch: 20 task types @ 61,440 environments0204060809601.9K3.8K7.7K15K31K61K123K246KParallel environments (log scale)PhysX 54 GiB @ 123KSteel 39 GiB @ 246K
Figure 3. Simulation throughput and GPU memory across batches containing 5–20 distinct task types. The 9.2×–13.0× peak-throughput ratios (table below) compare each engine at its best measured batch size. The two callouts (12.0× throughput, about 62% less memory) are matched-batch comparisons, both engines at 61,440 environments with 20 task types. PhysX runs the 5-type mixture up to 245,760 environments. Its other curves end at 122,880 environments (61,440 for 10 types), where those mixtures reach PhysX's 64K-material limit.
Peak-throughput table by task mixture
Task types Steel (env-steps/s) PhysX (env-steps/s) Peak-throughput ratio
5 5.83M @ 61,440 632K @ 15,360 9.2×
10 4.95M @ 122,880 474K @ 61,440 10.4×
15 3.82M @ 122,880 306K @ 61,440 12.5×
20 3.90M @ 245,760 300K @ 61,440 13.0×

The benefit isn't limited to heterogeneous batches. Across 20 single-task benchmarks, Steel was faster than PhysX on 19 of the 20 tasks, with 3.8× geometric-mean throughput. On the same 20 tasks, Steel achieved approximately 1.3× MuJoCo Warp's throughput. The gains cover locomotion, classic control, articulation-heavy manipulation, and contact-rich workloads: on the 23-joint Kuka–Allegro lift task, for example, Steel reached 6.7× PhysX's throughput and approximately 1.8× MuJoCo Warp's.

Steel delivers 3.8× PhysX's throughput across 20 tasksMuJoCo Warp averages 2.9× PhysX on the same tasks · each engine at its best batch size · geometric meansPhysXMuJoCo WarpSteel0.5×1×2×4×8×16×32×PhysX = 1×UR10 reach5.6×8.2×Kuka Allegro reorient4.0×7.2×Kuka Allegro lift3.8×6.7×Franka reorient4.5×6.7×ANYmal-D rough3.7×6.4×Franka lift4.3×6.3×Cassie rough3.8×5.8×Allegro cube reorient2.2×5.3×G1 rough2.3×4.3×ANYmal-D flat1.4×3.6×Humanoid direct3.5×3.5×Humanoid3.4×3.5×Franka reach3.4×3.1×Kuka Allegro reorient (RGB)2.5×3.0×Kuka Allegro lift (RGB)2.4×3.0×Ant3.0×3.0×Franka reach OSC3.0×2.7×H1 flat1.4×1.8×G1 flat1.2×1.7×Cartpole2.4×0.9×Throughput relative to PhysX (log scale)
Steel delivers 3.8× PhysX'sthroughput across 20 tasksMuJoCo Warp averages 2.9× PhysX on the sametasks · each engine at its best batch size ·geometric meansPhysXMuJoCo WarpSteel0.5×1×2×4×8×16×32×PhysX = 1×UR10 reach5.6×8.2×Kuka Allegro reorient4.0×7.2×Kuka Allegro lift3.8×6.7×Franka reorient4.5×6.7×ANYmal-D rough3.7×6.4×Franka lift4.3×6.3×Cassie rough3.8×5.8×Allegro cube reorient2.2×5.3×G1 rough2.3×4.3×ANYmal-D flat1.4×3.6×Humanoid direct3.5×3.5×Humanoid3.4×3.5×Franka reach3.4×3.1×Kuka Allegro reorient (RGB)2.5×3.0×Kuka Allegro lift (RGB)2.4×3.0×Ant3.0×3.0×Franka reach OSC3.0×2.7×H1 flat1.4×1.8×G1 flat1.2×1.7×Cartpole2.4×0.9×Throughput relative to PhysX (log scale)
Figure 4. Simulation throughput relative to PhysX on each of the 20 tasks, each engine at its best measured batch size. Geometric means are used for aggregate comparisons: Steel averages 3.8× PhysX and MuJoCo Warp 2.9×. Steel's Cartpole sweep stopped at 65,536 environments while its throughput was still rising, and PhysX and MuJoCo Warp ran to 524,288; Cartpole is plotted as measured.
Detailed throughput by task
Throughput by taskSimulation step only · tasks ordered by existing engines' speed, fastest firstENV STEPS / S (LOG)10K100K1M10M100MSteelMuJoCo WarpPhysXCartpoleAntUR10 reachFranka reachHumanoid directHumanoidH1 flatFranka liftFranka reorientKuka Allegro liftG1 flatFranka reach OSCANYmal-D flatCassie roughKuka Allegro reorientAllegro cube reorientG1 roughKuka Allegro lift (RGB)Kuka Allegro reorient (RGB)ANYmal-D roughTasks, ordered by PhysX and MuJoCo Warp throughput (fastest first)
Throughput by taskSimulation step only · tasks ordered byexisting engines' speed, fastest firstSteelMuJoCo WarpPhysXENV STEPS / S (LOG)10K10K100K100K1M1M10M10M100M100MCartpoleAntUR10 reachFranka reachHumanoid directHumanoidH1 flatFranka liftFranka reorientKuka Allegro liftG1 flatFranka reach OSCANYmal-D flatCassie roughKuka Allegro reorientAllegro cube reorientG1 roughKuka Allegro lift (RGB)Kuka Allegro reorient (RGB)ANYmal-D roughTasks, ordered by PhysX and MuJoCo Warpthroughput (fastest first)
Simulation-step throughput per task, each engine at its best batch size, log scale. Tasks are ordered by how fast PhysX and MuJoCo Warp run them, fastest on the left; this is an ordering, not a complexity measure.

4. Built into Newton, Open to Everyone

Steel is developed directly within Newton and is intended to integrate with NVIDIA Isaac Lab, an open-source, modular framework for training and refining robot policies. It shares Newton's model representation and collision infrastructure rather than requiring researchers to adopt a separate physics stack. That matters as tasks move beyond rigid objects on empty tables to cloth, cables, soft bodies, granular materials, and other coupled physical interactions.

0:00 / 0:00

Rigid–deformable coupling

A Franka picks up a VBD cable and places it on its target, with Steel as the rigid side of Newton's coupled solver.

0:00 / 0:00

Manipulation on cloth

A Franka lifts a block off a sagging cloth hammock and places it on a table.

0:00 / 0:00

Rigid bodies on granular material

A stack of six boxes drops onto implicit MPM sand and comes to rest.

0:00 / 0:00

Compliant and hydroelastic contact

A Panda grasps a pen with hydroelastic contact and drops it into a cup, with the whole step inside a single captured CUDA graph.

More Newton examples
0:00 / 0:00

Rigid on soft bodies

A rigid sphere dents a VBD soft-body beam and rolls off it. Shown at quarter speed.

0:00 / 0:00

Differentiable simulation

An opt-in differentiable step lets Newton's tape backpropagate through Steel. Here Newton's drone example uses those gradients for model-predictive control, tracking a sequence of targets.

Experimental
0:00 / 0:00

Gradients through contact

Optimizing a ball's launch velocity by differentiating through Steel with an experimental smooth contact model: the throws converge from a wide miss onto the target over the optimization. Recent throws stay on screen as fading paths.

Experimental
0:00 / 0:00

Sleeping and islands

Settled groups of bodies fall asleep as separate islands (blue), and Steel skips most of their solve work. A thrown block wakes only the tower it hits; its neighbours stay asleep and do not move.

We're contributing Steel to the open-source Newton ecosystem so researchers can inspect, reproduce, extend, and improve it. Steel is available in Newton as newton.solvers.SolverSteel.

Get started: Steel on GitHub · Newton on GitHub · Isaac Lab

5. Scaling the Diversity of Robot Experience

The broader goal is not simply to make existing physics workloads faster. In our work on S1, we have seen robot capabilities improve as we scale pretraining experience. For increasingly general policies, however, what that experience covers matters alongside how much of it we collect. Different tasks require different interactions, and different embodiments offer different ways to solve them. As explored in our omni-bodied work, we want a shared robot intelligence that can learn across that breadth rather than treating every body as an isolated problem.

Real-world data remains essential for grounding policies and validating transfer, but physical collection is expensive and difficult to scale across every possible task and recovery scenario. Simulation offers repeatable, on-policy exploration, including alternative actions from the same starting state, failures, and recoveries. Steel addresses one piece of making that approach practical: the cost of simulating increasingly diverse tasks and robot embodiments together.

Hardware proximity

Diversity

Scalability

Robot teleop

Hardware proximity

High

Diversity

Low

Scalability

Low

UMI

Hardware proximity

Moderate

Diversity

Moderate

Scalability

Moderate

Egocentric video

Hardware proximity

Low

Diversity

High

Scalability

High

Simulation

Hardware proximity

Moderate

Diversity

Low

Scalability

High

Simulation with SteelGoal

Hardware proximity

Moderate

Diversity

High

Scalability

High
Current (illustrative)Research goal with Steel
Figure 5. Extending the data-scaling picture from S1. Simulation already offers scalable, repeatable experience. Our goal with Steel is to make that experience much more diverse across tasks, scenes, and embodiments. The levels are illustrative and indicate a research direction, not a measured ranking.
Four panels showing GPU assembly, a robot unloading a dishwasher, warehouse tote transport, and a humanoid holding a storage crate above a table.
Real Skild robots across embodiments.

The next step is to learn what happens when the diversity of simulated experience scales alongside its volume. Steel gives us a faster foundation on which to explore that question.

Measurement notes

All throughput numbers refer to simulation, not end-to-end policy-training speed, on one NVIDIA RTX PRO 6000 Blackwell GPU per run. The heterogeneous benchmarks mix 5, 10, 15, or 20 task types; the 9.2×–13.0× ratios compare the best measured batch size for each engine. The 12.0× throughput and 62%-less-memory callouts are matched comparisons at 61,440 environments with 20 task types. In the single-task suite, throughput counts physics stepping only, timed at the host-return boundary: it excludes observations, rewards, and resets and synchronizes the device per step.

  • Heterogeneous benchmark (Figure 3): Steel on the Newton release-1.8 candidate 01ea1293 with joint velocity limits on, so reuse_kinematics is not active; PhysX from Isaac Sim 6.1.0.0 (omni.physx 110.3.2) run natively; all measured November 8 and 9, 2026, each engine at its best measured batch size. Manipulation-first task order, one 5 ms physics step per environment step, small noisy hold-position targets, no policy, domain randomization or cameras, CUDA graphs on. PhysX from Isaac Sim 6.0.0.0 ran these mixtures up to about 2.7× faster than 6.1, a difference in the PhysX runtime alone; we compare against 6.1, the current release.
  • Single-task suite (Figures 1 and 4): Steel on the Newton release-1.8 candidate 01ea1293 with reuse_kinematics=True, which is opt-in in Newton 1.8; MuJoCo Warp 3.17; PhysX from Isaac Sim 6.1.0 run natively; all measured November 7, 2026. Geometric means over 20 tasks, each engine at its best measured batch size, with batch sweeps up to 524,288 environments.