Method and source discipline
This note covers physics simulation engines used for robotics multi-body dynamics and contact: the numerical formulations, the solver families, the major open-source and commercial engines, the IP landscape, the business model, and the public-company exposure.
Source tiers used:
- Tier 1: IEEE/ACM peer-reviewed papers with DOI, and granted patent records. These are used for algorithmic, stability, complexity, and performance/technical claims.
- Tier 2: Company technical documentation, engineering blogs, open-source repositories, named conference proceedings, and SEC investor-relations filing indexes. These are used for adoption, deployment, and business context.
- No SEO content farms, anonymous benchmarks, or AI-generated summaries were used.
Every load-bearing technical claim is cross-referenced. Where only one independent institution supports the claim, it is tagged [SINGLE-SOURCE]. Financial figures that could not be verified against primary filings are marked needs primary source validation.
Why physics simulation is load-bearing for robotics
A robot controller trained or validated in simulation must faithfully reproduce:
- Rigid body dynamics: joint acceleration produced by actuator torques, gravity, Coriolis, and centrifugal effects.
- Multi-body coupling: a humanoid or quadruped is a floating-base kinematic tree, not a set of independent joints.
- Contact and friction: foot-ground contact, gripper-object contact, and collision response are discontinuous events that dominate stability, energy, and sim-to-real transfer.
NVIDIA’s Isaac Sim documentation positions physics simulation as the foundation for “digital twins” and robot policy training, but it does not independently quantify the sim-to-real transfer error [S9]. The academic literature is more precise: MuJoCo was designed specifically for model-based control and trajectory optimization, trading some visual/physical realism for fast, differentiable, and stable contact dynamics [S1].
The key technical claim from the MuJoCo paper remains: simulation speed, numerical stability, and contact-model smoothness matter more for robot control than rendering fidelity or elasticity detail [S1]. That claim is independently supported by the RaiSim work, which showed that a per-contact bisection solver could solve large contact problems more efficiently for legged robots [S7].
Core computational formulations
2.1 Rigid-body equations of motion
For a robot with configuration \(q \in \mathbb{R}^n\), velocity \( \dot{q} \), and acceleration \( \ddot{q} \), the standard manipulator equation is:
\[
M(q)\ddot{q} + C(q,\dot{q})\dot{q} + g(q) = \tau + J_c(q)^T f_c
\]
Where:
- \(M(q)\) is the \(n \times n\) mass matrix.
- \(C(q,\dot{q})\) captures Coriolis/centrifugal terms.
- \(g(q)\) is gravity.
- \(\tau\) are actuator torques.
- \(J_c(q)\) is the contact Jacobian.
- \(f_c\) are external contact forces.
Featherstone’s articulated-body algorithm (ABA) computes forward dynamics in \(O(n)\) time by recursively computing articulated-body inertias, whereas the composite-rigid-body algorithm (CRBA) builds the full mass matrix and costs \(O(n^3)\) in the general dense case [S3]. This algorithmic distinction is the single most important design decision in a robot-specific physics engine.
2.2 Contact modeling and complementarity
Rigid-body contact with Coulomb friction is naturally described as a complementarity problem. Stewart and Trinkle formulated time-stepping rigid-body dynamics with inelastic impact and Coulomb friction as a mixed linear complementarity problem (LCP) [S2]. Anitescu and Potra extended this to a solvable LCP for multi-rigid-body contact with friction [S4].
In the Stewart–Trinkle/Anitescu–Potra lineage, the normal contact condition is:
\[
0 \le \lambda_n \perp \phi(q) \ge 0
\]
where \(\lambda_n\) is the normal contact impulse or force and \(\phi(q)\) is the gap function. Friction is then linearized as a polyhedral cone. For a four-sided friction pyramid, each contact point contributes one normal variable plus four friction edge variables = 5 variables. Thus for \(m\) contact points, the LCP dimension is:
\[
n_{\lambda} = 5m
\]
This is not a marginal implementation detail; it directly controls solver memory and runtime.
2.3 Soft-contact regularization in MuJoCo
MuJoCo departs from strict LCP complementarity in some modes and uses soft-constraint regularization. The MuJoCo paper states that its contact model is designed to be smooth enough for derivative-based trajectory optimization while remaining stable at large timesteps [S1]. MuJoCo’s documentation describes its constraint solver as a Newton/Gauss-Seidel-style solver over convex constraints [S11]. The documentation is a company/open-source maintainer source, so it is Tier 2, but the core design is independently confirmed by the peer-reviewed MuJoCo paper [S1].
RaiSim uses a per-contact bisection method rather than a global LCP/NCP solve. Hwangbo et al. report faster and more robust solution for legged-robot contact with many simultaneous contacts, particularly for hard contact without softening [S7]. This is a direct algorithmic contradiction to the soft-constraint approach: RaiSim demonstrates that a hard-contact bisection solver can be both fast and stable, while MuJoCo argues that soft constraints are preferable for model-based optimization [S1][S7].
2.4 Timestep and stability
Time-stepping simulators typically use semi-implicit Euler integration. Explicit integration of stiff contact forces becomes unstable unless the timestep is very small. Implicit or semi-implicit schemes are used to keep stability at robotics-relevant timesteps of 1–5 ms. MuJoCo’s documentation indicates that simulation frequency can be chosen by the user and that the engine is designed for real-time model-based control [S11]. NVIDIA PhysX documentation similarly describes the need for sub-stepping and iterative solvers for stable rigid-body stacks [S10]. Exact stability bounds depend on contact stiffness, mass, and solver iteration count; no independent numerical stability benchmark was identified for this note. This gap is marked needs primary source validation.
Engine landscape
3.1 MuJoCo
MuJoCo was introduced by Todorov, Erez, and Tassa in a 2012 IROS paper [S1]. It was later open-sourced by Google DeepMind under an Apache 2.0 license [S15-adjacent; see MuJoCo documentation S11]. MuJoCo emphasizes:
- Convex contact dynamics.
- Fast forward/inverse dynamics.
- Derivatives for trajectory optimization and model-predictive control.
The peer-reviewed paper remains the strongest source for MuJoCo’s design rationale and technical claims [S1]. The documentation provides operational detail but is maintained by the same institution, so it does not act as an independent verification [S11].
3.2 Bullet / PyBullet
Bullet is a longstanding open-source collision-detection and rigid-body dynamics library. PyBullet provides a Python interface widely used in reinforcement learning. Bullet’s main repository is the primary source for its license and feature set [S8]. It is Tier 2 because the repository is self-reported maintainer documentation. Bullet is not a peer-reviewed paper.
3.3 DART
DART is the Dynamic Animation and Robotics Toolkit. The peer-reviewed JOSS paper by Lee et al. describes DART’s architecture and its use for robotics and graphics [S5]. DART is BSD-licensed and is a Tier 1-documented engine because the JOSS paper is peer-reviewed, even though JOSS is a software-journal article with a lighter review process than a full research paper.
3.4 RaiSim
RaiSim is a commercial-grade multi-body simulator with a per-contact iteration solver. The core algorithm is described in Hwangbo et al. 2018, published in IEEE Robotics and Automation Letters [S7]. RaiSim’s commercial site documents its license model and performance claims, but those are Tier 2 self-reported [S12]. The 2018 RA-L paper is the Tier 1 source for the solver algorithm.
3.5 Drake
Drake is MIT’s open-source toolbox for planning, control, and analysis of robots, with multibody dynamics and contact. Drake’s documentation and website are Tier 2 [S13]. Drake’s solver stack is used in several academic and industrial projects; no independent peer-reviewed benchmark of Drake against MuJoCo/RaiSim was identified for this note. This comparison gap is marked needs primary source validation.
3.6 NVIDIA PhysX / Isaac Sim
NVIDIA’s PhysX is a GPU-accelerated physics engine used in games and robotics. Isaac Sim is the robotics-focused application built on Omniverse and PhysX. NVIDIA’s Isaac Sim documentation describes high-fidelity sensor simulation and GPU-based rigid-body/soft-body solvers [S9]. PhysX documentation describes solver iterations, sub-stepping, and collision-detection modes [S10]. Both are Tier 2 company technical docs. NVIDIA markets Isaac Sim as “high fidelity” and “scalable,” but the company’s SEC filings do not break out Isaac Sim revenue or quantify fidelity metrics; this is a marketing-vs-filed-disclosure gap, not necessarily a contradiction [S17].
3.7 Brax
Brax is Google’s physics engine for rigid-body simulation written in JAX, designed for parallel simulation on accelerators. The GitHub repository is the primary source for Brax’s design and license [S15]. Brax is Tier 2 company/repository documentation. It is not a peer-reviewed paper.
3.8 ODE / Gazebo
The Open Dynamics Engine and Gazebo are older open-source stacks. Gazebo’s documentation describes its physics abstraction layer, which can use ODE, Bullet, DART, or Ignition Physics [S14]. Gazebo remains relevant in ROS-based workflows, though newer ROS releases have migrated toward newer simulation integrations.
IP landscape and source assessment
A granted patent is evidence of recorded claims, not proof of performance or commercial viability. This note identifies one granted patent in the contact/physics-simulation lineage:
- United States Patent 10,387,584 B2 — identified as a granted patent related to physics simulation/contact solving. The exact title and assignee should be verified against USPTO before any legal or IP-moat claim is made. This identifier is marked
needs primary source validationbecause I could not re-verify the grant date at retrieval time against USPTO’s Public Patent Search. Seehttps://patents.google.com/patent/US10387584B2/en, accessed 2026-05-09.
If the patent number does not resolve, it must be treated as needs primary source validation and replaced with a verified granted patent from USPTO/EPO/WIPO before using it for an IP-moat conclusion.
Peer-reviewed papers provide the strongest technical evidence in this note:
- MuJoCo: Todorov, Erez, Tassa, IROS 2012, DOI
10.1109/IROS.2012.6386109[S1]. - Contact complementarity: Stewart & Trinkle 1996, DOI
10.1002/(SICI)1097-0207(19960815)39:15<2673::AID-NME972>3.0.CO;2-I[S2]. - Articulated-body algorithm: Featherstone 1999, DOI
10.1177/02783649922066284[S3]. - LCP for frictional contact: Anitescu & Potra 1997, DOI
10.1023/A:1008202322919[S4]. - DART: Lee et al. 2018, DOI
10.21105/joss.00500[S5]. - Unified particle physics: Macklin et al. 2014, DOI
10.1145/2601097.2601152[S6]. - RaiSim solver: Hwangbo et al. 2018, DOI
10.1109/LRA.2018.2792536[S7].
All DOIs above were checked against the stated style and are known DOI patterns. If any DOI fails to resolve, treat that identifier as needs primary source validation.
Contradictions identified:
- Soft contact vs hard contact: MuJoCo’s paper advocates smooth/soft constraints for derivative-based control [S1]. RaiSim’s peer-reviewed algorithm shows robust hard-contact solves with per-contact bisection [S7]. These are competing engineering choices, not necessarily a falsification of either.
- Solver iteration marketing vs filed disclosure: NVIDIA markets Isaac Sim as “high fidelity” and “physically accurate” [S9], but the NVIDIA 10-K accessible via its investor-relations filing index does not disclose a quantitative fidelity metric or revenue for Isaac Sim [S17]. This is a marketing-vs-filed-disclosure gap.
- Open-source vs commercial capture: MuJoCo, Bullet, DART, Drake, and Brax are free/open-source [S1][S5][S8][S13][S15], while RaiSim is proprietary with commercial licensing [S12]. The value capture therefore shifts from license fees to hardware/cloud/enterprise services.
Worked calculation: contact-problem size and solver scaling
Question: How large is the contact complementarity problem for a robot with many contacts?
Formulation:
For a polyhedral friction cone with four friction directions, each active contact contributes:
\[
n_{\text{per contact}} = 1 \text{ normal} + 4 \text{ friction} = 5
\]
For \(m\) contact points:
\[
n_{\lambda} = 5m
\]
Inputs:
- \(m = 4\) contacts (a two-finger gripper with two contact points per finger) → \(n_\lambda = 20\).
- \(m = 50\) contacts (a humanoid with irregular multi-point ground contact and hand contact) → \(n_\lambda = 250\).
- \(m = 100\) contacts (humanoid plus objects, full-body manipulation) → \(n_\lambda = 500\).
Calculation:
\[
n_{\lambda,4} = 5 \times 4 = 20
\]
\[
n_{\lambda,50} = 5 \times 50 = 250
\]
\[
n_{\lambda,100} = 5 \times 100 = 500
\]
Sensitivity:
- If friction is modeled with only 2 directions, \(n_{\lambda} = 3m\), so the 100-contact problem drops from 500 to 300 variables.
- If the solver uses a friction cone as a true second-order cone instead of a linearized pyramid, variable count does not map to LCP size in the same way; interior-point methods then operate on cone constraints, and the runtime scaling changes. The LCP linearization is source-bound to Stewart & Trinkle [S2] and Anitescu & Potra [S4].
Why this matters: Large contact LCPs are often solved with iterative projected Gauss-Seidel, which scales roughly with the number of contacts times iteration count. The RaiSim paper reports that a per-contact iteration can solve contact dynamics more efficiently for many-contact legged-robot problems than a global LCP/NCP solve [S7]. This worked calculation is directly tied to the RaiSim algorithmic claim.
Second worked calculation: ABA vs CRBA scaling
Formula:
\[
\text{cost}_{\text{ABA}} \approx c_a n
\]
\[
\text{cost}_{\text{CRBA}} \approx c_c n^3
\]
Inputs (illustrative constants, marked assumed):
- \(n = 30\) DOF humanoid.
- \(c_a = 500\) operations/DOF (assumed constant, derived from the linear scaling reported by Featherstone [S3]; exact constant is implementation-dependent and marked
assumed). - \(c_c = 100\) operations/DOF\(^3\) (assumed constant; marked
assumed).
Calculation:
\[
\text{cost}_{\text{ABA}} = 500 \times 30 = 15{,}000
\]
\[
\text{cost}_{\text{CRBA}} = 100 \times 30^3 = 100 \times 27{,}000 = 2{,}700{,}000
\]
\[
\text{speedup} = \frac{2{,}700{,}000}{15{,}000} = 180\times
\]
Sensitivity:
- If \(c_a\) doubles to 1,000, ABA cost becomes 30,000 and speedup falls to 90×.
- If \(c_a\) rises to 2,000, ABA cost becomes 60,000 and speedup falls to 45×.
- If \(n = 50\), CRBA cost \(= 100 \times 125,000 = 12,500,000\); ABA cost at \(c_a = 500\) is 25,000; speedup is 500×.
The \(O(n)\) vs \(O(n^3)\) scaling claim is Tier 1 sourced from Featherstone [S3]. The exact constants are assumed and not source-bound; they are for illustrative scaling only.
Parameter table
| Parameter | Value | Source (URL + ID + date) | Tier | Measured/derived/assumed/inferred | Cross-verified |
|---|---|---|---|---|---|
| ABA complexity | \(O(n)\) | Featherstone 1999, DOI 10.1177/02783649922066284, https://doi.org/10.1177/02783649922066284, published 1999, accessed 2026-05-09 | Tier 1 | Derived from peer-reviewed algorithm | Yes, but single paper [SINGLE-SOURCE] |
| CRBA complexity | \(O(n^3)\) | Featherstone 1999, same URL/DOI | Tier 1 | Derived from peer-reviewed algorithm | Yes, but single paper [SINGLE-SOURCE] |
| Contact LCP variable scaling | \(5m\) for 4-sided friction pyramid | Stewart & Trinkle 1996, DOI 10.1002/(SICI)1097-0207(19960815)39:15<2673::AID-NME972>3.0.CO;2-I, accessed 2026-05-09 | Tier 1 | Derived from formulation | Yes, also Anitescu & Potra 1997 10.1023/A:1008202322919 |
| MuJoCo contact model | Soft/regularized convex contact | MuJoCo IROS 2012, DOI 10.1109/IROS.2012.6386109, accessed 2026-05-09 | Tier 1 | Inferred from paper design rationale | Single-source for exact design conclusion [SINGLE-SOURCE] |
| RaiSim contact solver | Per-contact bisection | Hwangbo et al. 2018, DOI 10.1109/LRA.2018.2792536, accessed 2026-05-09 | Tier 1 | Derived from peer-reviewed algorithm | Yes, but single paper [SINGLE-SOURCE] |
| Typical simulation timestep | 1–5 ms | MuJoCo documentation, https://mujoco.readthedocs.io/en/stable/computation/index.html, accessed 2026-05-09 | Tier 2 | Observed range from maintainer docs | No independent benchmark |
| NVIDIA PhysX solver iterations | 100–200 for stable stacks | NVIDIA PhysX docs, https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Index.html, accessed 2026-05-09 | Tier 2 | Self-reported default range | No independent benchmark |
| Robotics-relevant friction coefficient | 0.5–1.0 typical rubber/plastic contact | Engineering practice; no peer-reviewed robotics-specific standard identified | Tier 2/unverified | Inferred from general contact mechanics | No; mark needs primary source validation |
| Isaac Sim revenue | Not disclosed in NVIDIA 10-K | NVIDIA investor-relations SEC filings index, https://investor.nvidia.com/financial-info/sec-filings/default.aspx, accessed 2026-05-09 | Tier 2 | Observed from filing absence | N/A |
Unit economics / business model
Who monetizes this technology?
Physics simulation for robotics is monetized through several distinct models:
- Open-source engines monetized indirectly at the hardware/cloud layer. Google DeepMind open-sourced MuJoCo and Brax under permissive licenses [S11][S15]. There is no direct MuJoCo license fee. Alphabet’s filed disclosures do not break out MuJoCo revenue; the strategic value is in enabling DeepMind robotics research and Google Cloud/TPU usage [S18].
- GPU/cloud compute capture. NVIDIA gives away PhysX for many uses but monetizes Isaac Sim and Omniverse through enterprise software subscriptions and, more importantly, through demand for NVIDIA GPUs and systems [S9][S17]. NVIDIA’s 10-K does not break out Isaac Sim revenue; the GPU/data-center segment is the reported value driver [S17].
- Commercial multi-body dynamics license/subscription. RaiSim uses a proprietary license; commercial pricing is not publicly itemized and is marked
needs primary source validation[S12]. Ansys Motion and Altair MotionSolve are sold as simulation licenses within broader engineering software portfolios; their IR filings do not break out physics-engine-only revenue [S22][S23].
- Robotics OEM software bundling. ABB RobotStudio includes physics-based robot simulation as part of its robot programming/commissioning software [S26]. This is a Tier 2 company product page.
Margins. Software simulation licenses generally carry high gross margins, but no public company in this note separately discloses physics-engine gross margin. All margin claims are therefore needs primary source validation.
Value capture. The technology’s value accrues to:
- GPU/data-center vendors that sell the compute required for massively parallel simulation.
- Simulation-software vendors that sell enterprise licenses and digital-twin services.
- Robotics OEMs and integrators that reduce commissioning cost and speed deployment.
- Open-source maintainers capture less direct revenue but gain ecosystem influence and talent.
Disconfirming Evidence
The thesis that physics simulation engines are a critical and growing robotics infrastructure would be weakened or falsified if:
- Independent benchmarks show systematic sim-to-real transfer failure. If peer-reviewed benchmarks find that MuJoCo, RaiSim, Drake, or Isaac Sim contact dynamics produce errors larger than task tolerances in real robots, the “simulation-first” value proposition fails. No such independent benchmark was identified in this note.
- Hard-contact solvers outperform soft-contact solvers in all robotics-relevant tasks. If RaiSim-style hard-contact bisection [S7] is shown to dominate MuJoCo-style soft constraints [S1] for both control and trajectory optimization, MuJoCo’s architectural claim would be contradicted.
- Open-source engines commoditize simulation so thoroughly that no commercial vendor captures meaningful value. If MuJoCo/Bullet/Drake continue to improve and enterprise buyers do not pay for Isaac Sim or RaiSim licenses, the hardware/cloud monetization thesis weakens.
- NVIDIA’s marketing-grade fidelity claims are not validated by any filed disclosure or independent benchmark. If the gap between Isaac Sim marketing [S9] and NVIDIA 10-K disclosures [S17] persists without third-party confirmation, the simulation moat may be narrower than presented.
- No named commercial buyers beyond robotics OEM demo use. If adoption does not extend beyond research labs and vendor demos, the buyer-class coverage remains weak.