@aura3d/physics-rapier 3.0.1 → 4.0.2

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.
package/dist/index.d.ts CHANGED
@@ -130,21 +130,155 @@ export declare class RapierCharacterControllerHandle {
130
130
  enableAutostep(maxHeight: number, minWidth: number, includeDynamicBodies?: boolean): this;
131
131
  enableSnapToGround(distance: number): this;
132
132
  setMaxSlopeClimbAngle(radians: number): this;
133
+ setMinSlopeSlideAngle(radians: number): this;
134
+ /** Sliding down slopes too steep to stand on. Turning this off leaves a character stuck on a hill. */
135
+ setSlideEnabled(enabled: boolean): this;
136
+ /** Mass used when the character pushes a dynamic body, in kilograms. */
137
+ setCharacterMass(mass: number | null): this;
138
+ /** Whether touching a dynamic body moves it. Off, the character walks through crates. */
139
+ setApplyImpulsesToDynamicBodies(enabled: boolean): this;
140
+ /** The grounding reported by the most recent `move`, with no solver side effect. */
141
+ get lastGrounded(): boolean;
142
+ get lastApplied(): PhysicsVec3;
133
143
  move(character: RapierColliderHandle | RapierBodyHandle, requested: PhysicsVec3): RapierCharacterMovement;
144
+ /**
145
+ * Teleport the character and clear the queued kinematic step.
146
+ *
147
+ * Writing only the rendered mesh leaves Rapier's queued next-translation in place,
148
+ * so the respawned character is dragged back toward wherever the old movement was
149
+ * headed on the following step.
150
+ */
151
+ setPosition(character: RapierColliderHandle | RapierBodyHandle, position: PhysicsVec3): PhysicsVec3;
134
152
  dispose(): void;
135
153
  }
154
+ /** Per-wheel suspension and grip tuning. All values are solver units. */
155
+ export interface RapierWheelTuning {
156
+ readonly suspensionStiffness?: number;
157
+ readonly suspensionCompression?: number;
158
+ readonly suspensionRelaxation?: number;
159
+ readonly maxSuspensionTravel?: number;
160
+ readonly maxSuspensionForce?: number;
161
+ /**
162
+ * Tyre traction. Rapier's own wording: "the larger the value, the more
163
+ * instantaneous braking will happen" — so a LARGER number is MORE grip and a
164
+ * smaller number lets the tyre break loose. A racing game's drift control is
165
+ * therefore a *reduction* of this value.
166
+ */
167
+ readonly frictionSlip?: number;
168
+ readonly sideFrictionStiffness?: number;
169
+ }
170
+ /** A wheel plus its initial tuning, used by `addWheel`. */
171
+ export interface RapierWheelSpec extends RapierWheelTuning {
172
+ readonly connection: PhysicsVec3;
173
+ readonly direction: PhysicsVec3;
174
+ readonly axle: PhysicsVec3;
175
+ readonly restLength: number;
176
+ readonly radius: number;
177
+ }
178
+ /** Driver input for one wheel for one step. */
179
+ export interface RapierWheelCommand {
180
+ readonly engineForce?: number;
181
+ readonly brake?: number;
182
+ /** Radians. */
183
+ readonly steering?: number;
184
+ }
185
+ /** Measured wheel state after `update`. */
186
+ export interface RapierWheelState {
187
+ readonly index: number;
188
+ readonly isInContact: boolean;
189
+ readonly contactPoint: PhysicsVec3 | null;
190
+ readonly contactNormal: PhysicsVec3 | null;
191
+ readonly engineForce: number;
192
+ readonly brake: number;
193
+ readonly steering: number;
194
+ readonly suspensionLength: number;
195
+ readonly rotation: number;
196
+ readonly frictionSlip: number;
197
+ /** Force the suspension spring is applying this step, newtons. Zero means the spring is not carrying the car. */
198
+ readonly suspensionForce: number;
199
+ /** Tyre impulse along the rolling direction — the drive/brake traction actually realized. */
200
+ readonly forwardImpulse: number;
201
+ /** Tyre impulse across the rolling direction — the lateral grip actually realized. This is the slip signal. */
202
+ readonly sideImpulse: number;
203
+ /** Handle of the collider this tyre is standing on, or `null` in the air. Lets a game tell road from verge without a second query. */
204
+ readonly groundColliderHandle: number | null;
205
+ }
136
206
  export declare class RapierVehicleControllerHandle {
137
207
  #private;
138
208
  readonly raw: Rapier.DynamicRayCastVehicleController;
139
209
  constructor(world: RapierPhysicsWorld, raw: Rapier.DynamicRayCastVehicleController);
140
- addWheel(connection: PhysicsVec3, direction: PhysicsVec3, axle: PhysicsVec3, restLength: number, radius: number): this;
210
+ /** Chassis-local axes the solver uses to project suspension and tyre forces. */
211
+ get upAxis(): number;
212
+ set upAxis(axis: number);
213
+ /**
214
+ * Rapier declares this as the write-only accessor `setIndexForwardAxis`, so the
215
+ * assignment below is the call, not a typo. Reading it back is `indexForwardAxis`.
216
+ */
217
+ set forwardAxis(axis: number);
218
+ get forwardAxis(): number;
219
+ addWheel(spec: RapierWheelSpec): this;
220
+ /** Wheel geometry may only be changed through the setters after registration. */
221
+ setWheelTuning(index: number, tuning: RapierWheelTuning): this;
222
+ /**
223
+ * Applies drive input. Only the fields present are written, so a caller can
224
+ * steer without disturbing throttle and vice versa.
225
+ *
226
+ * Nonzero input wakes the chassis. Rapier sleeps a body that has been still, and a
227
+ * raycast vehicle writes its chassis velocity directly rather than through the force
228
+ * accumulator, so nothing else wakes it: a car that sat on the start line long enough
229
+ * to fall asleep then ignores the throttle when the lights go out. That is a
230
+ * "car will not launch after a countdown" bug with no error anywhere in it.
231
+ */
232
+ setWheelCommand(index: number, command: RapierWheelCommand): this;
233
+ /** Broadcast the same brake to every wheel — the handbrake and stop case. */
234
+ setBrakes(brake: number): this;
235
+ wheelState(index: number): RapierWheelState;
236
+ wheelStates(): readonly RapierWheelState[];
237
+ /** True only while at least one tyre is touching the ground — the grounding test. */
238
+ isGrounded(): boolean;
239
+ groundedWheelCount(): number;
240
+ currentVehicleSpeed(): number;
241
+ wheelCount(): number;
141
242
  update(dt: number): void;
243
+ /**
244
+ * Release every drive input without touching the chassis.
245
+ *
246
+ * A restart that teleports the car but leaves `engineForce` set resumes throttle
247
+ * the instant the frame resumes, and a wheel left at full lock steers the car into
248
+ * the barrier it was respawned away from. Both are invisible in a screenshot and
249
+ * obvious in play, so the reset has to own them.
250
+ */
251
+ clearWheelCommands(): this;
252
+ /**
253
+ * Take the chassis back as a full physical state, not just a rendered transform.
254
+ *
255
+ * Position, rotation, linear velocity, angular velocity and sleep state are all
256
+ * written, because leaving the old velocity in place means the respawned car keeps
257
+ * its pre-crash momentum and drives straight off the new spawn.
258
+ */
259
+ setChassisPose(position: PhysicsVec3, rotation?: readonly [number, number, number, number], linearVelocity?: PhysicsVec3, angularVelocity?: PhysicsVec3): this;
260
+ /** The native body the controller drives, so a caller can read the solved pose. */
261
+ chassisPosition(): PhysicsVec3;
262
+ chassisRotation(): readonly [number, number, number, number];
263
+ chassisLinearVelocity(): PhysicsVec3;
264
+ chassisAngularVelocity(): PhysicsVec3;
142
265
  dispose(): void;
143
266
  }
144
267
  export declare class RapierPhysicsWorld {
145
268
  #private;
146
269
  constructor(module: RapierModule, gravity: PhysicsVec3);
147
270
  get disposed(): boolean;
271
+ /** True until {@link refreshQueries} or a real step has run since the last structural change. */
272
+ get queriesStale(): boolean;
273
+ /** Declare that a transform was written outside the solver, so the next query needs a refresh. */
274
+ markQueriesStale(): void;
275
+ /**
276
+ * Make scene queries valid without advancing the simulation.
277
+ *
278
+ * Called by `PhysicsWorld` before a character move or a vehicle wheel update when the
279
+ * world changed since the last pass, so a route never has to know this exists.
280
+ */
281
+ refreshQueries(): void;
148
282
  createRigidBody(spec?: RapierRigidBodySpec): RapierBodyHandle;
149
283
  createCollider(body: RapierBodyHandle, spec: RapierColliderSpec): RapierColliderHandle;
150
284
  createBody(spec: RapierBodySpec): RapierBodyHandle;
@@ -172,4 +306,33 @@ export declare function createRapierPhysics(options?: RapierPhysicsOptions): Pro
172
306
  * JavaScript solver behind the synchronous API.
173
307
  */
174
308
  export declare function createRapierPhysicsSync(options?: Omit<RapierPhysicsOptions, "moduleLoader">): RapierPhysicsWorld;
309
+ /**
310
+ * PRD-05 §6.3.7 — consume a generated `<id>.<hash8>.collision.glb` sidecar.
311
+ *
312
+ * The sidecar (written by `tools/asset-optimize` step `colliders`) carries one
313
+ * node per mesh-bearing scene node; each mesh's `extras.aura3dCollider` names
314
+ * the shape: `trimesh` / `convex-hull` geometry verbatim, or analytic `box` /
315
+ * `capsule` parameters baked from bounds. Node-local TRS is baked into the
316
+ * produced shape so colliders sit where the source mesh sits.
317
+ *
318
+ * `source` is a fetchable URL or the sidecar bytes. `transform` places the
319
+ * fixed body all colliders attach to — it is the model's world transform
320
+ * (Q-15-2 wires `model(asset, { physics, collider: "auto" })` to call this).
321
+ * `options.collider` passes density/friction/etc. through to every collider.
322
+ */
323
+ export interface ColliderSidecarTransform {
324
+ readonly position?: PhysicsVec3;
325
+ readonly rotation?: readonly [number, number, number, number];
326
+ }
327
+ export interface ColliderSidecarOptions extends ColliderSidecarTransform {
328
+ readonly body?: RapierBodyHandle;
329
+ readonly collider?: Readonly<Partial<Omit<RapierColliderSpec, "shape">>>;
330
+ }
331
+ export interface ColliderSidecarResult {
332
+ readonly body: RapierBodyHandle;
333
+ readonly colliders: readonly RapierColliderHandle[];
334
+ /** Per-collider `extras.aura3dCollider.sourceNode` in creation order. */
335
+ readonly sourceNodes: readonly string[];
336
+ }
337
+ export declare function createCollidersFromSidecar(world: RapierPhysicsWorld, source: string | Uint8Array, options?: ColliderSidecarOptions): Promise<ColliderSidecarResult>;
175
338
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/physics-rapier/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/physics-rapier/src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -64,41 +64,255 @@ export class RapierJointHandle {
64
64
  export class RapierCharacterControllerHandle {
65
65
  #world;
66
66
  raw;
67
+ #lastGrounded = false;
68
+ #lastApplied = [0, 0, 0];
67
69
  constructor(world, raw) { this.#world = world; this.raw = raw; }
68
70
  enableAutostep(maxHeight, minWidth, includeDynamicBodies = false) { this.raw.enableAutostep(maxHeight, minWidth, includeDynamicBodies); return this; }
69
71
  enableSnapToGround(distance) { this.raw.enableSnapToGround(distance); return this; }
70
72
  setMaxSlopeClimbAngle(radians) { this.raw.setMaxSlopeClimbAngle(radians); return this; }
73
+ setMinSlopeSlideAngle(radians) { this.raw.setMinSlopeSlideAngle(radians); return this; }
74
+ /** Sliding down slopes too steep to stand on. Turning this off leaves a character stuck on a hill. */
75
+ setSlideEnabled(enabled) { this.raw.setSlideEnabled(enabled); return this; }
76
+ /** Mass used when the character pushes a dynamic body, in kilograms. */
77
+ setCharacterMass(mass) { this.raw.setCharacterMass(mass); return this; }
78
+ /** Whether touching a dynamic body moves it. Off, the character walks through crates. */
79
+ setApplyImpulsesToDynamicBodies(enabled) { this.raw.setApplyImpulsesToDynamicBodies(enabled); return this; }
80
+ /** The grounding reported by the most recent `move`, with no solver side effect. */
81
+ get lastGrounded() { return this.#lastGrounded; }
82
+ get lastApplied() { return this.#lastApplied; }
71
83
  move(character, requested) {
72
84
  const desired = vec(requested, "character movement");
73
- this.raw.computeColliderMovement(character.unsafeRapierCollider(), desired);
85
+ const collider = character.unsafeRapierCollider();
86
+ if (collider.isSensor()) {
87
+ throw new Error("A solver-backed character controller cannot move through a sensor collider: sensors are reported to " +
88
+ "queries but never block, so the character would fall through the world with no error anywhere.");
89
+ }
90
+ this.raw.computeColliderMovement(collider, desired);
74
91
  const movement = this.raw.computedMovement();
75
- const body = character.unsafeRapierCollider().parent();
92
+ const body = collider.parent();
76
93
  if (!body)
77
94
  throw new Error("Character collider must be attached to a rigid body.");
95
+ if (!body.isKinematic()) {
96
+ throw new Error("A solver-backed character controller moves a kinematic-position body; Rapier owns the position the " +
97
+ "collision solver allowed. A dynamic body has to be pushed by forces or it gets two transform owners.");
98
+ }
78
99
  const current = body.translation();
79
100
  const next = { x: current.x + movement.x, y: current.y + movement.y, z: current.z + movement.z };
80
101
  body.setNextKinematicTranslation(next);
102
+ this.#lastGrounded = this.raw.computedGrounded();
103
+ this.#lastApplied = [movement.x, movement.y, movement.z];
81
104
  return {
82
105
  requested: [...requested],
83
106
  applied: [movement.x, movement.y, movement.z],
84
- grounded: this.raw.computedGrounded(),
107
+ grounded: this.#lastGrounded,
85
108
  collisions: this.raw.numComputedCollisions(),
86
109
  nextPosition: [next.x, next.y, next.z]
87
110
  };
88
111
  }
112
+ /**
113
+ * Teleport the character and clear the queued kinematic step.
114
+ *
115
+ * Writing only the rendered mesh leaves Rapier's queued next-translation in place,
116
+ * so the respawned character is dragged back toward wherever the old movement was
117
+ * headed on the following step.
118
+ */
119
+ setPosition(character, position) {
120
+ const body = character.unsafeRapierCollider().parent();
121
+ if (!body)
122
+ throw new Error("Character collider must be attached to a rigid body.");
123
+ const target = vec(position, "character position");
124
+ body.setTranslation(target, true);
125
+ body.setNextKinematicTranslation(target);
126
+ this.#lastGrounded = false;
127
+ this.#lastApplied = [0, 0, 0];
128
+ return [target.x, target.y, target.z];
129
+ }
89
130
  dispose() { this.#world.removeCharacterController(this); }
90
131
  }
132
+ function readVec(target) {
133
+ if (!target)
134
+ return null;
135
+ return [target.x, target.y, target.z];
136
+ }
91
137
  export class RapierVehicleControllerHandle {
92
138
  #world;
93
139
  raw;
94
140
  constructor(world, raw) { this.#world = world; this.raw = raw; }
95
- addWheel(connection, direction, axle, restLength, radius) {
96
- this.raw.addWheel(vec(connection, "connection"), vec(direction, "direction"), vec(axle, "axle"), finite(restLength, "restLength"), finite(radius, "radius"));
141
+ /** Chassis-local axes the solver uses to project suspension and tyre forces. */
142
+ get upAxis() { return this.raw.indexUpAxis; }
143
+ set upAxis(axis) { this.raw.indexUpAxis = VehicleAxis(axis); }
144
+ /**
145
+ * Rapier declares this as the write-only accessor `setIndexForwardAxis`, so the
146
+ * assignment below is the call, not a typo. Reading it back is `indexForwardAxis`.
147
+ */
148
+ set forwardAxis(axis) { this.raw.setIndexForwardAxis = VehicleAxis(axis); }
149
+ get forwardAxis() { return this.raw.indexForwardAxis; }
150
+ addWheel(spec) {
151
+ this.raw.addWheel(vec(spec.connection, "wheel connection"), vec(spec.direction, "wheel direction"), vec(spec.axle, "wheel axle"), positive(spec.restLength, "suspension rest length"), positive(spec.radius, "wheel radius"));
152
+ const index = this.raw.numWheels() - 1;
153
+ if (index < 0)
154
+ throw new Error("Rapier did not register the wheel.");
155
+ this.setWheelTuning(index, spec);
156
+ return this;
157
+ }
158
+ /** Wheel geometry may only be changed through the setters after registration. */
159
+ setWheelTuning(index, tuning) {
160
+ const i = WheelIndex(index, this.raw.numWheels());
161
+ if (tuning.suspensionStiffness !== undefined)
162
+ this.raw.setWheelSuspensionStiffness(i, finite(tuning.suspensionStiffness, "suspensionStiffness"));
163
+ if (tuning.suspensionCompression !== undefined)
164
+ this.raw.setWheelSuspensionCompression(i, finite(tuning.suspensionCompression, "suspensionCompression"));
165
+ if (tuning.suspensionRelaxation !== undefined)
166
+ this.raw.setWheelSuspensionRelaxation(i, finite(tuning.suspensionRelaxation, "suspensionRelaxation"));
167
+ if (tuning.maxSuspensionTravel !== undefined)
168
+ this.raw.setWheelMaxSuspensionTravel(i, finite(tuning.maxSuspensionTravel, "maxSuspensionTravel"));
169
+ if (tuning.maxSuspensionForce !== undefined)
170
+ this.raw.setWheelMaxSuspensionForce(i, finite(tuning.maxSuspensionForce, "maxSuspensionForce"));
171
+ if (tuning.frictionSlip !== undefined)
172
+ this.raw.setWheelFrictionSlip(i, positive(tuning.frictionSlip, "frictionSlip"));
173
+ if (tuning.sideFrictionStiffness !== undefined)
174
+ this.raw.setWheelSideFrictionStiffness(i, finite(tuning.sideFrictionStiffness, "sideFrictionStiffness"));
175
+ return this;
176
+ }
177
+ /**
178
+ * Applies drive input. Only the fields present are written, so a caller can
179
+ * steer without disturbing throttle and vice versa.
180
+ *
181
+ * Nonzero input wakes the chassis. Rapier sleeps a body that has been still, and a
182
+ * raycast vehicle writes its chassis velocity directly rather than through the force
183
+ * accumulator, so nothing else wakes it: a car that sat on the start line long enough
184
+ * to fall asleep then ignores the throttle when the lights go out. That is a
185
+ * "car will not launch after a countdown" bug with no error anywhere in it.
186
+ */
187
+ setWheelCommand(index, command) {
188
+ const i = WheelIndex(index, this.raw.numWheels());
189
+ if (command.engineForce !== undefined)
190
+ this.raw.setWheelEngineForce(i, finite(command.engineForce, "engineForce"));
191
+ if (command.brake !== undefined)
192
+ this.raw.setWheelBrake(i, nonNegative(command.brake, "brake"));
193
+ if (command.steering !== undefined)
194
+ this.raw.setWheelSteering(i, finite(command.steering, "steering"));
195
+ if ((command.engineForce ?? 0) !== 0 || (command.brake ?? 0) !== 0 || (command.steering ?? 0) !== 0) {
196
+ this.raw.chassis().wakeUp();
197
+ }
198
+ return this;
199
+ }
200
+ /** Broadcast the same brake to every wheel — the handbrake and stop case. */
201
+ setBrakes(brake) {
202
+ const value = nonNegative(brake, "brake");
203
+ this.raw.chassis().wakeUp();
204
+ for (let i = 0; i < this.raw.numWheels(); i += 1)
205
+ this.raw.setWheelBrake(i, value);
97
206
  return this;
98
207
  }
208
+ wheelState(index) {
209
+ const i = WheelIndex(index, this.raw.numWheels());
210
+ return {
211
+ index: i,
212
+ isInContact: this.raw.wheelIsInContact(i),
213
+ contactPoint: readVec(this.raw.wheelContactPoint(i)),
214
+ contactNormal: readVec(this.raw.wheelContactNormal(i)),
215
+ engineForce: this.raw.wheelEngineForce(i) ?? 0,
216
+ brake: this.raw.wheelBrake(i) ?? 0,
217
+ steering: this.raw.wheelSteering(i) ?? 0,
218
+ suspensionLength: this.raw.wheelSuspensionLength(i) ?? this.raw.wheelSuspensionRestLength(i) ?? 0,
219
+ rotation: this.raw.wheelRotation(i) ?? 0,
220
+ frictionSlip: this.raw.wheelFrictionSlip(i) ?? 0,
221
+ suspensionForce: this.raw.wheelSuspensionForce(i) ?? 0,
222
+ forwardImpulse: this.raw.wheelForwardImpulse(i) ?? 0,
223
+ sideImpulse: this.raw.wheelSideImpulse(i) ?? 0,
224
+ groundColliderHandle: this.raw.wheelGroundObject(i)?.handle ?? null,
225
+ };
226
+ }
227
+ wheelStates() {
228
+ return Array.from({ length: this.raw.numWheels() }, (_, i) => this.wheelState(i));
229
+ }
230
+ /** True only while at least one tyre is touching the ground — the grounding test. */
231
+ isGrounded() {
232
+ for (let i = 0; i < this.raw.numWheels(); i += 1)
233
+ if (this.raw.wheelIsInContact(i))
234
+ return true;
235
+ return false;
236
+ }
237
+ groundedWheelCount() {
238
+ let count = 0;
239
+ for (let i = 0; i < this.raw.numWheels(); i += 1)
240
+ if (this.raw.wheelIsInContact(i))
241
+ count += 1;
242
+ return count;
243
+ }
244
+ currentVehicleSpeed() { return this.raw.currentVehicleSpeed(); }
245
+ wheelCount() { return this.raw.numWheels(); }
99
246
  update(dt) { this.raw.updateVehicle(finite(dt, "dt")); }
247
+ /**
248
+ * Release every drive input without touching the chassis.
249
+ *
250
+ * A restart that teleports the car but leaves `engineForce` set resumes throttle
251
+ * the instant the frame resumes, and a wheel left at full lock steers the car into
252
+ * the barrier it was respawned away from. Both are invisible in a screenshot and
253
+ * obvious in play, so the reset has to own them.
254
+ */
255
+ clearWheelCommands() {
256
+ for (let i = 0; i < this.raw.numWheels(); i += 1) {
257
+ this.raw.setWheelEngineForce(i, 0);
258
+ this.raw.setWheelBrake(i, 0);
259
+ this.raw.setWheelSteering(i, 0);
260
+ }
261
+ return this;
262
+ }
263
+ /**
264
+ * Take the chassis back as a full physical state, not just a rendered transform.
265
+ *
266
+ * Position, rotation, linear velocity, angular velocity and sleep state are all
267
+ * written, because leaving the old velocity in place means the respawned car keeps
268
+ * its pre-crash momentum and drives straight off the new spawn.
269
+ */
270
+ setChassisPose(position, rotation, linearVelocity, angularVelocity) {
271
+ const body = this.raw.chassis();
272
+ body.setTranslation(vec(position, "chassis position"), true);
273
+ if (rotation) {
274
+ body.setRotation({
275
+ x: finite(rotation[0], "chassis rotation[0]"),
276
+ y: finite(rotation[1], "chassis rotation[1]"),
277
+ z: finite(rotation[2], "chassis rotation[2]"),
278
+ w: finite(rotation[3], "chassis rotation[3]")
279
+ }, true);
280
+ }
281
+ body.setLinvel(vec(linearVelocity ?? [0, 0, 0], "chassis linear velocity"), true);
282
+ body.setAngvel(vec(angularVelocity ?? [0, 0, 0], "chassis angular velocity"), true);
283
+ body.wakeUp();
284
+ this.clearWheelCommands();
285
+ return this;
286
+ }
287
+ /** The native body the controller drives, so a caller can read the solved pose. */
288
+ chassisPosition() { const p = this.raw.chassis().translation(); return [p.x, p.y, p.z]; }
289
+ chassisRotation() { const q = this.raw.chassis().rotation(); return [q.x, q.y, q.z, q.w]; }
290
+ chassisLinearVelocity() { const v = this.raw.chassis().linvel(); return [v.x, v.y, v.z]; }
291
+ chassisAngularVelocity() { const v = this.raw.chassis().angvel(); return [v.x, v.y, v.z]; }
100
292
  dispose() { this.#world.removeVehicleController(this); }
101
293
  }
294
+ function VehicleAxis(axis) {
295
+ if (!Number.isInteger(axis) || axis < 0 || axis > 2)
296
+ throw new TypeError("Vehicle axis must be 0 (x), 1 (y) or 2 (z).");
297
+ return axis;
298
+ }
299
+ function WheelIndex(index, count) {
300
+ if (!Number.isInteger(index) || index < 0 || index >= count)
301
+ throw new RangeError(`Wheel index ${index} is out of range for ${count} wheel(s).`);
302
+ return index;
303
+ }
304
+ function positive(value, label) {
305
+ const v = finite(value, label);
306
+ if (v <= 0)
307
+ throw new RangeError(`${label} must be greater than zero.`);
308
+ return v;
309
+ }
310
+ function nonNegative(value, label) {
311
+ const v = finite(value, label);
312
+ if (v < 0)
313
+ throw new RangeError(`${label} must not be negative.`);
314
+ return v;
315
+ }
102
316
  export class RapierPhysicsWorld {
103
317
  #module;
104
318
  #world;
@@ -108,10 +322,49 @@ export class RapierPhysicsWorld {
108
322
  #characters = new Set();
109
323
  #vehicles = new Set();
110
324
  #disposed = false;
325
+ /**
326
+ * Whether Rapier's internal scene-query structure still needs a pass before it can
327
+ * answer a shape cast or wheel ray.
328
+ *
329
+ * This is a solver property worth stating plainly: Rapier rebuilds its query
330
+ * acceleration structure inside `World.step()`. A collider created after the last
331
+ * step is therefore *invisible* to `computeColliderMovement` and to
332
+ * `updateVehicle`'s wheel rays. The symptom is not an error — the character controller
333
+ * happily reports an unobstructed move through the level floor on the very first
334
+ * frame, and every wheel reports "in the air" on the frame the car spawns. That is
335
+ * the "character sinks through the floor" and "car beside the road" defect class,
336
+ * created by construction order rather than by the game.
337
+ *
338
+ * A zero-duration step refreshes the structure without advancing anything: measured,
339
+ * positions and velocities are bit-identical across it. So the wrapper can be honest
340
+ * about freshness and pay one extra narrow-phase pass, once, after a structural change.
341
+ */
342
+ #queriesStale = true;
111
343
  constructor(module, gravity) { this.#module = module; this.#world = new module.World(vec(gravity, "gravity")); }
112
344
  get disposed() { return this.#disposed; }
345
+ /** True until {@link refreshQueries} or a real step has run since the last structural change. */
346
+ get queriesStale() { return this.#queriesStale; }
347
+ /** Declare that a transform was written outside the solver, so the next query needs a refresh. */
348
+ markQueriesStale() { this.#queriesStale = true; }
349
+ /**
350
+ * Make scene queries valid without advancing the simulation.
351
+ *
352
+ * Called by `PhysicsWorld` before a character move or a vehicle wheel update when the
353
+ * world changed since the last pass, so a route never has to know this exists.
354
+ */
355
+ refreshQueries() {
356
+ this.#assertAlive();
357
+ if (!this.#queriesStale)
358
+ return;
359
+ const previousTimestep = this.#world.timestep;
360
+ this.#world.timestep = 0;
361
+ this.#world.step();
362
+ this.#world.timestep = previousTimestep;
363
+ this.#queriesStale = false;
364
+ }
113
365
  createRigidBody(spec = {}) {
114
366
  this.#assertAlive();
367
+ this.#queriesStale = true;
115
368
  const R = this.#module;
116
369
  const descriptor = spec.type === "fixed" ? R.RigidBodyDesc.fixed() : spec.type === "kinematic-position" ? R.RigidBodyDesc.kinematicPositionBased() : spec.type === "kinematic-velocity" ? R.RigidBodyDesc.kinematicVelocityBased() : R.RigidBodyDesc.dynamic();
117
370
  if (spec.position)
@@ -143,6 +396,7 @@ export class RapierPhysicsWorld {
143
396
  }
144
397
  createCollider(body, spec) {
145
398
  this.#assertAlive();
399
+ this.#queriesStale = true;
146
400
  const R = this.#module;
147
401
  const shape = spec.shape;
148
402
  let collider;
@@ -196,13 +450,14 @@ export class RapierPhysicsWorld {
196
450
  }
197
451
  removeBody(handle) {
198
452
  this.#assertAlive();
453
+ this.#queriesStale = true;
199
454
  const raw = handle.unsafeRapierBody();
200
455
  for (let index = 0; index < raw.numColliders(); index += 1)
201
456
  this.#colliders.delete(raw.collider(index).handle);
202
457
  this.#world.removeRigidBody(raw);
203
458
  this.#bodies.delete(raw.handle);
204
459
  }
205
- removeCollider(handle) { this.#assertAlive(); const raw = handle.unsafeRapierCollider(); this.#world.removeCollider(raw, true); this.#colliders.delete(raw.handle); }
460
+ removeCollider(handle) { this.#assertAlive(); this.#queriesStale = true; const raw = handle.unsafeRapierCollider(); this.#world.removeCollider(raw, true); this.#colliders.delete(raw.handle); }
206
461
  createJoint(spec, a, b) {
207
462
  this.#assertAlive();
208
463
  const R = this.#module;
@@ -261,8 +516,8 @@ export class RapierPhysicsWorld {
261
516
  const point = ray.pointAt(hit.timeOfImpact);
262
517
  return { body, colliderHandle: hit.collider.handle, timeOfImpact: hit.timeOfImpact, point: [point.x, point.y, point.z] };
263
518
  }
264
- step(dt = 1 / 60) { this.#assertAlive(); this.#world.timestep = finite(dt, "dt"); this.#world.step(); }
265
- setGravity(gravity) { this.#assertAlive(); this.#world.gravity = vec(gravity, "gravity"); }
519
+ step(dt = 1 / 60) { this.#assertAlive(); this.#world.timestep = finite(dt, "dt"); this.#world.step(); this.#queriesStale = false; }
520
+ setGravity(gravity) { this.#assertAlive(); this.#world.gravity = vec(gravity, "gravity"); this.#queriesStale = true; }
266
521
  bodies() { return [...this.#bodies.values()]; }
267
522
  /** Stable typed escape hatch. The adapter owns and frees the returned world. */
268
523
  unsafeRapierWorld() { this.#assertAlive(); return this.#world; }
@@ -309,4 +564,143 @@ export async function createRapierPhysics(options = {}) {
309
564
  export function createRapierPhysicsSync(options = {}) {
310
565
  return new RapierPhysicsWorld(defaultRapierModule, options.gravity ?? [0, -9.81, 0]);
311
566
  }
567
+ function transformPoint(m, p) {
568
+ const [x, y, z] = p;
569
+ return [
570
+ m[0] * x + m[4] * y + m[8] * z + m[12],
571
+ m[1] * x + m[5] * y + m[9] * z + m[13],
572
+ m[2] * x + m[6] * y + m[10] * z + m[14]
573
+ ];
574
+ }
575
+ /** Largest column length — uniform-scale estimate for baking node scale into collider params. */
576
+ function transformScale(m) {
577
+ let max = 0;
578
+ for (let c = 0; c < 3; c++) {
579
+ const len = Math.hypot(m[c * 4], m[c * 4 + 1], m[c * 4 + 2]);
580
+ if (len > max)
581
+ max = len;
582
+ }
583
+ return max || 1;
584
+ }
585
+ export async function createCollidersFromSidecar(world, source, options = {}) {
586
+ const bytes = typeof source === "string"
587
+ ? new Uint8Array(await (await fetch(source)).arrayBuffer())
588
+ : source;
589
+ const [{ WebIO }, { ALL_EXTENSIONS }, { MeshoptDecoder }] = await Promise.all([
590
+ import("@gltf-transform/core"),
591
+ import("@gltf-transform/extensions"),
592
+ import("meshoptimizer")
593
+ ]);
594
+ const io = new WebIO()
595
+ .registerExtensions(ALL_EXTENSIONS)
596
+ .registerDependencies({ "meshopt.decoder": MeshoptDecoder });
597
+ await MeshoptDecoder.ready;
598
+ const doc = await io.readBinary(bytes);
599
+ const body = options.body ?? world.createRigidBody({
600
+ type: "fixed",
601
+ position: options.position,
602
+ rotation: options.rotation
603
+ });
604
+ const colliders = [];
605
+ const sourceNodes = [];
606
+ for (const node of doc.getRoot().listNodes()) {
607
+ const mesh = node.getMesh();
608
+ if (!mesh)
609
+ continue;
610
+ const extras = mesh.getExtras().aura3dCollider;
611
+ if (!extras?.shape)
612
+ continue;
613
+ const m = extras.nodeWorldMatrix && extras.nodeWorldMatrix.length === 16 ? extras.nodeWorldMatrix : node.getWorldMatrix();
614
+ const scale = transformScale(m);
615
+ let shape;
616
+ if (extras.shape === "box") {
617
+ if (!extras.halfExtents || !extras.center)
618
+ throw new Error(`collider sidecar node ${node.getName()}: box shape missing halfExtents/center`);
619
+ const center = transformPoint(m, [extras.center[0], extras.center[1], extras.center[2]]);
620
+ // Rapier cuboids are axis-aligned in collider space; rotation-baked boxes
621
+ // become the AABB of the rotated corners (documented approximation).
622
+ const h = extras.halfExtents;
623
+ const corners = [];
624
+ for (const sx of [-1, 1])
625
+ for (const sy of [-1, 1])
626
+ for (const sz of [-1, 1]) {
627
+ corners.push(transformPoint(m, [extras.center[0] + sx * h[0], extras.center[1] + sy * h[1], extras.center[2] + sz * h[2]]));
628
+ }
629
+ const min = [Infinity, Infinity, Infinity];
630
+ const max = [-Infinity, -Infinity, -Infinity];
631
+ for (const c of corners)
632
+ for (let i = 0; i < 3; i++) {
633
+ if (c[i] < min[i])
634
+ min[i] = c[i];
635
+ if (c[i] > max[i])
636
+ max[i] = c[i];
637
+ }
638
+ const half = [(max[0] - min[0]) / 2, (max[1] - min[1]) / 2, (max[2] - min[2]) / 2];
639
+ if (half.every((v, i) => Math.abs(v - (h[i] * scale)) < 1e-4) && center.every((v) => Math.abs(v) < 1e-6)) {
640
+ shape = { kind: "box", halfExtents: [h[0] * scale, h[1] * scale, h[2] * scale] };
641
+ }
642
+ else {
643
+ // Off-center or rotated: encode the AABB as a trimesh-free box by
644
+ // wrapping it in a convex hull of the 8 transformed corners.
645
+ shape = { kind: "convex-hull", vertices: corners };
646
+ }
647
+ }
648
+ else if (extras.shape === "capsule") {
649
+ if (extras.radius === undefined || extras.halfHeight === undefined || !extras.center) {
650
+ throw new Error(`collider sidecar node ${node.getName()}: capsule shape missing radius/halfHeight/center`);
651
+ }
652
+ const center = transformPoint(m, [extras.center[0], extras.center[1], extras.center[2]]);
653
+ if (center.some((v) => Math.abs(v) > 1e-6)) {
654
+ // Capsules are origin-centred in collider space; an off-centre capsule
655
+ // is approximated by a convex hull over both cap spheres.
656
+ const vertices = [];
657
+ for (const sign of [-1, 1]) {
658
+ for (let a = 0; a < 8; a++) {
659
+ const t = (a / 8) * Math.PI * 2;
660
+ const c = transformPoint(m, [
661
+ extras.center[0] + Math.cos(t) * extras.radius,
662
+ extras.center[1] + sign * extras.halfHeight,
663
+ extras.center[2] + Math.sin(t) * extras.radius
664
+ ]);
665
+ vertices.push(c);
666
+ }
667
+ }
668
+ shape = { kind: "convex-hull", vertices };
669
+ }
670
+ else {
671
+ shape = { kind: "capsule", halfHeight: extras.halfHeight * scale, radius: extras.radius * scale };
672
+ }
673
+ }
674
+ else {
675
+ const vertices = [];
676
+ const indices = [];
677
+ const el = [0, 0, 0];
678
+ for (const prim of mesh.listPrimitives()) {
679
+ const pos = prim.getAttribute("POSITION");
680
+ if (!pos)
681
+ continue;
682
+ const idx = prim.getIndices()?.getArray();
683
+ const base = vertices.length;
684
+ // getElement dequantizes — the sidecar is meshopt-compressed and its
685
+ // POSITION accessors are KHR_mesh_quantization integers.
686
+ for (let i = 0; i < pos.getCount(); i += 1) {
687
+ pos.getElement(i, el);
688
+ vertices.push(transformPoint(m, [el[0], el[1], el[2]]));
689
+ }
690
+ if (idx)
691
+ for (const i of idx)
692
+ indices.push(base + i);
693
+ else
694
+ for (let i = 0; i < pos.getCount(); i++)
695
+ indices.push(base + i);
696
+ }
697
+ if (vertices.length === 0)
698
+ continue;
699
+ shape = extras.shape === "convex" ? { kind: "convex-hull", vertices } : { kind: "mesh", vertices, indices };
700
+ }
701
+ colliders.push(world.createCollider(body, { ...options.collider, shape }));
702
+ sourceNodes.push(extras.sourceNode ?? node.getName());
703
+ }
704
+ return { body, colliders, sourceNodes };
705
+ }
312
706
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/physics-rapier/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/physics-rapier/src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "@aura3d/physics-rapier",
3
- "version": "3.0.1",
3
+ "version": "4.0.2",
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
- "@dimforge/rapier3d-compat": "0.20.0"
9
+ "@dimforge/rapier3d-compat": "0.20.0",
10
+ "@gltf-transform/core": "4.5.1",
11
+ "@gltf-transform/extensions": "4.5.1",
12
+ "meshoptimizer": "1.2.0"
10
13
  },
11
14
  "exports": {
12
15
  ".": {