Leave a trail of lavender bookmarks

Further reading.

The tutorial is a working map, not the whole territory. These primary texts and official engine documents deepen the theory and reveal different architectural choices.

Start with intuition

Articulated-body dynamics

Collision and robust geometry

Contact and numerical solvers

Numerical methods and optimization

A practical reading route

  1. Complete LavenderSim Chapters 1–3 and implement each small lab without looking at the answer.
  2. Use Underactuated Robotics to strengthen dynamics and control intuition.
  3. Read Featherstone beside Chapters 4–6; reproduce RNEA/ABA round trips numerically.
  4. Read Ericson before changing collision geometry; add degeneracy tests first.
  5. Read Baraff, Box2D, and the MuJoCo computation chapter beside Chapters 7–11. Write down how their constraint formulation differs from LavenderSim.
  6. Use the Chapter 12 engine map to trace one feature through Python, native code, WASM, tests, and documentation.

Compare questions, not brand names

AskWhy 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.