Start with intuition
MIT Underactuated RoboticsFree, executable notes connecting dynamics, control, optimization, and learning. Use the multibody and trajectory chapters after LavenderSim Chapters 3–6.MuJoCo modeling guideOfficial guidance on model choices, units, coordinate frames, actuators, contacts, and solver parameters. Compare concepts; do not assume API compatibility.
Articulated-body dynamics
Featherstone — Rigid Body Dynamics AlgorithmsCanonical book and author's spatial-algebra resources for RNEA, CRBA, and ABA. Read after Chapters 4–6.MuJoCo computation chapterOfficial derivation and pipeline description for MuJoCo's generalized-coordinate dynamics, constraints, contacts, and inverse dynamics.
Collision and robust geometry
Christer Ericson — Real-Time Collision DetectionPractical reference for bounding volumes, closest-point queries, SAT, robustness, and spatial acceleration.Shewchuk — Robust Adaptive Floating-Point Geometric PredicatesPrimary paper explaining why naïve orientation predicates fail and how adaptive exact arithmetic repairs them.
Contact and numerical solvers
Baraff and Witkin — Physically Based Modeling course notesFoundational notes on particles, rigid bodies, constraints, collisions, contact, and implicit integration.Box2D simulation documentationOfficial, approachable description of iterative rigid-body simulation, contacts, friction, restitution, joints, sleeping, and continuous collision in 2D.NVIDIA PhysX documentationProduction-engine documentation for rigid bodies, collision, solver behavior, articulations, vehicles, and performance tradeoffs.
Numerical methods and optimization
Hairer, Nørsett, Wanner — Solving Ordinary Differential Equations IDeep reference on nonstiff ODE methods, stability, convergence, and error control.Boyd and Vandenberghe — Convex OptimizationFree authoritative text for quadratic programs, duality, KKT conditions, and the optimization view of constrained dynamics.
A practical reading route
- Complete LavenderSim Chapters 1–3 and implement each small lab without looking at the answer.
- Use Underactuated Robotics to strengthen dynamics and control intuition.
- Read Featherstone beside Chapters 4–6; reproduce RNEA/ABA round trips numerically.
- Read Ericson before changing collision geometry; add degeneracy tests first.
- Read Baraff, Box2D, and the MuJoCo computation chapter beside Chapters 7–11. Write down how their constraint formulation differs from LavenderSim.
- Use the Chapter 12 engine map to trace one feature through Python, native code, WASM, tests, and documentation.
Compare questions, not brand names
| Ask | Why it matters |
|---|---|
| What state representation is integrated? | Generalized coordinates and Cartesian bodies lead to different dynamics and constraint work. |
| When are constraints enforced? | Acceleration-, velocity-, and position-level methods have distinct error and stability behavior. |
| How is contact regularized? | Hard complementarity, compliance, stabilization, and penalty models should not be compared as if parameters were interchangeable. |
| Which diagnostics are public? | Residuals, constraint error, contact state, and profiler counters make causal validation possible. |
| What is deterministic? | Backend, compiler, thread order, clocks, and sensor RNG may change the appropriate parity tolerance. |
Version note: external documentation evolves. Follow the linked project's version selector and re-check assumptions before implementing against a newer release.