Newton vs MuJoCo Warp vs Isaac Lab: Choosing a GPU Physics Stack for Robotics in 2026
Search for “Newton vs MuJoCo Warp vs Isaac Lab” and you will get a three-column table comparing them as rivals. That table is wrong, and acting on it will cost you a quarter. Newton 1.0 is a physics engine and solver framework. MuJoCo Warp is one of the solvers that runs inside it. Isaac Lab is the reinforcement-learning environment and training framework that sits above it. They are three floors of one building, not three buildings. The real decision is not which product wins; it is which solver matches your contact regime, what the Warp and OpenUSD dependency costs you in practice, and whether your existing PhysX-backed pipeline should move now or in six months.
What this covers: the actual layer stack, a solver-selection framework by contact regime, the real cost of the Warp/OpenUSD dependency, a staged migration path off PhysX-backed Isaac Lab, and the places every one of these layers still fails for sim-to-real.
Context and Background
For roughly eight years, GPU-accelerated robot learning meant one of two lineages. The NVIDIA lineage ran PhysX under Isaac Gym and later Isaac Lab, which replaced Isaac Gym as the environment layer on top of Isaac Sim. The DeepMind lineage ran MuJoCo, first on CPU, then batched onto accelerators through MJX, a JAX re-implementation. Both worked. Both had a ceiling. PhysX gave you a mature, tightly integrated renderer and sensor stack but a closed solver you could not extend. MJX gave you MuJoCo’s excellent contact model and a differentiable JAX graph, but it scaled poorly once a scene grew past a few dozen degrees of freedom, and it inherited JAX’s compilation behaviour.
NVIDIA’s own answer to the extensibility problem was warp.sim, a simulation module inside NVIDIA Warp, the Python-to-CUDA kernel compiler. It was useful for research and inadequate as a product. Newton is the successor: the project README states plainly that Newton “extends and generalizes Warp’s (deprecated) warp.sim module, and integrates MuJoCo Warp as its primary backend.”
What makes Newton structurally different from every prior attempt is governance. It is a Linux Foundation project, initiated by Disney Research, Google DeepMind and NVIDIA, with code under Apache-2.0 and documentation under CC-BY-4.0. That matters for a reason that has nothing to do with licence purity: it is the first time DeepMind’s contact model and NVIDIA’s GPU compiler infrastructure have shipped inside the same engine, maintained by the same project, rather than as two ecosystems you bridge yourself.
The beta appeared in September 2025. Newton 1.0 shipped at GTC 2026. By September 2026 the release line has already moved well past 1.0 — the current feature release is the 1.6.x series — which tells you something important about planning: this is a fast-moving project, and any architecture decision you make should assume the API surface will keep shifting for at least another few releases.
The Layer Stack: Why This Is Not a Three-Way Race
Direct answer: Isaac Lab is the RL environment and training framework; Newton is the physics engine that owns the model, state and solver interface; MuJoCo Warp is one solver plugged into Newton; NVIDIA Warp is the kernel compiler all of them emit CUDA through. You do not choose one of the three. You choose an environment framework, then a solver, and Newton is the layer that lets those two choices be independent.

Figure 1: The layer stack. Isaac Lab owns tasks and training; Newton owns the model, state and solver interface; solvers are swappable; Warp compiles everything to CUDA.
Reading the stack from the top: your training loop — PPO, SAC, or an imitation-learning setup like a diffusion policy for manipulation — talks to Isaac Lab’s environment API. Isaac Lab handles task definition, observation and reward computation, domain randomisation, vectorised resets, and sensor wiring. It does not integrate equations of motion. It delegates that to a physics backend. Newton sits at that backend boundary, holding a Model (time-invariant structure: bodies, joints, shapes, inertias, materials) and a State (time-varying: positions, velocities, forces), both stored as Warp arrays resident on the GPU. Below Newton sit the solvers. Below them, Warp compiles Python kernel source to CUDA. OpenUSD feeds the whole thing assets.
The engine/solver split is the actual product
The single most useful thing Newton does is separate what a scene is from how it is integrated. In PhysX, those are the same object. In Newton, the Model is solver-agnostic and you attach a solver to it. That means you can build a scene once and run it under SolverMuJoCo for a locomotion policy, then under a different solver for a contact-rich assembly task, without rebuilding the asset pipeline.
This is not a theoretical nicety. The hardest practical problem in robot learning today is that a single robot cell contains multiple physics regimes at once: a rigid arm, a deformable cable, a compliant gripper pad, and sometimes granular media. Historically you picked the engine that was least bad across all of them and accepted the error everywhere else. Newton’s architecture lets you assign different solvers to different parts of the problem and couple them, and the project ships worked examples of exactly that — a Franka arm driven by the MuJoCo solver manipulating a cable handled by a VBD solver through an ADMM coupling step is one of the shipped multiphysics examples.
MuJoCo Warp is a solver, not a competitor
MuJoCo Warp (MJWarp) is DeepMind’s GPU-optimised reimplementation of the MuJoCo physics simulator targeting NVIDIA hardware, written against Warp. It exists both standalone and as Newton’s primary rigid-body backend. When you write SolverMuJoCo in a Newton script, you are calling MJWarp.
This is where the vendor performance numbers belong, and they need careful labelling. NVIDIA reports that MuJoCo Warp delivers up to 252x MJX for locomotion and 475x MJX for manipulation on RTX PRO 6000 Blackwell-series hardware. Those are vendor-reported figures, not independently measured, and the baseline is MJX specifically — not MuJoCo on CPU, not PhysX, and not your workload. Treat them as evidence that the MJX-to-MJWarp transition removed a real bottleneck, not as a throughput prediction for your robot. Speedup ratios against a single chosen baseline on a single chosen GPU are the least transferable class of benchmark there is.
MJWarp’s own documentation is refreshingly honest about its ceiling. It is still labelled Beta and “mostly feature complete” but needing performance work, documentation and testing. It scales better than MJX for scenes with many geoms or degrees of freedom, but not as well as CPU MuJoCo, and the docs warn of significant performance degradation beyond roughly 60 degrees of freedom per world. Sparse Jacobians, block Cholesky factorisation, constraint islands and sleeping islands are the tracked work items to lift that ceiling. If your scene is a humanoid plus a cluttered table, you are near or over that line today.
Isaac Lab 3.0 made the backend a choice
The final piece landed on the Isaac Lab side. Isaac Lab 3.0, released 30 June 2026, hardened a multi-backend architecture spanning PhysX, Newton, OVPhysX, Isaac RTX, OVRTX and kit-less execution paths, with backend selection, scene-data routing, clone-plan handling and runtime compatibility checks as first-class concerns. Newton and OVPhysX support were expanded for larger kit-less training and visualisation workflows, adding Newton ray-caster, frame-transformer, IMU, contact, joint-wrench, deformable and VBD-coupling support.
“Kit-less” deserves a note, because it is the under-reported change. Historically, Isaac Lab training dragged the entire Omniverse Kit application along, which meant heavy startup, a large container, and a rendering runtime you did not need for a headless PPO run. A kit-less path lets you run physics and training without the Kit application layer. For anyone who has fought a 20 GB training image through a cluster registry, that is the more consequential improvement.
The important caveat: Newton in Isaac Lab is explicitly still in active development. Not every environment ships a Newton preset, and several features — deformable objects in the Isaac Lab sense, surface grippers, and material randomisation — remain PhysX-only. So the honest 2026 answer to “should I use Newton in Isaac Lab” is “for rigid-body locomotion and reaching tasks, yes; for anything relying on those PhysX-only features, not yet.”
Choosing a Solver by Contact Regime
Once you accept the layering, the real decision collapses into a single question: what kind of contact dominates your task? Everything else — throughput, stability, tuning effort, sim-to-real gap — follows from that answer.

Figure 2: Solver selection by contact regime. The dominant physics in your task, not the brand name, picks the solver.
The diagram compresses four regimes. Below is what each one actually implies in engineering terms, because the branch labels hide most of the work.
Articulated rigid bodies: locomotion, reaching, whole-body control
This is the well-served case and the one where you should expect the least friction. A quadruped or humanoid walking over terrain, or a 7-DoF arm doing free-space reaching, is a maximal-coordinate-free articulated system with intermittent, relatively simple contact. SolverMuJoCo is the default and the right default. MuJoCo’s soft-constraint contact model is well understood, the parameters are documented, and a decade of published locomotion work uses it, which means your reward shaping and domain randomisation ranges have precedent.
Throughput here comes from world count, not from per-world speed. You want thousands of parallel worlds, each small. Newton’s own 1.6.0 release notes report benchmarks across 8,192-world Ant, Cartpole, G1 and Humanoid workloads, with MuJoCo solver initialisation 44% to 77% faster than the prior release and cold example-load times 13% to 20% better on tested x86 and ARM systems. Those are project-reported changelog numbers on the project’s own benchmark suite — useful as a direction-of-travel signal, not as a figure to put in your capacity plan.
The practical constraint is the DoF ceiling noted earlier. A 12-DoF quadruped at 4,096 worlds is comfortably inside MJWarp’s sweet spot. A 37-DoF humanoid with a dexterous hand and twenty scene objects is not, and you will feel it as a throughput cliff rather than a hard error.
Contact-rich assembly: the regime that breaks naive solvers
Nut-and-bolt threading, RJ45 connector insertion, snap-fit assembly, peg-in-hole with tight clearance. This is where point-contact approximations stop being an approximation and start being a lie. Two surfaces in conforming contact over a patch generate a pressure distribution, not a point force, and a solver that reduces it to a handful of contact points will produce jitter, penetration, and torques that do not exist.
Newton addresses this with two mechanisms worth understanding separately. The signed-distance-field (SDF) collision library represents geometry as a distance field rather than a convex decomposition, which means threaded and re-entrant geometry keeps its actual shape instead of being approximated into convex hulls that cannot interlock. Hydroelastic contact models the contact patch as a compliant pressure field between bodies, producing a distributed wrench rather than a set of impulses. The project ships both nut_bolt_sdf and nut_bolt_hydro examples precisely because this is the regime people came for.
The cost is straightforward: both are more expensive per step than point contact, and hydroelastic contact in particular is memory-hungry. The 1.6.0 changelog reports a 64-world hydroelastic workload dropping GPU buffer use from about 54.5 GiB to 3.75 GB while preserving expected contacts — a project-reported figure whose more useful reading is the before number. Hydroelastic contact at even modest world counts was, until recently, capable of consuming an entire high-end GPU’s memory. Budget for far fewer parallel worlds in this regime than in locomotion, and design your training accordingly.
Deformables: cable, cloth, soft bodies
SolverVBD implements Vertex Block Descent, a position-based-adjacent method that solves deformable dynamics by iteratively updating vertex blocks. It covers cables, cloth and volumetric soft materials. The Kamino solver, which is the newer experimental rigid-body path, is developing alongside it. Newton’s examples directory is unusually rich here — cable twist, Y-junctions, bundle hysteresis, plectoneme formation, cloth on a humanoid, cloth manipulation with a Franka.
Cable simulation is the specific capability that matters most for industrial work and is the hardest to get elsewhere. Wire harness routing, connector insertion with strain relief, and any task where the robot manipulates something that stores torsional energy have historically been simulated badly or not at all. The 1.6.x line added a newton.Rod type providing validated, reusable inputs for ordered chains and explicit graphs, plus an opt-in compliant ALM (augmented Lagrangian) mode for SolverVBD covering contacts, structural joints, drives and limits.
Be realistic about maturity. These are the newest parts of the engine, they are evolving release to release, and the coupling between a VBD deformable and a MuJoCo rigid body is an active area rather than a settled one. If your programme depends on cable physics, budget engineering time for solver tuning, not just integration.
Granular and fluid: MPM, and a warning about scale
The Material Point Method solver handles sand, powder, snow, viscous fluid and two-way coupling with rigid bodies. Newton ships mpm_granular, mpm_anymal (a legged robot walking on granular terrain), mpm_twoway_coupling, mpm_water_dam_break and several material variants.
This regime inverts the throughput assumption. MPM cost scales with particle count and grid resolution, and a physically meaningful granular scene needs a lot of particles. You will be running a handful of worlds, possibly one, not thousands. That is fine for evaluating a controller against terrain it will actually encounter, and wrong for an RL training loop that needs millions of environment steps. The realistic pattern is to train on a cheap approximate terrain model and validate on MPM, not to train on MPM.
| Contact regime | Primary solver | Realistic world count | Main risk |
|---|---|---|---|
| Legged locomotion, free-space reaching | SolverMuJoCo |
Thousands | DoF ceiling around ~60 per world |
| Contact-rich assembly, threading, insertion | MuJoCo or Kamino + SDF / hydroelastic | Tens to low hundreds | Memory and per-step cost |
| Cable, cloth, soft body | SolverVBD (+ rigid coupling) |
Tens to hundreds | Maturity; coupling tuning |
| Granular, powder, fluid | MPM | Single digits | Not viable for RL-scale sampling |
| Whole-cell multiphysics | Coupled solvers | Low | Coupling stability, debugging difficulty |
What the Warp and OpenUSD Dependency Actually Costs
Every comparison article lists “built on NVIDIA Warp and OpenUSD” as a feature. It is also a set of constraints, and they are worth pricing before you commit a robotics programme to them.

Figure 3: The dependency chain. USD assets feed the model builder; Warp JIT-compiles kernels on first run; steady-state stepping runs under CUDA graph capture.
The hardware and driver floor is real
Newton requires Python 3.10+, an NVIDIA GPU of Maxwell generation or newer, and driver 545 or newer with CUDA 12. It runs on Linux x86-64 and aarch64 and on Windows x86-64. macOS is CPU-only — usable for authoring and debugging, useless for training.
Two consequences follow. First, this is an NVIDIA-only stack, full stop. There is no AMD or Apple-silicon acceleration path, and Warp is the reason. If your organisation has a multi-vendor accelerator strategy, Newton does not participate in it. Second, the driver-545 floor is a genuine cluster-operations problem. Shared academic and enterprise GPU clusters are frequently pinned to older drivers for stability, and “upgrade the driver on the shared cluster” is an organisational negotiation, not a pip install. Check this before you plan the migration, not after.
The upside of the Warp dependency is that no local CUDA Toolkit installation is required, which removes the single most common source of environment breakage in GPU robotics work.
JIT compilation moves your cost to cold start
Warp compiles Python kernel source to CUDA at runtime. The first time a given kernel configuration runs, you pay compilation. Subsequent runs hit the kernel cache. In a long training job this amortises to nothing. In three other situations it does not.
Short evaluation runs pay compile cost on every invocation relative to a short useful lifetime. CI pipelines that spin a fresh container per job get a cold cache every time unless you deliberately bake or mount the kernel cache. And interactive debugging — change a line, re-run — feels sluggish in a way that PhysX does not, because PhysX ships precompiled. This is why the startup improvements in recent releases are more significant than they look: cold example-load benchmarks improving 13–20% is a developer-experience number, not a training-throughput number, and developer experience is where JIT hurts.
Mitigations are mundane and effective: persist the Warp kernel cache as a mounted volume in CI, keep it in your container image where the driver and Warp versions are pinned, and avoid recompilation triggers such as changing kernel-visible constants between runs.
CUDA graph capture is why throughput is high, and why debugging is hard
Steady-state stepping is typically captured into a CUDA graph and replayed, which eliminates per-kernel launch overhead. This is a large part of where the throughput comes from at high world counts. It also means the execution you profile is not a straightforward sequence of individually observable kernel launches, and control flow that varies per step — conditional logic, dynamic resets, host synchronisation inside the loop — either breaks capture or silently forces a fallback path that is much slower. Data-dependent branching in your environment code is the usual culprit.
OpenUSD is a real asset pipeline and a real learning curve
Newton builds on OpenUSD for scene and robot description, which gives you composition, layering, variants and references — a genuine asset pipeline rather than a flat file format. For teams already running an Omniverse-based digital twin, this is close to free and a substantial integration win.
For teams whose robot descriptions are URDF or MJCF files in a git repository, it is a new system to learn. Newton does import URDF and MJCF, so you are not blocked. But the semantics are not identical, and round-tripping through USD can silently change things that matter: inertia conventions, joint-limit interpretation, collision-geometry approximations, and material parameters. The failure mode is not a crash. It is a policy that trains fine and behaves differently on hardware. Diff the imported model’s mass and inertia properties against your source of truth before you trust a single training run — an explicit numeric comparison of total mass, per-link inertia tensors and joint limits, written once as a test, will save you weeks.
Migrating a PhysX-Backed Isaac Lab Workflow
If you already have a working Isaac Lab setup on PhysX, the migration question is the one that actually matters. Here is the sequence that minimises the chance of discovering a regression six weeks in.

Figure 4: Migration sequence. Capture a PhysX baseline first; switch the backend second; compare learning curves before touching anything else.
Step 1: capture a baseline you can defend
Before changing anything, pin your current PhysX configuration and record: steps per second at your production world count, the full reward curve for a converged run with fixed seeds, the final policy’s success rate in sim, and — if you have it — the sim-to-real gap on hardware. Without this you cannot distinguish “Newton is different” from “Newton is worse,” and those require completely different responses.
Record the physics parameters too: timestep, solver iteration counts, contact stiffness and damping, friction coefficients, joint drive gains. You will need them as the starting point for retuning, and half of them will not transfer.
Step 2: switch the backend, change nothing else
Isaac Lab 3.0’s multi-backend architecture exists to make this a configuration change rather than a rewrite. Switch the environment config to the Newton backend and run the same task with the same hyperparameters. Expect one of three outcomes: the environment does not have a Newton preset yet (stop, this task is not ready), it runs but the reward curve diverges from baseline (a physics-parameter problem, go to step 3), or it runs and matches (rare on the first try, but it happens for simple locomotion tasks).
Step 3: retune the physics, not the policy
This is where most migrations go wrong. When the reward curve is worse, the instinct is to adjust learning rates and network sizes. Do not. The physics changed underneath the policy; fix the physics first.
The parameters that genuinely do not transfer between PhysX and a MuJoCo-family solver are contact stiffness and damping, because the contact models are formulated differently; solver iteration counts, because the solvers converge differently; friction, because the friction cone approximation differs; and joint drive gains, because the actuation models differ in how they clamp and apply effort. Timestep sometimes transfers and sometimes does not. Work through them in that order, changing one at a time, and re-run a short fixed-seed training each time.
A useful diagnostic: if your policy learns a behaviour that exploits contact — sliding, wedging, or resting on a surface in an unphysical way — that is a contact-parameter problem, not a learning problem.
Step 4: validate what the backend does not cover yet
Check explicitly for the PhysX-only features. If your task uses Isaac Lab deformable objects, surface grippers or material randomisation, confirm the status in the current release before you commit. Material randomisation in particular is load-bearing for sim-to-real — a policy trained without friction randomisation will transfer worse, and losing it silently during a backend migration is exactly the kind of regression that only shows up on hardware.
Step 5: keep the PhysX path runnable
Do not delete the PhysX configuration. Keep both backends runnable in the same repository for at least one full project cycle. The cost is a config file and some CI time. The benefit is that when a Newton release changes behaviour — and it will, this is a fast-moving 1.6.x codebase — you have a reference implementation to bisect against.
Trade-offs, Gotchas, and What Goes Wrong
The version treadmill is the headline risk. Newton went from 1.0 at GTC 2026 to the 1.6.x line by September 2026. That cadence delivers real capability, and it also means API changes, behaviour changes and changelog entries that quietly alter your physics. Pin exact versions in production training. Read changelogs before upgrading — specifically the solver and contact sections, because a contact-handling fix is simultaneously a bug fix and a change to the distribution your policy was trained on.
Vendor speedup figures do not predict your throughput. The 252x and 475x MJX numbers are vendor-reported on RTX PRO 6000 Blackwell hardware against a specific baseline. Your scene has different DoF, different contact density, different observation computation and different reward code — and in many real environments, observation and reward computation, not physics, is the bottleneck. Profile before you buy hardware on the strength of a ratio.
The DoF ceiling bites silently. MJWarp’s documented degradation beyond roughly 60 DoF per world does not announce itself. You see a throughput number that seems disappointing and assume you need a bigger GPU. Count your degrees of freedom first, including every free-floating scene object, each of which adds six.
Hydroelastic and SDF contact change your capacity planning by an order of magnitude. Memory per world is dramatically higher than point contact. A world count that works for locomotion will not work for assembly. Plan the training schedule around fewer, longer episodes rather than massive parallelism.
Beta status is stated, not implied. MJWarp’s own docs say Beta, needing performance optimisation, documentation and testing, and warn that the beta does not support all combinations of MuJoCo, Warp, CUDA and driver versions. Kamino is described as experimental. Newton’s Isaac Lab integration is in active development. Three layers of “not finished” stack multiplicatively when you debug.
The multiphysics coupling is the newest and least proven part. Rigid-deformable coupling through ADMM is genuinely novel capability, and novel capability in a physics engine means the stability envelope is not yet mapped. Expect to find configurations that blow up, and expect the fix to be timestep and iteration tuning rather than a parameter you can reason about from first principles.
Sim-to-real is not solved by any of this. Better contact models narrow one specific gap. Actuator dynamics, sensor latency, thermal drift, gear backlash, cable stiffness changes with temperature, and the difference between your CAD inertia and the physical robot’s inertia are all untouched. A more accurate simulator raises the ceiling on what domain randomisation and system identification can achieve; it does not replace them.
Practical Recommendations
The decision decomposes cleanly if you take it in the right order. Pick the environment framework first: if you are already in the NVIDIA ecosystem with Omniverse assets and sensor needs, Isaac Lab 3.0 is the answer, and its multi-backend architecture means that choice no longer locks your physics. If you are doing focused research on a single robot with no rendering requirements, using Newton directly — or even MJWarp standalone — is lighter and faster to iterate on. Then pick the solver by contact regime, using Figure 2. Then, and only then, worry about throughput.
For an existing PhysX-backed programme shipping this quarter, do not migrate mid-project. Run the migration as a parallel evaluation track against a captured baseline. For a new programme starting now, start on Newton with the Isaac Lab backend if your task is rigid-body locomotion or reaching, and keep a PhysX fallback configured. For cable, cloth or contact-rich assembly, Newton is the only mainstream option with first-class support, and the maturity cost is worth paying because the alternative is no simulation at all.
Checklist before you commit:
- [ ] Count total DoF per world, including free-floating objects; compare against the ~60 DoF guidance.
- [ ] Confirm your cluster’s NVIDIA driver is 545 or newer with CUDA 12 available.
- [ ] Verify no PhysX-only feature (Isaac Lab deformables, surface grippers, material randomisation) is load-bearing for your task.
- [ ] Capture a full PhysX baseline — throughput, reward curve with fixed seeds, sim success rate — before changing anything.
- [ ] Diff imported model mass, inertia and joint limits against your URDF/MJCF source of truth as an automated test.
- [ ] Persist the Warp kernel cache in CI and container images.
- [ ] Pin exact Newton, Warp, MJWarp and driver versions; read solver and contact changelog sections before every upgrade.
- [ ] Budget memory for hydroelastic or SDF contact separately from your locomotion capacity plan.
- [ ] Keep the PhysX configuration runnable for at least one project cycle.
Frequently Asked Questions
Is Newton 1.0 a replacement for MuJoCo?
No. Newton is an engine and solver framework; MuJoCo Warp is DeepMind’s GPU-optimised MuJoCo implementation and runs as Newton’s primary rigid-body backend. Choosing Newton does not mean leaving MuJoCo’s contact model behind — it means running that model inside a framework that can also handle deformables, granular media and hydroelastic contact, and that can couple them in one scene. CPU MuJoCo remains the right tool for small single-world scenes and for scenes above MJWarp’s degrees-of-freedom comfort zone.
Does Isaac Lab still support PhysX?
Yes. Isaac Lab 3.0 hardened a multi-backend architecture covering PhysX, Newton, OVPhysX and several rendering and kit-less paths, with backend selection and runtime compatibility checking as explicit features. PhysX remains fully supported and is still the only backend for some Isaac Lab features, including deformable objects, surface grippers and material randomisation. Keeping a PhysX configuration alongside a Newton one is a supported and recommended pattern during migration.
Can I run Newton without Isaac Lab or Isaac Sim?
Yes, and for many research workflows you should. Newton installs with pip install "newton[examples]" and runs standalone with its own viewers, including OpenGL, USD output, RTX, Rerun and Viser options. Skipping the Isaac Lab and Omniverse layers removes a large dependency surface and speeds up iteration. You give up Isaac Lab’s task abstractions, vectorised environment plumbing, sensor library and domain-randomisation machinery, which is a lot of infrastructure to rebuild if you are training policies at scale.
Does Newton run on AMD GPUs or Apple Silicon?
No. Newton requires an NVIDIA GPU of Maxwell generation or newer with driver 545+ and CUDA 12, because NVIDIA Warp compiles to CUDA. macOS is supported for CPU-only execution, which is adequate for authoring, debugging and small tests but not for training. There is no AMD ROCm or Apple Metal acceleration path today. If accelerator-vendor independence is a hard requirement for your organisation, this stack does not satisfy it.
Are the 252x and 475x speedup claims trustworthy?
They are vendor-reported, measured by NVIDIA for MuJoCo Warp against MJX on RTX PRO 6000 Blackwell-series hardware, and have not been independently reproduced in published third-party work. The direction is credible — MJX had known scaling limits that a Warp-native implementation addresses — but the magnitude is specific to that baseline, that hardware and those tasks. Benchmark your own scene before making capacity or procurement decisions. In many real environments, observation and reward computation dominate step time, not the solver.
Which solver should I use for cable or wire-harness simulation?
SolverVBD, Newton’s Vertex Block Descent solver, is the path for cables, cloth and volumetric soft bodies, with the newton.Rod type providing validated inputs for ordered chains. For a robot arm manipulating a cable, you couple a rigid solver to VBD — the project ships a Franka-plus-cable example using an ADMM coupling step. Expect solver tuning effort: this is among the newest parts of the engine, and the stability envelope for rigid-deformable coupling is still being mapped release to release.
Further Reading
- Isaac Lab vs Isaac Sim vs Gazebo Harmonic in 2026 — how the framework, the simulator and the open-source incumbent divide responsibilities, and which one owns what.
- Isaac Sim vs Gazebo vs MuJoCo: robot simulation comparison — the broader simulator landscape including the non-NVIDIA options this post does not cover.
- Isaac Lab reinforcement learning robot training tutorial — a hands-on walk through setting up and training a policy, useful before attempting a backend migration.
- Diffusion policy for robot manipulation and imitation learning — the training-loop side of the stack, and why contact fidelity matters differently for imitation than for RL.
- Newton on GitHub — the primary source for requirements, solver list, examples and changelogs.
- MuJoCo Warp documentation — DeepMind’s own statement of MJWarp’s feature support, beta status and scaling limits.
By Riju — about
