A visible object and its collider are separate. Add the collision surface deliberately, then verify it with movement through the actual runtime. A model’s appearance or bounds do not prove that it blocks the player.

The starting platform provides a useful place to check grounding, edge departure, jumps, and recovery. This frame does not establish the full route’s collision behavior. Capture source.
2D bodies
The current 2D engine supports static and kinematic bodies. Kinematic bodies can have velocity and gravity scaling. Solid colliders block movement. Sensors report interactions without blocking. Tilemaps can supply solid and one-way tiles.
Use unsigned category and mask bitsets to filter collisions. A non-sensor body can collect a collectible. Sensors are suitable for hazards and trigger volumes. The current 2D runtime does not provide Rapier dynamic bodies, friction, or restitution. Do not switch a document to the reserved schema 5 to request them.
3D rigid bodies and shapes
3D uses Rapier with static, kinematic, and dynamic bodies. Basic colliders and prepared convex hulls or triangle meshes define the shape. Triangle meshes require static bodies. Use a convex hull for moving solid geometry.
Scene gravity is a vector in meters per second squared, defaulting to {x: 0, y: -9.81, z: 0}. A body’s gravityScale scales its response. The 3D document fixes tickRate at 60, and physics advances by 1/60 second per tick.
Prepared colliders carry a digest, preparation version, bounds, and geometry counts. Validation and loading check the binding against the bytes. Changing the visible model does not regenerate a collider automatically.
Keep physics transforms unscaled and avoid multiple pose owners in one hierarchy. Move a body through its supported controller or script commands rather than competing parent and child transforms.
Character movement
character3d supplies speed, acceleration, jump speed, slope limit, step height, ground snap, coyote ticks, and jump-buffer ticks. It names the horizontal movement axes and jump action. A follow camera has its own offset, look limits, and collision radius.
Test a flat surface, a slope, a step, a ledge, a low ceiling, and the recovery path before tuning jump feel. Preserve the same input route while comparing changes.
Layers and surfaces
3D collisionLayers names up to 16 layers. collisionMatrix lists pairs that do not collide. Unlisted pairs collide. A collider using a named layer derives its category and mask from that table. Keep its raw bits at their defaults. An unlayered collider uses the first category bit.
physicsMaterials shares friction, restitution, and combine rules across colliders. Rules are average, min, multiply, and max. A referenced material supplies all four values, so do not also provide conflicting inline values.
interactionActor explicitly opts a 3D entity into collecting or activating triggers. Use it when the intended actor is not adequately described by a visual or movement component.
Apply a load
A 3D script can return addForce, addTorque, or addForceAtPoint on its own dynamic body. Vectors and points are world-space. Loads apply for one physics tick. Repeat a force command for sustained thrust. Use recorded replay to verify forces and collisions across restoration.