Skip to content

Physics Presets

Ready-to-use physics configurations for common game scenarios.

import { createPhysicsPreset, PhysicsPresets } from '@strata-game-library/presets/physics';
<PhysicsWorld {...PhysicsPresets.REALISTIC} />
PresetDescriptionGravity
REALISTICEarth-like-9.81
MOONLow gravity-1.62
SPACEZero gravity0
UNDERWATERBuoyant-2
ARCADESnappy controls-20
PLATFORMERTight jumps-25
PhysicsPresets.REALISTIC = {
gravity: [0, -9.81, 0],
materials: {
default: {
friction: 0.5,
restitution: 0.3,
},
ice: {
friction: 0.05,
restitution: 0.1,
},
rubber: {
friction: 0.9,
restitution: 0.8,
},
},
solver: {
iterations: 8,
tolerance: 0.001,
},
sleeping: {
enabled: true,
threshold: 0.1,
},
};
PhysicsPresets.PLATFORMER = {
gravity: [0, -25, 0],
character: {
jumpForce: 15,
airControl: 0.8,
groundFriction: 0.9,
airFriction: 0.1,
coyoteTime: 0.1,
jumpBuffer: 0.1,
},
materials: {
default: {
friction: 0.3,
restitution: 0,
},
},
};
import { PhysicsWorld, RigidBody } from '@strata-game-library/core';
import { PhysicsPresets } from '@strata-game-library/presets/physics';
<PhysicsWorld {...PhysicsPresets.REALISTIC}>
<RigidBody type="dynamic">
<mesh>
<boxGeometry />
</mesh>
</RigidBody>
</PhysicsWorld>