Skip to content

PhysicsAPI

Defined in: physics/Physics.ts:39

Unit contract: Box2D simulates in meters; the engine converts at the pixels-per-unit (PPU) boundary. Spatial queries (raycast / shapeCast / overlapCircle / moveCharacter) take and return world pixels, scaled by the live PPU. Everything that talks to the solver directly — forces, impulses, velocities, setGravity — is in meters (m/s, m/s²), matching the collider component dimensions. Convert with getPixelsPerUnit when mixing the two.

new PhysicsAPI(app): PhysicsAPI

Defined in: physics/Physics.ts:59

App

PhysicsAPI

applyAngularImpulse(entity, impulse): void

Defined in: physics/Physics.ts:117

number

number

void


applyForce(entity, force): void

Defined in: physics/Physics.ts:76

number

Vec2

void


applyImpulse(entity, impulse): void

Defined in: physics/Physics.ts:80

number

Vec2

void


applyTorque(entity, torque): void

Defined in: physics/Physics.ts:113

number

number

void


createMouseJoint(entity, target, opts?, ppu?): boolean

Defined in: physics/Physics.ts:454

number

Vec2

number

number

number

number = ...

boolean


createRevoluteJoint(entityA, entityB, anchorA, anchorB, options?): boolean

Defined in: physics/Physics.ts:121

number

number

Vec2

Vec2

boolean

boolean

boolean

number

number

number

number

boolean


destroyJoint(entity): void

Defined in: physics/Physics.ts:140

number

void


destroyMouseJoint(): void

Defined in: physics/Physics.ts:470

void


enableDistanceJointLimit(entity, enable): void

Defined in: physics/Physics.ts:339

number

boolean

void


enableDistanceJointMotor(entity, enable): void

Defined in: physics/Physics.ts:347

number

boolean

void


enableDistanceJointSpring(entity, enable): void

Defined in: physics/Physics.ts:335

number

boolean

void


enablePrismaticJointLimit(entity, enable): void

Defined in: physics/Physics.ts:375

number

boolean

void


enablePrismaticJointMotor(entity, enable): void

Defined in: physics/Physics.ts:383

number

boolean

void


enablePrismaticJointSpring(entity, enable): void

Defined in: physics/Physics.ts:371

number

boolean

void


enableRevoluteLimit(entity, enable): void

Defined in: physics/Physics.ts:156

number

boolean

void


enableRevoluteMotor(entity, enable): void

Defined in: physics/Physics.ts:152

number

boolean

void


enableWheelJointLimit(entity, enable): void

Defined in: physics/Physics.ts:403

number

boolean

void


enableWheelJointMotor(entity, enable): void

Defined in: physics/Physics.ts:411

number

boolean

void


enableWheelJointSpring(entity, enable): void

Defined in: physics/Physics.ts:399

number

boolean

void


getAngularVelocity(entity): number

Defined in: physics/Physics.ts:109

number

number


getCenterOfMass(entity, ppu?): Vec2

Defined in: physics/Physics.ts:306

number

number = ...

Vec2


getDistanceJointCurrentLength(entity, ppu?): number

Defined in: physics/Physics.ts:327

number

number = ...

number


getDistanceJointLength(entity, ppu?): number

Defined in: physics/Physics.ts:323

number

number = ...

number


getDistanceJointMotorForce(entity): number

Defined in: physics/Physics.ts:359

number

number


getGravity(): Vec2

Defined in: physics/Physics.ts:99

Vec2


getInertia(entity): number

Defined in: physics/Physics.ts:302

number

number


getLinearVelocity(entity): Vec2

Defined in: physics/Physics.ts:88

number

Vec2


getMass(entity): number

Defined in: physics/Physics.ts:298

number

number


getMassData(entity, ppu?): MassData

Defined in: physics/Physics.ts:315

number

number = ...

MassData


getPixelsPerUnit(): number

Defined in: physics/Physics.ts:55

Live pixels-per-unit (world pixels per Box2D meter). Collider dimensions are stored in meters, so consumers that cast a collider’s shape through the pixel-space query API (raycast/shapeCast) must scale by this.

number


getPrismaticJointMotorForce(entity): number

Defined in: physics/Physics.ts:395

number

number


getPrismaticJointSpeed(entity, ppu?): number

Defined in: physics/Physics.ts:367

number

number = ...

number


getPrismaticJointTranslation(entity, ppu?): number

Defined in: physics/Physics.ts:363

number

number = ...

number


getRevoluteAngle(entity): number

Defined in: physics/Physics.ts:164

number

number


getRevoluteMotorTorque(entity): number

Defined in: physics/Physics.ts:168

number

number


getWheelJointMotorTorque(entity): number

Defined in: physics/Physics.ts:423

number

number


hasMouseJoint(): boolean

Defined in: physics/Physics.ts:474

boolean


isAwake(entity): boolean

Defined in: physics/Physics.ts:212

number

boolean


moveCharacter(pos, c1, c2, radius, velocity, dt, up, floorCos, maskBits, self, skinWidth?, maxSlides?, snapLength?, slideOnCeiling?, ppu?): MoverResult | null

Defined in: physics/Physics.ts:263

Advance a kinematic capsule character one step against the world using Box2D’s native mover (collide-into-planes + depenetrating slide). Unlike a raw shape cast this resolves resting/touching contacts with valid normals, so a grounded character slides instead of wedging. Capsule endpoints/radius and pos/velocity are world pixels; dt seconds; up a unit vector; floorCos = cos(floorMaxAngle). self is excluded from the collision. Returns null if the module isn’t ready.

Vec2

Vec2

Vec2

number

Vec2

number

Vec2

number

number

number

number = 0

number = 5

number = 0

boolean = true

number = ...

MoverResult | null


overlapAABB(min, max, maskBits?, ppu?): number[]

Defined in: physics/Physics.ts:289

Vec2

Vec2

number = 0xFFFF

number = ...

number[]


overlapCircle(center, radius, maskBits?, ppu?): number[]

Defined in: physics/Physics.ts:199

Vec2

number

number = 0xFFFF

number = ...

number[]


raycast(origin, direction, maxDistance, maskBits?, ppu?): RaycastHit[]

Defined in: physics/Physics.ts:172

Vec2

Vec2

number

number = 0xFFFF

number = ...

RaycastHit[]


setAngularVelocity(entity, omega): void

Defined in: physics/Physics.ts:105

number

number

void


setAwake(entity, awake): void

Defined in: physics/Physics.ts:208

number

boolean

void


setDistanceJointLength(entity, length, ppu?): void

Defined in: physics/Physics.ts:331

number

number

number = ...

void


setDistanceJointLimits(entity, minLength, maxLength, ppu?): void

Defined in: physics/Physics.ts:343

number

number

number

number = ...

void


setDistanceJointMaxMotorForce(entity, force): void

Defined in: physics/Physics.ts:355

number

number

void


setDistanceJointMotorSpeed(entity, speed): void

Defined in: physics/Physics.ts:351

number

number

void


setGravity(gravity): void

Defined in: physics/Physics.ts:95

World gravity in meters/s² (Box2D space), e.g. { x: 0, y: -9.81 }.

Vec2

void


setLinearVelocity(entity, velocity): void

Defined in: physics/Physics.ts:84

number

Vec2

void


setMotorJointAngularVelocity(entity, omega): void

Defined in: physics/Physics.ts:435

number

number

void


setMotorJointLinearVelocity(entity, velocity, ppu?): void

Defined in: physics/Physics.ts:431

number

Vec2

number = ...

void


setMotorJointMaxVelocityForce(entity, force): void

Defined in: physics/Physics.ts:439

number

number

void


setMotorJointMaxVelocityTorque(entity, torque): void

Defined in: physics/Physics.ts:443

number

number

void


setMouseTarget(target, ppu?): void

Defined in: physics/Physics.ts:466

Vec2

number = ...

void


setPrismaticJointLimits(entity, lower, upper, ppu?): void

Defined in: physics/Physics.ts:379

number

number

number

number = ...

void


setPrismaticJointMaxMotorForce(entity, force): void

Defined in: physics/Physics.ts:391

number

number

void


setPrismaticJointMotorSpeed(entity, speed): void

Defined in: physics/Physics.ts:387

number

number

void


setRevoluteLimits(entity, lower, upper): void

Defined in: physics/Physics.ts:160

number

number

number

void


setRevoluteMaxMotorTorque(entity, torque): void

Defined in: physics/Physics.ts:148

number

number

void


setRevoluteMotorSpeed(entity, speed): void

Defined in: physics/Physics.ts:144

number

number

void


setWheelJointLimits(entity, lower, upper, ppu?): void

Defined in: physics/Physics.ts:407

number

number

number

number = ...

void


setWheelJointMaxMotorTorque(entity, torque): void

Defined in: physics/Physics.ts:419

number

number

void


setWheelJointMotorSpeed(entity, speed): void

Defined in: physics/Physics.ts:415

number

number

void


shapeCastBox(center, halfExtents, angle, translation, maskBits?, ppu?): RaycastHit[]

Defined in: physics/Physics.ts:228

Vec2

Vec2

number

Vec2

number = 0xFFFF

number = ...

RaycastHit[]


shapeCastCapsule(center1, center2, radius, translation, maskBits?, ppu?): RaycastHit[]

Defined in: physics/Physics.ts:241

Vec2

Vec2

number

Vec2

number = 0xFFFF

number = ...

RaycastHit[]


shapeCastCircle(center, radius, translation, maskBits?, ppu?): RaycastHit[]

Defined in: physics/Physics.ts:216

Vec2

number

Vec2

number = 0xFFFF

number = ...

RaycastHit[]


static setDebugDraw(app, enabled): void

Defined in: physics/Physics.ts:510

App

boolean

void


static setDebugDrawConfig(app, config): void

Defined in: physics/Physics.ts:518

App

Partial<PhysicsDebugDrawConfig>

void