Skip to content

[C44][C89] docs: engine docs make false physics claims; docs/ is orphaned and stale #19

Description

@GFier

From the 2026-07-06 codebase audit (docs/audits/codebase-audit-2026-07-06.md, in-repo). Finding IDs are stable — cite them in fixes.

Severity: Medium · Status: CONFIRMED

C44 — false claims cluster (packages/engine/README.md:99-112; docs/COLLISION_DETECTION.md:200-203, 372-381):

  • engine README:104: "Initial KE = Final KE × restitution" — inverted (code: final = initial × e; as written it claims energy gain).
  • README:101: "Both collision systems implement … restitution" — AABB mode has none (C21).
  • README:112: "prevents the 'gaining energy' bug" — defaultRestitution > 1 is accepted and gains energy (C27).
  • COLLISION_DETECTION.md:378: "Zero-size shapes → no collision (dimensions validation)" — no validation exists; zero-size bodies collide as points (C24).
  • :377: "Circle center inside rectangle → push toward closest edge" — code pushes toward the interior (C2).
  • :380: "All impulse transfers to dynamic body" — the resolver is not impulse-based (C4).
  • :200-203: world-transform snippet rotates by -angle; the code correctly uses +angle (circle.ts:311-317).
  • "Object Pooling" section shows acquire/release as the live pattern — cornersPool.release is never called (C40); LESSONS_LEARNED.md:91 "0 allocations in steady state" is false for that path.
  • Undocumented anywhere: units (ms/px/rad), the accumulator's hardcoded 4-step cap, containerOffsets semantics.

C89 — docs/ is orphaned — referenced by nothing (no inbound links; root readme has no docs section); LESSONS_LEARNED uses pre-rename API names (ReactElastica, AxisAlignedBoundaryBox); the engine README "File Structure" omits five files that exist (accumulator.ts, pool.ts, spatial-hash.ts, collision/circle.ts, collision/index.ts).

Direction

Fix claims to match code where code is staying (several will be resolved by the resolver-fork decision — coordinate with that issue); link docs/ from the root readme or fold the good content into the engine README; refresh names and the file tree.

Metadata

Metadata

Assignees

No one assigned

    Labels

    auditFinding from a codebase auditdocumentationImprovements or additions to documentationmediumMedium severity

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions