Use entity.update<T> { ... } to modify a component with auto-save.
Use entity.with<T> { ... } for scoped read-only access.
Use entity.withOrNull<T> { ... } for safe read access returning null if missing.
Use entity.updateIfPresent<T> { ... } to safely update only if the component exists.
Access 2-4 components together with multi-component variants.
Use escape hatches: entity.raw, withDataModel, entity.entityId, entity.isValid, entity.exists, entity.isNullEntity.
Add BallSocketConstraint for free rotation around a point (3 DOF). Simplest constraint — just two anchor points.
Add ConeTwistConstraint for rotation within a cone + twist around an axis, with configurable swing/twist limits, motor support, and softness/bias/relaxation tuning. Support incremental updates — motor/limit changes do not recreate the native constraint.
Add FixedConstraint to lock two bodies rigidly. Typically pair with breakForce for destructible connections.
Add HingeConstraint for rotation around a single axis with angular limits (radians) and optional motor. Support incremental updates.
Add SliderConstraint for linear motion along an axis with distance limits (meters) and optional motor. Support incremental updates.
Add SpringConstraint for an elastic connection with configurable stiffness (N/m), damping, and rest length. Always destroy and recreate the native constraint on any property change.
Add ScenePhysicsCollider as standalone collision shapes shareable across multiple ScenePhysicsObject instances. Factory methods cover box, sphere, capsule (X/Y/Z axis), cylinder (X/Y/Z axis), convex hull from glTF, exact triangle mesh from glTF, and compound shapes. Compound colliders support adding child shapes (addChildBox, addChildSphere, addChildCylinder) with local-space poses.
Add CollisionShapeType to control how collision geometry is generated from meshes. PRIMITIVE (0) uses the shape attribute (box, sphere, etc.) for fastest performance. TRIANGLE_MESH (1) uses exact triangle mesh from glTF for maximum accuracy — static bodies only. CONVEX_HULL (2) uses convex hull from mesh vertices and works for dynamic bodies. CONVEX_DECOMPOSITION (3) uses V-HACD decomposition into multiple convex hulls for concave shapes, controlled by maxConvexHulls. COMPOUND (4) uses multiple primitives via CompoundChildShape components on child entities.
Add PlayerAvatarPhysics / PlayerAvatarPhysicsSystem to give the player physical presence in the scene with optional hand sphere colliders and per-entity configuration for bodyRadius, handRadius, friction, etc.