Physics systems Gems and research review¶
Status: Design evidence, reviewed 2026-10-07 against origin/main at
1e2227c. No runtime implementation or benchmark is added by this review.
The physics architecture recorded its initial decision
table before searching game-dev-gems-toc.md.
The revised architecture incorporates the decisions below.
Reading scope and evidence¶
The requested index was searched for physics, collision, rigid bodies, constraints, queries, convex shapes, inertia, integration, sleep and transforms. Relevant Gems articles were selected for concrete effects on maintainability, robustness and debugging. The index also catalogs other books; they are not silently treated as Gems articles or evidence of current performance.
Game Programming Gems 4 is scanned. PDF pages 247-268 were rendered and OCR read; visual inspection verified authors, chapter headers, printed page numbers and the mesh-edge discussion. Other selected chapters provide extractable text; visual checks also confirmed the sleep test and swing/twist equation. All PDF page numbers below are physical one-based pages; printed pagination is distinct. Bookmark/index offsets are not reliable enough to infer printed pages.
The PDFs and TOC are in the ignored local references/ library. The links below
require that library; fresh clones and offline documentation bundles do not
contain the books. No scans, excerpts, OCR output, CD source or historical
binaries are published with the proposal. Scratch reading material stays under
ignored out/. Summaries describe selected ideas; the complete contracts and
engineering departures are Ludus decisions.
Thanks to the credited authors for these techniques. Implementation work must retain concise attribution near code materially informed by a reading, with this review linked for details, as required by AGENTS.md. No algorithm or sample code was copied.
Changes to the initial architecture¶
| Verified reading | Concrete improvement | Acceptance evidence |
|---|---|---|
| Constraints in Rigid Body Dynamics | Named row/anchor frames; finite motor impulse limits and diagnostic saturation; explicit positional correction | Off-center anchors, force-limited motors, redundant rows and correction-energy tests |
| Fast Contact Reduction for Dynamics Simulation | Mesh adjacency cooking, compatible patch reduction, support-area retention and feature-based persistence | Tessellation-independent rest, seam sliding, opposing-normal separation and cache invalidation |
| Moments of Inertia for Common Shapes | Authored/body/COM frame separation and compound parallel-axis mass contract | Asymmetric compound, rotated inertia, overlapping mass-volume policy |
| A Jitter-Tolerant Rigid Body Sleep Condition | Motion-envelope qualification, angular observability, dwell/reset semantics | Jitter, rotation about each axis, support removal and full-turn alias guard |
| Fast Generic Ray Queries for Games | Shared gameplay query service with explicit static/dynamic coverage and collector guarantees | Query versus brute-force oracle, mixed scenery and local/world distance invariance |
| XenoCollide: Complex Collision Made Simple | Small convex representation seam; keep overlap/penetration distinct from distance/manifold needs | Degenerate support, bounded convergence and full query result semantics |
| Efficient Collision Detection Using Transformation Semantics | Named rigid frames and asset-baked scale; no generic matrix inverse per test | Local/world round trips, rejected shear/negative scale and normal/distance tests |
| Rotational Joint Limits in Quaternion Space | Quaternion sign equivalence, swing/twist convention, 180-degree singularity handling | Limit boundary/continuity tests and matching inspector visualization |
| Volumetric Hierarchical Approximate Convex Decomposition | Offline decomposition limits and gameplay clearance validation | Bounded hull count/complexity, cook diagnostics and authored passage tests |
The strongest additions are explicit contracts and adversarial scenes. The review does not justify replacing a qualified backend, adding every historical algorithm, or claiming that all proposed optimizations have been measured.
Constraints in Rigid Body Dynamics¶
Russ Smith, section 3.4, Game Programming Gems 4. Read PDF pages 247-257, printed pages 241-251. Chapter.
The chapter explains building velocity constraints from scalar Jacobian rows, including anchor shifting, joints and force-limited motors. It discusses drift correction and the instability risk of overly aggressive correction.
Adopt: inspectable row semantics, explicit anchor-to-COM conversion and finite motor authority. Adapt: the public API remains typed joint descriptors; impulse limits use the actual solver duration, with units and saturation exposed. Do not copy: the ODE binding or its numerical tuning into another backend. Raw custom-row callbacks stay private until a real feature needs them.
Fast Contact Reduction for Dynamics Simulation¶
Ádám Moravánszky and Pierre Terdiman, section 3.5, Game Programming Gems 4. Read PDF pages 258-268, printed pages 253-263. Chapter.
The chapter combines mesh feature preprocessing, contact grouping/reduction and feature-key persistence. It emphasizes useful contact spread, deepest penetration and correspondence across steps for warm starting.
Adopt: cooked internal-edge information, patch compatibility and persistence qualification. Adapt: full collider incarnations/revisions, material boundaries, conservative nonmanifold handling and backend-specific manifold capacities. Defer: cube-map or k-means clustering until profiling identifies that problem. Do not copy: the chapter's five-point selection as a universal cap, an unchecked 64-bit feature hash as identity, or aggressive concave-vertex removal without proof for our mesh sidedness and topology.
Moments of Inertia for Common Shapes¶
Eric Lengyel, chapter 14, Game Engine Gems 1. Read sections 14.1-14.2 and the start of 14.3, PDF pages 287-293, printed pages 259-265. Chapter.
The chapter develops COM and inertia tensors, their frame translation and primitive mass properties. Its translation formula assumes the original tensor is about COM, an important precondition when assembling compounds.
Adopt: explicit mass frames, rotated tensors and parallel-axis composition. Adapt: checked cooker arithmetic, tensor conditioning validation and an explicit policy for overlapping mass volumes. Do not infer: that additive compound leaves describe a geometric union's mass. Remaining primitive derivations are useful implementation reading, not claimed to have been fully reviewed here.
A Jitter-Tolerant Rigid Body Sleep Condition¶
Eric Lengyel, chapter 23, Game Engine Gems 2. Read PDF pages 401-403, printed pages 385-387. Chapter.
The test accumulates world-space motion bounds for COM and two noncollinear body-fixed points. Their extent over a dwell window permits small jitter while observing rotational motion. Bounds reset after excessive motion.
Adopt: qualify sleep with both translation and rotation, and expose the window/threshold/reset decisions. Adapt: island wake dependencies, size-aware sample offsets and a high-angular-motion veto to prevent sampling aliasing. Do not assume: sampled envelopes detect arbitrary continuous trajectories or that a historical one-second window is the right game tuning. Compare against the chosen backend before introducing a second sleep algorithm.
Fast Generic Ray Queries for Games¶
Jacco Bikker, section 2.2, Game Programming Gems 7. Read PDF pages 160-174, printed pages 127-141. Chapter.
The chapter treats rays as a general gameplay tool and examines static and dynamic acceleration structures with different build/update costs.
Adopt: one clear physics query service with complete mixed-scene coverage, local-space geometry and workload measurement. Adapt: use the selected backend's dynamic hierarchy and cooked static BVHs first. Any/closest/all, initial overlap, epoch and incomplete-result contracts are Ludus additions. Reject: transferring its rays-per-second figures, pointer-tag packing or claims of a universally best kD-tree to current hardware. Packet/SIMD queries follow measurements of actual coherent and incoherent ray batches.
XenoCollide: Complex Collision Made Simple¶
Gary Snethen, section 2.5, Game Programming Gems 7. Read PDF pages 198-211, printed pages 165-178. Chapter.
Support mappings give varied convex shapes a small representation interface; Minkowski Portal Refinement provides geometric overlap/penetration reasoning.
Adopt: convex shape extensions should not require duplicating every pair algorithm in the public architecture. Adapt: qualify the backend's own narrowphase, feature and numerical-failure behavior. Do not infer: that MPR alone provides closest distance, a stable multi-point manifold or rotational CCD. Keep it a comparison candidate if an identified convex failure warrants one; do not add it alongside working GJK/EPA simply because the chapter is readable.
Efficient Collision Detection Using Transformation Semantics¶
José Gilvan Rodrigues Maia, Creto Augusto Vidal and Joaquim Bento Cavalcante-Neto, section 2.6, Game Programming Gems 7. Read PDF pages 212-223, printed pages 179-190 including the intervening/end pages. Chapter.
The chapter exploits known transform structure rather than treating every matrix as arbitrary. Its model includes a particular scale/rotation/translation composition with nonzero scales.
Adopt: explicitly named frames and checked transform assumptions. Adapt: runtime collision instances are rigid; scale and reflection are baked and validated offline. Do not copy: its inverse formulas for hierarchies that introduce shear, or normalize local rays in a way that changes world distances. The initial runtime restriction keeps the implementation and debugger smaller.
Rotational Joint Limits in Quaternion Space¶
Gino van den Bergen, chapter 10, Game Engine Gems 3. Read PDF pages 116-131, printed pages 123-138. Chapter.
The chapter discusses rotation parameterization, swing/twist limits and more general quaternion-space limit volumes, including limitations of independent rotation coordinates.
Adopt: quaternion equivalence and a named relative-orientation/axis convention. Adapt: explicitly handle the zero denominator of the swing/twist decomposition near a half turn, with continuity tests and matching limit visualization. Defer: anatomical quaternion-volume constraints and their projection solvers. A shoulder is not fully modeled by independent swing/twist bounds; the typed backend joint is the initial mechanic, not a claim of anatomical fidelity.
Volumetric Hierarchical Approximate Convex Decomposition¶
Khaled Mamou, chapter 11, Game Engine Gems 3. Read PDF pages 133-148, printed pages 141-156; introduction and algorithm discussion. Chapter.
The chapter uses a volumetric representation and hierarchical partitioning to trade convex-approximation quality against representation complexity.
Adopt: decomposition belongs in offline cooking, with explicit quality and hull-count/complexity controls. Adapt: validate narrow passages, support surfaces and holes in gameplay units; volume error alone is not a bound on local clearance or contact error. Save cooker/settings revisions. Do not select: a historical V-HACD implementation without comparing currently maintained tools at implementation time. Artists can provide authored convex proxies first; automatic decomposition is optional, not a runtime dependency.
Relevant leads deferred after index inspection¶
The following are useful entries in the requested TOC, but their chapter contents were not reviewed for this change. No detailed algorithmic claim or adoption is based on their titles alone.
| Index entry | When to read and what it might improve |
|---|---|
| Miguel Gomez, Integrating the Equations of Rigid Body Motion; Using Implicit Euler Integration for Numerical Stability, Gems 1 | If free-spin, stiffness or damping tests identify an integrator problem |
| Recursive Dimensional Clustering: A Fast Algorithm for Collision Detection, Gems 2, 2.7 | Broadphase candidate density/tree-update bottlenecks after measurement |
| Compressed Axis-Aligned Bounding Box Trees, Gems 2, 4.4 | Static-mesh memory/traversal pressure, with conservative-bound verification |
| Vehicle Physics Simulation for CPU-Limited Systems; Writing a Verlet-Based Physics Engine, Gems 4, 3.2-3.3 | A vehicle or positional-constraint consumer with its own fidelity/cost requirements |
| Fast Collision Detection for 3D Bones-Based Articulated Characters, Gems 4, 5.14 | Ragdoll/character collision shapes and animation-to-physics synchronization |
| Exact Buoyancy for Polyhedra; Real-Time Particle-Based Fluid Simulation with Rigid Body Interaction, Gems 6, 2.5-2.6 | Fluid-solid coupling after the existing field sampling contract is established |
| Rahul Sathe and Dillon Sharlet, Fast Rigid-Body Collision Detection Using Farthest Feature Maps, Gems 7, 2.3 | Measured convex support-search cost on a workload that repays extra memory/cooking |
| Improved Numerical Integration with Analytical Techniques; What a Drag: Modeling Realistic Three-Dimensional Projectiles; Approximate Convex Decomposition for Real-Time Collision Detection, Gems 8, 2.5-2.6 and 2.8 | Analytic force models or a specific cook-quality problem |
| Richard Tonge, Ben Wyatt and Ben Nicholson, PhysX GPU Rigid Bodies in Batman: Arkham Asylum, Gems 8, 7.2 | A separate high-count cosmetic GPU workload and platform/readback budget |
The existing fluid reference review owns its water readings and scope. General rigid-body design does not overwrite those small-game or fluid-field choices.
Current research and follow-up¶
The architecture also consulted current primary Jolt/PhysX/Box2D documentation, Catto's Solver2D and temporal-coherence work, and Small Steps in Physics Simulation. Their exact links, attribution and applicability limits are in the architecture's evidence sections. No historical Gems timing is used as a modern budget or proof of SOTA.
Conferences, journals and reading plan¶
For Ludus, prioritize production integration evidence from GDC alongside numerical research from SCA and SIGGRAPH. The ranking below is an engineering recommendation for this proposed CPU rigid-body/query system, not a ranking of publication quality. Read proceedings and available presentations before considering conference travel.
| Priority and venue | What to look for | Ludus decision it can improve |
|---|---|---|
| First: GDC physics talks | Production streaming, game/physics synchronization, profiling, contact and CCD failure cases | P0 backend/job qualification and P4 world integration; turn reported problems into local regression scenes |
| First: ACM SIGGRAPH/Eurographics Symposium on Computer Animation (SCA) | Contact, friction, constraints, integration, articulated and deformable simulation | P2-P3 quality tests; later compare solver/substep choices at equal total frame cost |
| First: SIGGRAPH technical papers and ACM Transactions on Graphics (TOG) | New simulation algorithms, collision geometry and robust numerical methods | P5 experiments after a measured baseline; require reproduction and a compatible implementation before adoption |
| Targeted: Eurographics / Computer Graphics Forum (CGF) and State-of-the-Art Reports | Surveys that compare assumptions and limitations across methods | Choose a research direction before adding a new solver or coupling subsystem; avoid overlapping abstractions |
| Targeted: ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D) | Interactive geometry, acceleration structures and parallel workloads | P1/P5 query traversal, static-mesh cooking, batch scheduling and memory experiments |
| Targeted: IEEE Transactions on Visualization and Computer Graphics (TVCG) | Robust geometry and simulation papers relevant to a concrete failure | Collision robustness/cooking or a later specialist subsystem; filter against the actual supported platforms |
Conference and journal feeds overlap: SCA 2026 full papers appear in CGF, and SIGGRAPH's TOG papers belong to both reading streams. Deduplicate by title/DOI; do not count the same result as independent supporting evidence. Publication formats can change, so record the actual venue/year of each selected work.
Initial readings mapped to the architecture¶
These are a follow-up queue. The primary listing/project description and survey abstract informed the relevance assessment; this change does not claim a complete review of the talk, survey or AVBD paper, or reproduction of their results.
Thanks to Jorrit Rouwé, Architecting Jolt Physics for 'Horizon Forbidden West', GDC 2022. Its session overview identifies streaming and interaction with multithreaded game object updates as architectural bottlenecks. Read this during P0, then inspect the exact candidate revision for locking, publication and job dependencies. At P4, measure terrain/collider installation while queries and game updates are active. The resulting decision is whether our command boundary and protected query views fit the backend's concurrency model. Guerrilla's reported savings are evidence for its workload; they are not a Ludus performance estimate or a reason to bypass the allocation/failure gate.
Thanks to Daniel Holz, Stefan Rhys Jeske, Fabian Löschner, Jan Bender, Yin Yang and Sheldon Andrews, Multiphysics Simulation Methods in Computer Graphics, Eurographics State-of-the-Art Report, Computer Graphics Forum 44(2), 2025, DOI: 10.1111/cgf.70082. Use this survey when a concrete fluid/soft-body/rigid-body coupling consumer exists. Its cross-method scope can help choose coupling direction and integration boundaries. The questions for Ludus are who owns the fixed clock, how impulses cross subsystem boundaries, and whether two-way feedback needs substeps. Keep detailed fluid decisions in the fluid reference review. The survey motivates that investigation; it does not justify adding a universal multiphysics solver to the present rigid-body baseline.
Thanks to Chris Giles, Elie Diaz and Cem Yuksel, Augmented Vertex Block Descent, ACM Transactions on Graphics 44(4), 2025, SIGGRAPH, DOI: 10.1145/3731195, with an author project page, paper and demo source. The project describes an augmented Lagrangian extension for hard constraints and high stiffness ratios, with rigid contact, friction and joints evaluated in a parallel GPU implementation. At P5, investigate it only if dense contact or joint scenes expose a baseline quality/cost limitation. First reproduce relevant results, then compare end-to-end cost including collision detection, data movement and events on supported hardware. GPU results do not establish an advantage for our CPU path, and numerical stability does not establish collision completeness or small constraint error. A research prototype remains separate from the qualified backend until it passes the same contracts and maintenance review.
Experiments and adoption criteria¶
The architecture's delivery gates remain the acceptance authority. Reading may refine a gate before implementation; replacing an algorithm requires measured evidence after the relevant baseline exists.
| Observed problem | Experiment | Evidence to collect |
|---|---|---|
| Stack drift, joint stretch or stiff constraints | Substeps versus iterations at matched cost; later evaluate a reproduced research solver | Penetration/joint error, drift, contact refresh cost, worst-frame time and replay behavior |
| Terrain seams or contact jitter | Stable contact patches and adjacency-aware cooked meshes versus current settings | Snagging failures, manifold churn, memory, cook/load cost and debugger visibility |
| Resting jitter or premature sleep | Existing backend sleep versus envelope-informed policy | Wake latency, missed interaction, angular/linear drift and active-body cost |
| Query/cooking bottleneck | BVH quality/settings and coherent versus incoherent batches | Brute-force hit agreement, coverage, tail latency, cooked/runtime bytes and load time |
| Streaming stalls or poor scaling | Serial versus parallel work and collider publication under load | Lock/job waits, frame tails, deterministic ordering, failure behavior and peak memory |
For each experiment, save the source revision, license, compiler/build profile, hardware, scene/seed, settings and reproducer. Specify the failure and quality thresholds before tuning. Compare the qualified baseline with identical content and report whole-step/query costs as well as kernel costs. Include difficult mass ratios, thin/fast bodies, sleeping/waking islands and capacity exhaustion where relevant. Reject a speedup that violates query/event completeness, failure contracts, supported targets or the declared replay guarantee. Document a concrete benefit and the ongoing debugging/maintenance cost before changing the proposal; an unread title or impressive demonstration is a lead, not adopted evidence.
Robust production behavior is the objective; algorithm novelty by itself is not an acceptance gate.