@aura3d/physics 3.0.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,93 @@
1
+ import type { Vec3 } from "./Shape.js";
2
+ /**
3
+ * Contract area 5 — a physical character moving through a collider world.
4
+ *
5
+ * Aura3D's existing character helpers under this area are authored-unit arcade
6
+ * controllers: they resolve against route-authored ledges and make no claim about
7
+ * mass or contact. A platformer that wants grounding, slope limits, auto-step over
8
+ * real geometry and snap-to-ground on descent needs the solver-backed surface, and
9
+ * until now nothing public offered it — so routes hand-rolled kinematic tracing and
10
+ * the visible world and the collision world could drift apart.
11
+ *
12
+ * `move` takes a desired displacement for the step and returns what the solver
13
+ * actually allowed, plus the grounding result. Games must render from `applied` /
14
+ * `position`, never from their own copy of the request, or they reintroduce two
15
+ * transform authorities.
16
+ *
17
+ * The implementation is bridged from `PhysicsWorld`, the only module that reaches
18
+ * the backend.
19
+ */
20
+ export interface PhysicsCharacterControllerDescriptor {
21
+ /** Skin width used to keep the character from embedding into geometry. */
22
+ readonly offset?: number;
23
+ /** Step height the character can walk up without jumping. */
24
+ readonly autoStepHeight?: number;
25
+ /** Minimum horizontal room a step needs to be walkable. */
26
+ readonly autoStepMinWidth?: number;
27
+ /** Let the controller push loose dynamic bodies out of the way. */
28
+ readonly autoStepIncludeDynamicBodies?: boolean;
29
+ /** Steepest slope, in radians, the character can stand on. */
30
+ readonly maxSlopeClimbAngle?: number;
31
+ /** Distance the controller snaps down onto ground while descending. */
32
+ readonly snapToGroundDistance?: number;
33
+ /** Steepest slope, in radians, at which the character slides instead of standing still. */
34
+ readonly minSlopeSlideAngle?: number;
35
+ /** Whether the solver may convert an unsupported move into a slope slide. Defaults to true. */
36
+ readonly slideEnabled?: boolean;
37
+ /** Mass, in kilograms, used when the character pushes a dynamic body. */
38
+ readonly characterMass?: number;
39
+ /** Whether the character physically shoves loose dynamic bodies. */
40
+ readonly applyImpulsesToDynamicBodies?: boolean;
41
+ }
42
+ export interface PhysicsCharacterMovement {
43
+ /** The displacement that was asked for. */
44
+ readonly requested: Vec3;
45
+ /** The displacement actually taken after contacts. Render from this. */
46
+ readonly applied: Vec3;
47
+ readonly grounded: boolean;
48
+ readonly collisions: number;
49
+ /** Authoritative post-step position. */
50
+ readonly position: Vec3;
51
+ }
52
+ /**
53
+ * A character whose position Rapier owns.
54
+ *
55
+ * The split this encodes is deliberate and is the only one that keeps one transform
56
+ * authority: the *intent* (input plus a gravity integration, in units per second) is
57
+ * authored by the game, and the *result* (where the capsule ends up, whether it is
58
+ * standing, whether a slope is too steep) comes back from the collider solver. A route
59
+ * that also wrote its own position was a second authority, which is exactly how a
60
+ * visible ledge and a collision ledge end up at different heights.
61
+ */
62
+ export interface PhysicsCharacterController {
63
+ /** The collider body that represents the character. Must be kinematic. */
64
+ readonly bodyId: number;
65
+ setAutoStep(height: number, minWidth: number, includeDynamicBodies?: boolean): this;
66
+ setMaxSlopeClimbAngle(radians: number): this;
67
+ /** Steepest angle at which the character slides rather than standing still. */
68
+ setMinSlopeSlideAngle(radians: number): this;
69
+ setSnapToGround(distance: number): this;
70
+ /** Turn slope sliding off entirely. On a slope the character then sticks, which is rarely wanted. */
71
+ setSlideEnabled(enabled: boolean): this;
72
+ /** Mass used when the character shoves a loose dynamic body. */
73
+ setCharacterMass(mass: number): this;
74
+ /** Whether touching a dynamic body actually moves it. */
75
+ setApplyImpulsesToDynamicBodies(enabled: boolean): this;
76
+ /**
77
+ * Moves the character by `desired` and reports what the world allowed.
78
+ * Call once per fixed step, then read `position` / `grounded`.
79
+ */
80
+ move(desired: Vec3): PhysicsCharacterMovement;
81
+ position(): Vec3;
82
+ /** Grounding from the last `move`. Never re-queries the solver, so it is safe to call from a HUD. */
83
+ grounded(): boolean;
84
+ /**
85
+ * Teleport and forget the queued kinematic step — a respawn or a reset.
86
+ *
87
+ * Writing only the mesh leaves Rapier's queued translation in flight, which drags
88
+ * the character back toward wherever the pre-respawn movement was headed.
89
+ */
90
+ resetTo(position: Vec3): Vec3;
91
+ dispose(): void;
92
+ }
93
+ //# sourceMappingURL=PhysicalCharacterController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicalCharacterController.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicalCharacterController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,oCAAoC;IACnD,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAChD,8DAA8D;IAC9D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,uEAAuE;IACvE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,2FAA2F;IAC3F,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,+FAA+F;IAC/F,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,yEAAyE;IACzE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,oEAAoE;IACpE,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACjD;AAED,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,0BAA0B;IACzC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACpF,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,+EAA+E;IAC/E,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,qGAAqG;IACrG,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,gEAAgE;IAChE,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,yDAAyD;IACzD,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,wBAAwB,CAAC;IAC9C,QAAQ,IAAI,IAAI,CAAC;IACjB,qGAAqG;IACrG,QAAQ,IAAI,OAAO,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PhysicalCharacterController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicalCharacterController.js","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicalCharacterController.ts"],"names":[],"mappings":""}
@@ -0,0 +1,140 @@
1
+ import type { Vec3 } from "./Shape.js";
2
+ /**
3
+ * Contract area 6 — a physical, suspension-backed vehicle.
4
+ *
5
+ * This file deliberately names no solver. Aura3D already had arcade vehicle
6
+ * helpers, but they integrate authored speed/steer curves and never claim tyre,
7
+ * mass or suspension semantics, so a route that wants a vehicle that is actually
8
+ * planted had nothing public to build on. This is the neutral surface for that:
9
+ * wheels are described in chassis-local space, drive input is per-wheel, and the
10
+ * grounding state a game needs for drift/airborne feedback is readable.
11
+ *
12
+ * The implementation is bridged from `PhysicsWorld`, which is the only module
13
+ * allowed to reach the backend.
14
+ */
15
+ /** Where a wheel sits on the chassis and how its suspension pushes. */
16
+ export interface PhysicsWheelSpec {
17
+ /** Wheel mount point, chassis-local. */
18
+ readonly connection: Vec3;
19
+ /** Suspension travel direction, chassis-local — usually straight down. */
20
+ readonly direction: Vec3;
21
+ /** Wheel spin axis, chassis-local — usually across the car. */
22
+ readonly axle: Vec3;
23
+ /** Natural spring length in metres. */
24
+ readonly restLength: number;
25
+ readonly radius: number;
26
+ readonly suspensionStiffness?: number;
27
+ readonly suspensionCompression?: number;
28
+ readonly suspensionRelaxation?: number;
29
+ readonly maxSuspensionTravel?: number;
30
+ readonly maxSuspensionForce?: number;
31
+ /**
32
+ * Tyre traction. Larger grips harder; smaller lets the tyre break loose.
33
+ *
34
+ * This is the direction the solver defines, and it is the opposite of what a
35
+ * "slip constant" sounds like. A drift or handbrake is therefore a *reduction*
36
+ * of this value; raising it to "make it slide" does the reverse and produces a
37
+ * car that will not step out at all.
38
+ */
39
+ readonly frictionSlip?: number;
40
+ readonly sideFrictionStiffness?: number;
41
+ }
42
+ export interface PhysicsWheelTuning {
43
+ readonly suspensionStiffness?: number;
44
+ readonly suspensionCompression?: number;
45
+ readonly suspensionRelaxation?: number;
46
+ readonly maxSuspensionTravel?: number;
47
+ readonly maxSuspensionForce?: number;
48
+ readonly frictionSlip?: number;
49
+ readonly sideFrictionStiffness?: number;
50
+ }
51
+ /**
52
+ * Per-wheel drive input for one step. Only the supplied fields are written, so
53
+ * steering does not disturb throttle. `engineForce` is newtons, `brake` is an
54
+ * impulse-scale scalar, `steering` is radians.
55
+ */
56
+ export interface PhysicsWheelCommand {
57
+ readonly engineForce?: number;
58
+ readonly brake?: number;
59
+ readonly steering?: number;
60
+ }
61
+ export interface PhysicsWheelState {
62
+ readonly index: number;
63
+ /** False means this wheel is in the air and contributes no force. */
64
+ readonly grounded: boolean;
65
+ readonly contactPoint: Vec3 | null;
66
+ readonly contactNormal: Vec3 | null;
67
+ readonly engineForce: number;
68
+ readonly brake: number;
69
+ readonly steering: number;
70
+ readonly suspensionLength: number;
71
+ readonly rotation: number;
72
+ readonly frictionSlip: number;
73
+ /** Force the spring is carrying right now. All four at zero means the car is not supported. */
74
+ readonly suspensionForce: number;
75
+ /** Tyre impulse along its rolling direction: the drive and braking traction actually realized. */
76
+ readonly forwardImpulse: number;
77
+ /** Tyre impulse across its rolling direction: the lateral grip realized. This is the honest slip signal. */
78
+ readonly sideImpulse: number;
79
+ /**
80
+ * Handle of the collider this tyre is resting on, or `null` in the air.
81
+ *
82
+ * A game registers the road and verge colliders and reads this to decide
83
+ * "on asphalt" from the thing physically holding the car, instead of sampling
84
+ * its own copy of the track and drifting away from the art.
85
+ */
86
+ readonly groundColliderHandle: number | null;
87
+ }
88
+ /** Full physical state to put a chassis back into. Reset is not valid without all of it. */
89
+ export interface PhysicsVehiclePose {
90
+ readonly position: Vec3;
91
+ /** Defaults to upright. */
92
+ readonly rotation?: readonly [number, number, number, number];
93
+ /** Defaults to zero. A respawn that keeps the old velocity drives off the spawn point. */
94
+ readonly linearVelocity?: Vec3;
95
+ /** Defaults to zero. */
96
+ readonly angularVelocity?: Vec3;
97
+ }
98
+ /** Chassis-local axis index: 0 = x, 1 = y, 2 = z. */
99
+ export type PhysicsVehicleAxis = 0 | 1 | 2;
100
+ export interface PhysicsVehicleController {
101
+ readonly wheelCount: number;
102
+ addWheel(spec: PhysicsWheelSpec): this;
103
+ setWheelTuning(index: number, tuning: PhysicsWheelTuning): this;
104
+ setWheelCommand(index: number, command: PhysicsWheelCommand): this;
105
+ /** Same brake on every wheel — the handbrake and full-stop case. */
106
+ setBrakes(brake: number): this;
107
+ /** Chassis-local up axis. Getting this wrong makes the car hover or sink. */
108
+ setAxes(up: PhysicsVehicleAxis, forward: PhysicsVehicleAxis): this;
109
+ wheelState(index: number): PhysicsWheelState;
110
+ wheelStates(): readonly PhysicsWheelState[];
111
+ /** True while any tyre is on the ground — the airborne/drift test. */
112
+ isGrounded(): boolean;
113
+ groundedWheelCount(): number;
114
+ /** Signed speed along the chassis forward axis. */
115
+ currentSpeed(): number;
116
+ /** Advances the suspension and tyre model. Call once per fixed step, before the world step. */
117
+ step(dt: number): void;
118
+ /**
119
+ * The transform authority, read back.
120
+ *
121
+ * A game renders from these (or from the equivalent `RigidBody` fields the world
122
+ * syncs after `step`) and never writes the chassis to chase an authored pose.
123
+ */
124
+ position(): Vec3;
125
+ rotation(): readonly [number, number, number, number];
126
+ linearVelocity(): Vec3;
127
+ angularVelocity(): Vec3;
128
+ /**
129
+ * Put the chassis into a complete physical state and release every drive input.
130
+ *
131
+ * This is the reset a restart needs: position, rotation, both velocities, the sleep
132
+ * state, and the throttle/brake/steering that would otherwise resume on frame one.
133
+ * Moving the rendered mesh alone leaves the solver driving the old state.
134
+ */
135
+ resetToPose(pose: PhysicsVehiclePose): this;
136
+ /** Zero engine force, brake and steering on every wheel, leaving the chassis where it is. */
137
+ clearCommands(): this;
138
+ dispose(): void;
139
+ }
140
+ //# sourceMappingURL=PhysicalVehicleController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicalVehicleController.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicalVehicleController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PhysicalVehicleController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicalVehicleController.js","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicalVehicleController.ts"],"names":[],"mappings":""}
@@ -3,6 +3,8 @@ import { type CollisionEvent, type Contact } from "./CollisionEvents.js";
3
3
  import { Constraint, type ConstraintDescriptor } from "./Constraint.js";
4
4
  import { type RaycastHit, type RaycastOptions, type SphereCastHit } from "./Raycast.js";
5
5
  import { RigidBody, type RigidBodyDescriptor, type RigidBodySnapshot } from "./RigidBody.js";
6
+ import type { PhysicsCharacterController, PhysicsCharacterControllerDescriptor } from "./PhysicalCharacterController.js";
7
+ import type { PhysicsVehicleController } from "./PhysicalVehicleController.js";
6
8
  import { type Vec3 } from "./Shape.js";
7
9
  export type PhysicsContinuousCollisionDescriptor = {
8
10
  /**
@@ -126,6 +128,8 @@ export declare class PhysicsWorld {
126
128
  private readonly rapierBodiesByAuraId;
127
129
  private readonly rapierCollidersByAuraId;
128
130
  private readonly rapierJointsByConstraint;
131
+ private readonly vehicleControllers;
132
+ private readonly characterControllers;
129
133
  private nextBodyId;
130
134
  private nextColliderId;
131
135
  private lastEvents;
@@ -137,6 +141,22 @@ export declare class PhysicsWorld {
137
141
  createRigidBody(descriptor?: RigidBodyDescriptor): RigidBody;
138
142
  createCollider(body: RigidBody | number, descriptor: ColliderDescriptor): Collider;
139
143
  createConstraint(descriptor: ConstraintDescriptor): Constraint;
144
+ /**
145
+ * Attach a suspension-backed vehicle to a chassis body.
146
+ *
147
+ * The returned controller is the transform authority for the chassis: a game
148
+ * calls `step(dt)` then `world.step()` and renders from the body, rather than
149
+ * integrating its own velocity.
150
+ */
151
+ createVehicleController(chassis: RigidBody | number): PhysicsVehicleController;
152
+ /**
153
+ * Attach a solver-backed character controller to a capsule body.
154
+ *
155
+ * `move` returns the displacement the world allowed; callers must render from
156
+ * the reported position instead of applying their own request a second time.
157
+ */
158
+ createCharacterController(body: RigidBody | number, descriptor?: PhysicsCharacterControllerDescriptor): PhysicsCharacterController;
159
+ private rapierCollidersOf;
140
160
  /**
141
161
  * Change world gravity after construction.
142
162
  *
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsWorld.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicsWorld.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PhysicsWorld.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicsWorld.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAuB,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAuC,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7H,OAAO,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,KAAK,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAC;AACzH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAyH,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAG9J,MAAM,MAAM,oCAAoC,GAAG;IACjD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,qCAAqC,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8FAA8F;IAC9F,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,yFAAyF;IACzF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,oCAAoC,CAAC;CACrE,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;AACtC,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,mCAAmC,CAAC;IAClE,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CAClC,CAAC;AAEF,qBAAa,YAAY;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0C;IAC9E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuC;IAC5E,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA2C;IACnF,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA4C;IACrF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4C;IAC/E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IACnF,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,qBAAqB,CAA+C;IAC5E,OAAO,CAAC,2BAA2B,CAAmE;IACtG,OAAO,CAAC,KAAK,CAAK;gBAEN,UAAU,GAAE,sBAA2B;IA8CnD,eAAe,CAAC,UAAU,GAAE,mBAAwB,GAAG,SAAS;IAuBhE,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,QAAQ;IAuBlF,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,UAAU;IAU9D;;;;;;OAMG;IACH,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,wBAAwB;IA0E9E;;;;;OAKG;IACH,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,UAAU,GAAE,oCAAyC,GAAG,0BAA0B;IAkFtI,OAAO,CAAC,iBAAiB;IASzB;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI;IAQ/B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7C,MAAM,IAAI,SAAS,SAAS,EAAE;IAI9B,SAAS,IAAI,SAAS,QAAQ,EAAE;IAIhC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,cAAc;IAItB,WAAW,IAAI,SAAS,UAAU,EAAE;IAIpC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAuBjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAgBhC,IAAI,CAAC,EAAE,SAAkB,GAAG,SAAS,cAAc,EAAE;IAOrD,WAAW,IAAI,SAAS,cAAc,EAAE;IAMxC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAE,cAAmB,GAAG,UAAU,GAAG,SAAS;IAK5F,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAE,cAAmB,GAAG,SAAS,UAAU,EAAE;IAoB9F,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,GAAG,SAAS;IAIlH,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAE,cAAmB,GAAG,SAAS,aAAa,EAAE;IAoBpH,QAAQ,IAAI,eAAe;IA8B3B,mFAAmF;IACnF,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,cAAc;IA4CtB,OAAO,CAAC,qBAAqB;IA2D7B,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,2BAA2B;IAqCnC,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,4BAA4B;CAqBrC"}
@@ -25,6 +25,8 @@ export class PhysicsWorld {
25
25
  rapierBodiesByAuraId = new Map();
26
26
  rapierCollidersByAuraId = new Map();
27
27
  rapierJointsByConstraint = new Map();
28
+ vehicleControllers = new Set();
29
+ characterControllers = new Set();
28
30
  nextBodyId = 1;
29
31
  nextColliderId = 1;
30
32
  lastEvents = [];
@@ -130,6 +132,189 @@ export class PhysicsWorld {
130
132
  this.rapierJointsByConstraint.set(constraint, this.createRapierJoint(constraint));
131
133
  return constraint;
132
134
  }
135
+ /**
136
+ * Attach a suspension-backed vehicle to a chassis body.
137
+ *
138
+ * The returned controller is the transform authority for the chassis: a game
139
+ * calls `step(dt)` then `world.step()` and renders from the body, rather than
140
+ * integrating its own velocity.
141
+ */
142
+ createVehicleController(chassis) {
143
+ const bodyId = typeof chassis === "number" ? chassis : chassis.id;
144
+ const body = this.bodiesById.get(bodyId);
145
+ if (!body)
146
+ throw new Error(`Cannot create a vehicle for missing body ${bodyId}.`);
147
+ if (body.type !== "dynamic") {
148
+ throw new Error(`Vehicle chassis body ${bodyId} is '${body.type}', but a suspension-backed vehicle needs a dynamic ` +
149
+ "chassis. A static or kinematic chassis cannot be pushed by its own tyres, so the wheels would report " +
150
+ "contact while the car stayed where the route put it — two transform authorities again.");
151
+ }
152
+ const rapierBody = this.rapierBodiesByAuraId.get(bodyId);
153
+ if (!rapierBody)
154
+ throw new Error(`Cannot create a vehicle for missing body ${bodyId}.`);
155
+ const handle = this.rapierWorld.createVehicleController(rapierBody);
156
+ const controller = {
157
+ get wheelCount() { return handle.wheelCount(); },
158
+ addWheel: (spec) => { handle.addWheel(spec); return controller; },
159
+ setWheelTuning: (index, tuning) => { handle.setWheelTuning(index, tuning); return controller; },
160
+ // Drive input clears the wrapper's sleep flag too. Rapier sleeps a chassis that
161
+ // has been sitting still, and `syncRapierFromAura` pushes the wrapper's sleep
162
+ // state onto the solver every step — so without this the world would immediately
163
+ // put the car back to sleep and the throttle would do nothing.
164
+ setWheelCommand: (index, command) => { body.wake(); handle.setWheelCommand(index, command); return controller; },
165
+ setBrakes: (brake) => { body.wake(); handle.setBrakes(brake); return controller; },
166
+ setAxes: (up, forward) => { handle.upAxis = up; handle.forwardAxis = forward; return controller; },
167
+ wheelState: (index) => {
168
+ const state = handle.wheelState(index);
169
+ return {
170
+ index: state.index,
171
+ grounded: state.isInContact,
172
+ contactPoint: state.contactPoint,
173
+ contactNormal: state.contactNormal,
174
+ engineForce: state.engineForce,
175
+ brake: state.brake,
176
+ steering: state.steering,
177
+ suspensionLength: state.suspensionLength,
178
+ rotation: state.rotation,
179
+ frictionSlip: state.frictionSlip,
180
+ suspensionForce: state.suspensionForce,
181
+ forwardImpulse: state.forwardImpulse,
182
+ sideImpulse: state.sideImpulse,
183
+ groundColliderHandle: state.groundColliderHandle,
184
+ };
185
+ },
186
+ wheelStates: () => handle.wheelStates().map((state) => controller.wheelState(state.index)),
187
+ isGrounded: () => handle.isGrounded(),
188
+ groundedWheelCount: () => handle.groundedWheelCount(),
189
+ currentSpeed: () => handle.currentVehicleSpeed(),
190
+ step: (dt) => {
191
+ // Wheel rays are scene queries, so a car built this frame would otherwise find
192
+ // no road under any of its four tyres and drop through the circuit.
193
+ this.rapierWorld.refreshQueries();
194
+ handle.update(dt);
195
+ },
196
+ position: () => handle.chassisPosition(),
197
+ rotation: () => handle.chassisRotation(),
198
+ linearVelocity: () => handle.chassisLinearVelocity(),
199
+ angularVelocity: () => handle.chassisAngularVelocity(),
200
+ resetToPose: (pose) => {
201
+ validateFiniteVec3(pose.position, "vehicle reset position");
202
+ handle.setChassisPose(pose.position, pose.rotation, pose.linearVelocity, pose.angularVelocity);
203
+ // The public wrapper copy has to agree with the solver immediately, or a route
204
+ // reading `body.position` between the reset and the next step renders the old
205
+ // crash pose for one frame.
206
+ syncAuraFromRapier(rapierBody, body);
207
+ return controller;
208
+ },
209
+ clearCommands: () => { handle.clearWheelCommands(); return controller; },
210
+ dispose: () => { this.vehicleControllers.delete(handle); handle.dispose(); },
211
+ };
212
+ this.vehicleControllers.add(handle);
213
+ return controller;
214
+ }
215
+ /**
216
+ * Attach a solver-backed character controller to a capsule body.
217
+ *
218
+ * `move` returns the displacement the world allowed; callers must render from
219
+ * the reported position instead of applying their own request a second time.
220
+ */
221
+ createCharacterController(body, descriptor = {}) {
222
+ const bodyId = typeof body === "number" ? body : body.id;
223
+ const wrapper = this.bodiesById.get(bodyId);
224
+ if (!wrapper)
225
+ throw new Error(`Cannot create a character controller for missing body ${bodyId}.`);
226
+ if (wrapper.type !== "kinematic") {
227
+ throw new Error(`Character body ${bodyId} is '${wrapper.type}', but Aura3D's physical character controller is a kinematic ` +
228
+ "character controller: the game supplies a desired displacement and Rapier resolves it against the world. " +
229
+ "A dynamic body is moved by forces instead, which would give the transform two owners.");
230
+ }
231
+ const rapierBody = this.rapierBodiesByAuraId.get(bodyId);
232
+ if (!rapierBody)
233
+ throw new Error(`Cannot create a character controller for missing body ${bodyId}.`);
234
+ const colliders = this.rapierCollidersOf(bodyId);
235
+ if (colliders.length === 0)
236
+ throw new Error(`Character body ${bodyId} needs a collider before it can move.`);
237
+ const handle = this.rapierWorld.createCharacterController(descriptor.offset ?? 0.01);
238
+ if (descriptor.autoStepHeight !== undefined) {
239
+ handle.enableAutostep(descriptor.autoStepHeight, descriptor.autoStepMinWidth ?? 0.2, descriptor.autoStepIncludeDynamicBodies ?? false);
240
+ }
241
+ if (descriptor.maxSlopeClimbAngle !== undefined)
242
+ handle.setMaxSlopeClimbAngle(descriptor.maxSlopeClimbAngle);
243
+ if (descriptor.minSlopeSlideAngle !== undefined)
244
+ handle.setMinSlopeSlideAngle(descriptor.minSlopeSlideAngle);
245
+ if (descriptor.snapToGroundDistance !== undefined)
246
+ handle.enableSnapToGround(descriptor.snapToGroundDistance);
247
+ if (descriptor.slideEnabled !== undefined)
248
+ handle.setSlideEnabled(descriptor.slideEnabled);
249
+ if (descriptor.characterMass !== undefined)
250
+ handle.setCharacterMass(descriptor.characterMass);
251
+ if (descriptor.applyImpulsesToDynamicBodies !== undefined)
252
+ handle.setApplyImpulsesToDynamicBodies(descriptor.applyImpulsesToDynamicBodies);
253
+ this.characterControllers.add(handle);
254
+ const characterCollider = colliders[0];
255
+ const controller = {
256
+ bodyId,
257
+ setAutoStep: (height, minWidth, includeDynamicBodies) => { handle.enableAutostep(height, minWidth, includeDynamicBodies ?? false); return controller; },
258
+ setMaxSlopeClimbAngle: (radians) => { handle.setMaxSlopeClimbAngle(radians); return controller; },
259
+ setMinSlopeSlideAngle: (radians) => { handle.setMinSlopeSlideAngle(radians); return controller; },
260
+ setSnapToGround: (distance) => { handle.enableSnapToGround(distance); return controller; },
261
+ setSlideEnabled: (enabled) => { handle.setSlideEnabled(enabled); return controller; },
262
+ setCharacterMass: (mass) => { handle.setCharacterMass(mass); return controller; },
263
+ setApplyImpulsesToDynamicBodies: (enabled) => { handle.setApplyImpulsesToDynamicBodies(enabled); return controller; },
264
+ move: (desired) => {
265
+ validateFiniteVec3(desired, "character movement");
266
+ // Rapier only rebuilds its scene-query structure inside `step()`. Without this,
267
+ // the first move after the character and level are created queries a world the
268
+ // solver cannot see yet and walks the character straight through the floor it is
269
+ // standing on — with no error, and with `grounded: false` to confirm it.
270
+ this.rapierWorld.refreshQueries();
271
+ const movement = handle.move(characterCollider, [desired[0], desired[1], desired[2]]);
272
+ const position = [movement.nextPosition[0], movement.nextPosition[1], movement.nextPosition[2]];
273
+ // The wrapper tracks the solver's answer in place rather than waiting for the
274
+ // next `step()`, so a route that renders the character before stepping still
275
+ // renders where the world said it is.
276
+ wrapper.position = [position[0], position[1], position[2]];
277
+ wrapper.poseOverridden = false;
278
+ return {
279
+ requested: [movement.requested[0], movement.requested[1], movement.requested[2]],
280
+ applied: [movement.applied[0], movement.applied[1], movement.applied[2]],
281
+ grounded: movement.grounded,
282
+ collisions: movement.collisions,
283
+ position
284
+ };
285
+ },
286
+ position: () => {
287
+ const rapier = this.rapierBodiesByAuraId.get(bodyId);
288
+ if (!rapier)
289
+ return [0, 0, 0];
290
+ const p = rapier.position();
291
+ return [p[0], p[1], p[2]];
292
+ },
293
+ grounded: () => handle.lastGrounded,
294
+ resetTo: (position) => {
295
+ validateFiniteVec3(position, "character reset position");
296
+ const reset = handle.setPosition(characterCollider, [position[0], position[1], position[2]]);
297
+ wrapper.position = [reset[0], reset[1], reset[2]];
298
+ wrapper.previousPosition = [reset[0], reset[1], reset[2]];
299
+ wrapper.velocity = [0, 0, 0];
300
+ wrapper.angularVelocity = [0, 0, 0];
301
+ wrapper.poseOverridden = false;
302
+ wrapper.velocityOverridden = false;
303
+ return reset;
304
+ },
305
+ dispose: () => { this.characterControllers.delete(handle); handle.dispose(); },
306
+ };
307
+ return controller;
308
+ }
309
+ rapierCollidersOf(bodyId) {
310
+ const out = [];
311
+ for (const colliderId of this.bodyColliders.get(bodyId) ?? []) {
312
+ const rapier = this.rapierCollidersByAuraId.get(colliderId);
313
+ if (rapier)
314
+ out.push(rapier);
315
+ }
316
+ return out;
317
+ }
133
318
  /**
134
319
  * Change world gravity after construction.
135
320
  *
@@ -292,6 +477,8 @@ export class PhysicsWorld {
292
477
  /** Release the selected native solver and every world-owned handle. Idempotent. */
293
478
  dispose() {
294
479
  this.rapierWorld.dispose();
480
+ this.vehicleControllers.clear();
481
+ this.characterControllers.clear();
295
482
  this.rapierJointsByConstraint.clear();
296
483
  this.rapierCollidersByAuraId.clear();
297
484
  this.rapierBodiesByAuraId.clear();
@@ -660,10 +847,29 @@ function encodeRapierCollisionGroups(layer, mask) {
660
847
  /** Mirror the public Aura body state onto its sole physical-simulation owner. */
661
848
  function syncRapierFromAura(body, rapierBody) {
662
849
  const raw = rapierBody.unsafeRapierBody();
850
+ // The pose is re-written every step; ONLY the velocity is gated behind an explicit
851
+ // request. The distinction matters because the two writes have different meanings to
852
+ // the solver. `setLinvel`/`setAngvel` overwrite the motion the solver integrated, so
853
+ // pushing them unconditionally made the Aura wrapper the *velocity* authority and a
854
+ // vehicle whose tyres had just written chassis velocity in Rapier never accelerated —
855
+ // hence `velocityOverridden`, which keeps the solver authoritative for motion.
856
+ //
857
+ // `setTranslation`/`setRotation`, however, write the pose the solver itself produced
858
+ // last step (the wrapper copy is re-read from Rapier at the end of every `step`), so
859
+ // for a free body they are not a second authority — they are a per-step refresh of the
860
+ // solver's own transform bookkeeping. Dropping them (an over-broad first pass at the
861
+ // velocity fix) subtly changed how the multi-substep contact solver warm-started a
862
+ // fast dynamic-on-dynamic impact, so a golf ball striking a crate stack no longer flung
863
+ // the top crate into the pin. Pose is therefore always re-written; the `poseOverridden`
864
+ // flag still marks an explicit teleport, but is not required for the routine refresh.
663
865
  raw.setTranslation(toRapierVector(body.position), false);
664
866
  raw.setRotation({ x: body.rotation[0], y: body.rotation[1], z: body.rotation[2], w: body.rotation[3] }, false);
665
- raw.setLinvel(toRapierVector(body.velocity), false);
666
- raw.setAngvel(toRapierVector(body.angularVelocity), false);
867
+ body.poseOverridden = false;
868
+ if (body.velocityOverridden) {
869
+ raw.setLinvel(toRapierVector(body.velocity), false);
870
+ raw.setAngvel(toRapierVector(body.angularVelocity), false);
871
+ body.velocityOverridden = false;
872
+ }
667
873
  raw.setLinearDamping(body.linearDamping);
668
874
  raw.setAngularDamping(body.angularDamping);
669
875
  if (body.sleeping)
@@ -736,7 +942,15 @@ function pushPotentialPair(pairs, seen, a, b) {
736
942
  if (a.collider.bodyId === b.collider.bodyId || !a.collider.canCollideWith(b.collider)) {
737
943
  return;
738
944
  }
739
- if (a.body.type !== "dynamic" && b.body.type !== "dynamic") {
945
+ // A sensor is a question, not an impulse: a gameplay volume has to answer even when
946
+ // the thing crossing it is a kinematic character or a scripted lift, neither of which
947
+ // any solver will ever push. Requiring a dynamic partner here meant checkpoint,
948
+ // pickup and hazard volumes reported nothing at all for the one body type a platformer
949
+ // character actually uses.
950
+ if (a.collider.sensor || b.collider.sensor) {
951
+ // no motion requirement
952
+ }
953
+ else if (a.body.type !== "dynamic" && b.body.type !== "dynamic") {
740
954
  return;
741
955
  }
742
956
  const first = a.collider.id < b.collider.id ? a : b;
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsWorld.js","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicsWorld.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PhysicsWorld.js","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicsWorld.ts"],"names":[],"mappings":"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"}
@@ -56,12 +56,31 @@ export declare class RigidBody {
56
56
  private accumulatedForce;
57
57
  private accumulatedTorque;
58
58
  constructor(id: number, descriptor?: RigidBodyDescriptor);
59
+ /**
60
+ * A caller wrote the pose since the solver last owned it.
61
+ *
62
+ * The world step used to copy Aura state into the solver unconditionally, which
63
+ * overwrote whatever the solver produced — including the velocity a vehicle
64
+ * controller had just integrated from its suspension and tyres. These flags make
65
+ * the write an explicit teleport request instead of a per-step clobber, so the
66
+ * solver is the only transform authority unless a game deliberately takes it back.
67
+ */
68
+ poseOverridden: boolean;
69
+ velocityOverridden: boolean;
59
70
  setPosition(position: Vec3): void;
60
71
  setVelocity(velocity: Vec3): void;
61
72
  setRotation(rotation: Quat): void;
62
73
  setAngularVelocity(angularVelocity: Vec3): void;
63
74
  applyForce(force: Vec3): void;
64
75
  applyTorque(torque: Vec3): void;
76
+ /**
77
+ * Impulse, applied as a velocity change.
78
+ *
79
+ * The wrapper copy is up to date whenever this runs — it is re-read from the solver
80
+ * at the end of every `PhysicsWorld.step` — so adding the delta here and handing the
81
+ * result to the solver below is the same arithmetic the solver would do, without the
82
+ * wrapper keeping a second copy of the motion for itself.
83
+ */
65
84
  applyImpulse(impulse: Vec3): void;
66
85
  applyAngularImpulse(impulse: Vec3): void;
67
86
  applyImpulseAtPoint(impulse: Vec3, worldPoint: Vec3): void;
@@ -1 +1 @@
1
- {"version":3,"file":"RigidBody.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RigidBody.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"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"}
package/dist/RigidBody.js CHANGED
@@ -32,7 +32,7 @@ export class RigidBody {
32
32
  throw new Error("RigidBody id must be a positive integer.");
33
33
  }
34
34
  this.id = id;
35
- this.type = descriptor.type ?? "dynamic";
35
+ this.type = normalizeRigidBodyType(descriptor.type);
36
36
  this.position = cloneVec3(descriptor.position ?? vec3());
37
37
  this.previousPosition = cloneVec3(this.position);
38
38
  this.rotation = normalizeQuat(descriptor.rotation ?? [0, 0, 0, 1]);
@@ -73,25 +73,40 @@ export class RigidBody {
73
73
  this.accumulatedForce = vec3();
74
74
  this.accumulatedTorque = vec3();
75
75
  }
76
+ /**
77
+ * A caller wrote the pose since the solver last owned it.
78
+ *
79
+ * The world step used to copy Aura state into the solver unconditionally, which
80
+ * overwrote whatever the solver produced — including the velocity a vehicle
81
+ * controller had just integrated from its suspension and tyres. These flags make
82
+ * the write an explicit teleport request instead of a per-step clobber, so the
83
+ * solver is the only transform authority unless a game deliberately takes it back.
84
+ */
85
+ poseOverridden = false;
86
+ velocityOverridden = false;
76
87
  setPosition(position) {
77
88
  validateFiniteVec3(position, "body position");
78
89
  this.previousPosition = cloneVec3(this.position);
79
90
  this.position = cloneVec3(position);
91
+ this.poseOverridden = true;
80
92
  this.wake();
81
93
  }
82
94
  setVelocity(velocity) {
83
95
  validateFiniteVec3(velocity, "body velocity");
84
96
  this.velocity = cloneVec3(velocity);
97
+ this.velocityOverridden = true;
85
98
  this.wake();
86
99
  }
87
100
  setRotation(rotation) {
88
101
  this.previousRotation = cloneQuat(this.rotation);
89
102
  this.rotation = normalizeQuat(rotation);
103
+ this.poseOverridden = true;
90
104
  this.wake();
91
105
  }
92
106
  setAngularVelocity(angularVelocity) {
93
107
  validateFiniteVec3(angularVelocity, "body angularVelocity");
94
108
  this.angularVelocity = cloneVec3(angularVelocity);
109
+ this.velocityOverridden = true;
95
110
  this.wake();
96
111
  }
97
112
  applyForce(force) {
@@ -110,12 +125,21 @@ export class RigidBody {
110
125
  this.accumulatedTorque = addVec3(this.accumulatedTorque, torque);
111
126
  this.wake();
112
127
  }
128
+ /**
129
+ * Impulse, applied as a velocity change.
130
+ *
131
+ * The wrapper copy is up to date whenever this runs — it is re-read from the solver
132
+ * at the end of every `PhysicsWorld.step` — so adding the delta here and handing the
133
+ * result to the solver below is the same arithmetic the solver would do, without the
134
+ * wrapper keeping a second copy of the motion for itself.
135
+ */
113
136
  applyImpulse(impulse) {
114
137
  validateFiniteVec3(impulse, "impulse");
115
138
  if (this.type !== "dynamic") {
116
139
  return;
117
140
  }
118
141
  this.velocity = addVec3(this.velocity, scaleVec3(impulse, this.inverseMass));
142
+ this.velocityOverridden = true;
119
143
  this.wake();
120
144
  }
121
145
  applyAngularImpulse(impulse) {
@@ -124,6 +148,7 @@ export class RigidBody {
124
148
  return;
125
149
  }
126
150
  this.angularVelocity = addVec3(this.angularVelocity, this.multiplyInverseInertiaWorld(impulse));
151
+ this.velocityOverridden = true;
127
152
  this.wake();
128
153
  }
129
154
  applyImpulseAtPoint(impulse, worldPoint) {
@@ -197,6 +222,26 @@ export class RigidBody {
197
222
  function cloneQuat(value) {
198
223
  return [value[0], value[1], value[2], value[3]];
199
224
  }
225
+ /**
226
+ * Reject a body type that is not one of Aura3D's three.
227
+ *
228
+ * The constructor used to fall through to `"dynamic"` for anything it did not
229
+ * recognise, so the very common solver spelling `"fixed"` — and `"kinematic-position"`,
230
+ * `"static-body"`, a stray capital — silently produced a *dynamic* floor. That is the
231
+ * worst version of this bug: the level still holds because a 30 m box barely moves, and
232
+ * the defect only shows up as the world drifting when something heavy hits it.
233
+ */
234
+ function normalizeRigidBodyType(type) {
235
+ if (type === undefined)
236
+ return "dynamic";
237
+ if (type === "dynamic" || type === "static" || type === "kinematic")
238
+ return type;
239
+ const suggestion = type === "fixed" || type === "static-body" || type === "kinematic-position" || type === "kinematic-velocity"
240
+ ? ` Did you mean '${type === "fixed" || type === "static-body" ? "static" : "kinematic"}'?`
241
+ : "";
242
+ throw new Error(`Unknown rigid body type '${String(type)}'. Aura3D bodies are 'dynamic', 'static' or 'kinematic'.${suggestion} ` +
243
+ "Guessing 'dynamic' here would make a level floor fall under its own load.");
244
+ }
200
245
  function normalizeQuat(value) {
201
246
  if (value.length !== 4 || !Number.isFinite(value[0]) || !Number.isFinite(value[1]) || !Number.isFinite(value[2]) || !Number.isFinite(value[3])) {
202
247
  throw new Error("body rotation must be a finite quaternion.");
@@ -1 +1 @@
1
- {"version":3,"file":"RigidBody.js","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAa,IAAI,EAAE,MAAM,YAAY,CAAC;AAiClH,MAAM,OAAO,SAAS;IACX,EAAE,CAAS;IACX,IAAI,CAAgB;IACpB,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,QAAQ,CAAS;IAC1B,QAAQ,CAA2B;IACnC,gBAAgB,CAA2B;IAC3C,QAAQ,CAAmC;IAC3C,gBAAgB,CAAmC;IACnD,QAAQ,CAA2B;IACnC,eAAe,CAA2B;IAC1C,aAAa,CAAS;IACtB,cAAc,CAAS;IACvB,cAAc,CAA2B;IACzC;;;;;;;OAOG;IACM,eAAe,CAAQ;IAChC,QAAQ,CAAU;IACV,gBAAgB,CAA2B;IAC3C,iBAAiB,CAA2B;IAEpD,YAAY,EAAU,EAAE,aAAkC,EAAE;QAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,GAAG,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC7C,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnD,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnD,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/E,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,eAAe,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACrC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,QAAc;QACxB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,WAAW,CAAC,QAAc;QACxB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,WAAW,CAAC,QAAc;QACxB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,eAAqB;QACtC,kBAAkB,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,UAAU,CAAC,KAAW;QACpB,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,WAAW,CAAC,MAAY;QACtB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,YAAY,CAAC,OAAa;QACxB,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,OAAa;QAC/B,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,OAAa,EAAE,UAAgB;QACjD,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,kBAAkB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,2BAA2B,CAAC,KAAW;QACrC,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/D,OAAO,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,wEAAwE;IACxE,aAAa;QACX,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,WAAW;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpH,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC9J,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;YAChD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;YAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,SAAS,CAAC,KAAW;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,KAAW;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/I,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,cAAc,CAAC,OAAa;IACnC,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,CAAO,EAAE,CAAO;IACpC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,OAAO,CAAC,CAAO,EAAE,CAAO;IAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,CAAO,EAAE,CAAO;IACjC,OAAO;QACL,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"RigidBody.js","sourceRoot":"","sources":["../../../../packages/physics/src/RigidBody.ts"],"names":[],"mappings":"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"}
package/dist/Shape.d.ts CHANGED
@@ -1,4 +1,10 @@
1
1
  export type Vec3 = readonly [number, number, number];
2
+ export declare const EPSILON = 1e-8;
3
+ export declare function vec3(x?: number, y?: number, z?: number): [number, number, number];
4
+ export declare function addVec3(a: Vec3, b: Vec3): [number, number, number];
5
+ export declare function subVec3(a: Vec3, b: Vec3): [number, number, number];
6
+ export declare function scaleVec3(a: Vec3, scalar: number): [number, number, number];
7
+ export declare function lengthVec3(a: Vec3): number;
2
8
  export type BoxShape = {
3
9
  readonly kind: "box";
4
10
  readonly halfExtents: Vec3;
@@ -39,14 +45,8 @@ export type Bounds = {
39
45
  readonly min: Vec3;
40
46
  readonly max: Vec3;
41
47
  };
42
- export declare const EPSILON = 1e-9;
43
- export declare function vec3(x?: number, y?: number, z?: number): [number, number, number];
44
48
  export declare function cloneVec3(value: Vec3): [number, number, number];
45
- export declare function addVec3(a: Vec3, b: Vec3): [number, number, number];
46
- export declare function subVec3(a: Vec3, b: Vec3): [number, number, number];
47
- export declare function scaleVec3(value: Vec3, scalar: number): [number, number, number];
48
49
  export declare function dotVec3(a: Vec3, b: Vec3): number;
49
- export declare function lengthVec3(value: Vec3): number;
50
50
  export declare function normalizeVec3(value: Vec3): [number, number, number];
51
51
  export declare function minVec3(a: Vec3, b: Vec3): [number, number, number];
52
52
  export declare function maxVec3(a: Vec3, b: Vec3): [number, number, number];
@@ -1 +1 @@
1
- {"version":3,"file":"Shape.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/Shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Shape.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/Shape.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAKrD,eAAO,MAAM,OAAO,OAAO,CAAC;AAE5B,wBAAgB,IAAI,CAAC,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAElE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAElE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAElE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAE3E;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAE1C;AAOD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAE/H,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAE/D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAEhD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAKnE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAElE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAElE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIlE;AAQD,qBAAa,KAAK;IAChB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ;IAOrD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAK1C,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY;IAMhE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,IAAgB,EAAE,QAAQ,SAAI,GAAG,UAAU;IAQhE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS;IAS7E,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe;IAYzF,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,SAAI,GAAG,gBAAgB;IAqBxF,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAgB,GAAG,MAAM;CA+C/H;AA2CD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAWhH"}
package/dist/Shape.js CHANGED
@@ -1,31 +1,37 @@
1
- export const EPSILON = 1e-9;
1
+ // physics is tier 0 — these tuple helpers are defined locally so the package
2
+ // keeps zero Aura3D dependencies (scene/MathTypes lives at tier 1). Helpers
3
+ // return mutable tuples so callers may assign them into mutable positions.
4
+ export const EPSILON = 1e-8;
2
5
  export function vec3(x = 0, y = 0, z = 0) {
3
6
  return [x, y, z];
4
7
  }
5
- export function cloneVec3(value) {
6
- return [value[0], value[1], value[2]];
7
- }
8
8
  export function addVec3(a, b) {
9
9
  return [a[0] + b[0], a[1] + b[1], a[2] + b[2]];
10
10
  }
11
11
  export function subVec3(a, b) {
12
12
  return [a[0] - b[0], a[1] - b[1], a[2] - b[2]];
13
13
  }
14
- export function scaleVec3(value, scalar) {
15
- return [value[0] * scalar, value[1] * scalar, value[2] * scalar];
14
+ export function scaleVec3(a, scalar) {
15
+ return [a[0] * scalar, a[1] * scalar, a[2] * scalar];
16
+ }
17
+ export function lengthVec3(a) {
18
+ return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]);
19
+ }
20
+ function normalizeCanonicalVec3(a) {
21
+ const len = lengthVec3(a);
22
+ return [a[0] / len, a[1] / len, a[2] / len];
23
+ }
24
+ export function cloneVec3(value) {
25
+ return [value[0], value[1], value[2]];
16
26
  }
17
27
  export function dotVec3(a, b) {
18
28
  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
19
29
  }
20
- export function lengthVec3(value) {
21
- return Math.hypot(value[0], value[1], value[2]);
22
- }
23
30
  export function normalizeVec3(value) {
24
- const length = lengthVec3(value);
25
- if (length <= EPSILON) {
31
+ if (lengthVec3(value) <= EPSILON) {
26
32
  throw new Error("Cannot normalize a zero-length vector.");
27
33
  }
28
- return [value[0] / length, value[1] / length, value[2] / length];
34
+ return normalizeCanonicalVec3(value);
29
35
  }
30
36
  export function minVec3(a, b) {
31
37
  return [Math.min(a[0], b[0]), Math.min(a[1], b[1]), Math.min(a[2], b[2])];
package/dist/Shape.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Shape.js","sourceRoot":"","sources":["../../../../packages/physics/src/Shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Shape.js","sourceRoot":"","sources":["../../../../packages/physics/src/Shape.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -62,11 +62,13 @@ export * from "./Raycast.js";
62
62
  export * from "./TimeOfImpact.js";
63
63
  export * from "./MeshBVH.js";
64
64
  export * from "./SurfaceQuery.js";
65
+ export * from "./PhysicalCharacterController.js";
65
66
  export * from "./ArcadeCharacterController.js";
66
67
  export * from "./FightingCharacterController.js";
67
68
  export * from "./KinematicBody.js";
68
69
  export * from "./KinematicWorld.js";
69
70
  export * from "./HitboxWorld.js";
71
+ export * from "./PhysicalVehicleController.js";
70
72
  export * from "./ArcadeVehicleTelemetry.js";
71
73
  export * from "./PhysicsWorld.js";
72
74
  export * from "./PhysicsStepper.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -67,12 +67,14 @@ export * from "./TimeOfImpact.js";
67
67
  export * from "./MeshBVH.js";
68
68
  export * from "./SurfaceQuery.js";
69
69
  // --- 5. Character controllers ---
70
+ export * from "./PhysicalCharacterController.js";
70
71
  export * from "./ArcadeCharacterController.js";
71
72
  export * from "./FightingCharacterController.js";
72
73
  export * from "./KinematicBody.js";
73
74
  export * from "./KinematicWorld.js";
74
75
  export * from "./HitboxWorld.js";
75
76
  // --- 6. Vehicle, and the racing layer above the solver ---
77
+ export * from "./PhysicalVehicleController.js";
76
78
  export * from "./ArcadeVehicleTelemetry.js";
77
79
  // --- 7. Deterministic stepping ---
78
80
  export * from "./PhysicsWorld.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/physics/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,uFAAuF;AACvF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAE/B,iFAAiF;AACjF,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,oBAAoB;AACpB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,4DAA4D;AAC5D,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAElC,mCAAmC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,4DAA4D;AAC5D,cAAc,6BAA6B,CAAC;AAE5C,oCAAoC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAEpC,oDAAoD;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/physics/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,uFAAuF;AACvF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAE/B,iFAAiF;AACjF,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,oBAAoB;AACpB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,4DAA4D;AAC5D,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAElC,mCAAmC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,4DAA4D;AAC5D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAE5C,oCAAoC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAEpC,oDAAoD;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@aura3d/physics",
3
- "version": "3.0.1",
3
+ "version": "4.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "sideEffects": false,
8
8
  "dependencies": {
9
- "@aura3d/physics-rapier": "3.0.1"
9
+ "@aura3d/physics-rapier": "4.0.0"
10
10
  },
11
11
  "exports": {
12
12
  ".": {