data/physical-materials/
A physical material: the bulk properties rigid-body physics needs, in SI units. Density gives a body its mass, friction and restitution decide how contacts slide and bounce, and the impact profile decides when a contact is an impact event and which sound it plays. Blocks, collider parts and assembly cells name materials by key. The engine declares manifold:default, manifold:stone, manifold:earth, manifold:wood, manifold:metal, manifold:glass, manifold:plant, manifold:snow and manifold:ice, which mods may patch. Loaded by both sides and covered by the data hash.
| Registry | manifold:physical-material |
| Files | data/physical-materials/*.ron, *.update.ron, *.final.ron |
| Sides | both: the server and every client load it, and the handshake’s data hash covers it |
| Reads | nothing |
| Contract | Physics runtime (docs/architecture/physics-runtime.md), data stage |
Entry
A record, written PhysicalMaterial(..); the name before the parentheses is optional.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | yes | The material’s key, <mod-id>:<name>. | |
density | f32 | yes | Density, kg/m³, above 0. A 1 m³ block at 1000 weighs one tonne. | |
friction | f32 | yes | Friction, at least 0. A contact uses the lower of its two materials’. | |
restitution | f32 | yes | Restitution (bounciness), 0 to 1. A contact uses the higher of its two materials’. | |
impact | ImpactProfile | no | 1 m/s, no sound | When a contact is an impact, and its sound. |
Example
From tools/test-mods/delivery-probe/data/physical-materials/delivery.ron:
PhysicalMaterial(id: "delivery-probe-mod:rubber", density: 1100.0, friction: 0.9, restitution: 0.8)
Types
ImpactProfile
How a material’s contacts become impact events and cues.
A record: ImpactProfile(..) or (..).
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
min_event_speed | f32 | no | 1.0 | The approach speed, m/s, below which a contact is not an impact. A pair uses the lower of its two materials’. |
sound | string or None | no | none | The impact’s sound cue key, which the client resolves. |