Core declares the physics role: Physics_Interface, Rigidbody, Box_Collider #69

Closed
opened 2026-09-05 09:35:07 +00:00 by crowmaki · 0 comments
Owner

Parent

Part of #67.

What to build

Core declares the physics role and implements none of it, as it does for Backend, Platform and Input. The ABI Surface gains Physics_Interface, the Rigidbody and Box_Collider Component structs, and the enums and ray-hit struct they use; every field is a Boundary Type. The roles file reserves cinnabar.physics/1 and the Schema names cinnabar.rigidbody and cinnabar.box_collider. Body and shape ids are u64 Transient Fields.

The Interface carries set_gravity, gravity, ray_cast, fixed_delta and body_count, each taking self first, shaped so contacts and a character controller can be added later without redesign.

Documentation lands with it: glossary entries for Rigidbody, Collider, Physics Interface, Implicit Static Body and Body User Tag; the Interface entry names Physics as a Core-declared role; a dated note on ADR-0003 records the third role; ADR-0016's heading reads 0016 and its research citation points at something that exists.

Acceptance criteria

  • The compile-time ABI Surface test passes with the new types and closes over every type they name.
  • With no physics Plugin listed, acquiring the Physics Interface reports not found and both Schema names report absent.
  • Rigidbody has body type (Static, Kinematic, Dynamic), initial linear velocity, gravity scale, and transient body ids; Box_Collider has half extents, friction, restitution, density and a transient shape id.
  • Glossary, ADR-0003 note, and ADR-0016 fixes are in place.

Blocked by

  • None (can start immediately).
## Parent Part of #67. ## What to build Core declares the physics role and implements none of it, as it does for Backend, Platform and Input. The ABI Surface gains `Physics_Interface`, the `Rigidbody` and `Box_Collider` Component structs, and the enums and ray-hit struct they use; every field is a Boundary Type. The roles file reserves `cinnabar.physics/1` and the Schema names `cinnabar.rigidbody` and `cinnabar.box_collider`. Body and shape ids are `u64` Transient Fields. The Interface carries `set_gravity`, `gravity`, `ray_cast`, `fixed_delta` and `body_count`, each taking `self` first, shaped so contacts and a character controller can be added later without redesign. Documentation lands with it: glossary entries for Rigidbody, Collider, Physics Interface, Implicit Static Body and Body User Tag; the Interface entry names Physics as a Core-declared role; a dated note on ADR-0003 records the third role; ADR-0016's heading reads 0016 and its research citation points at something that exists. ## Acceptance criteria - [ ] The compile-time ABI Surface test passes with the new types and closes over every type they name. - [ ] With no physics Plugin listed, acquiring the Physics Interface reports not found and both Schema names report absent. - [ ] `Rigidbody` has body type (Static, Kinematic, Dynamic), initial linear velocity, gravity scale, and transient body ids; `Box_Collider` has half extents, friction, restitution, density and a transient shape id. - [ ] Glossary, ADR-0003 note, and ADR-0016 fixes are in place. ## Blocked by - None (can start immediately).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
crowmaki/cinnabar#69
No description provided.