@aura3d/physics 1.5.2 → 2.0.1

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.
Files changed (103) hide show
  1. package/dist/ArcadeCharacterController.d.ts +53 -0
  2. package/dist/ArcadeCharacterController.d.ts.map +1 -0
  3. package/dist/ArcadeCharacterController.js +98 -0
  4. package/dist/ArcadeCharacterController.js.map +1 -0
  5. package/dist/{VehicleDynamics.d.ts → ArcadeVehicleTelemetry.d.ts} +14 -4
  6. package/dist/ArcadeVehicleTelemetry.d.ts.map +1 -0
  7. package/dist/{VehicleDynamics.js → ArcadeVehicleTelemetry.js} +37 -9
  8. package/dist/ArcadeVehicleTelemetry.js.map +1 -0
  9. package/dist/Constraint.d.ts +20 -4
  10. package/dist/Constraint.d.ts.map +1 -1
  11. package/dist/Constraint.js +34 -60
  12. package/dist/Constraint.js.map +1 -1
  13. package/dist/FightingCharacterController.d.ts +32 -0
  14. package/dist/FightingCharacterController.d.ts.map +1 -0
  15. package/dist/FightingCharacterController.js +76 -0
  16. package/dist/FightingCharacterController.js.map +1 -0
  17. package/dist/MeshBVH.d.ts +72 -0
  18. package/dist/MeshBVH.d.ts.map +1 -0
  19. package/dist/MeshBVH.js +244 -0
  20. package/dist/MeshBVH.js.map +1 -0
  21. package/dist/PhysicsDebugDraw.d.ts +40 -1
  22. package/dist/PhysicsDebugDraw.d.ts.map +1 -1
  23. package/dist/PhysicsDebugDraw.js +87 -17
  24. package/dist/PhysicsDebugDraw.js.map +1 -1
  25. package/dist/PhysicsWorld.d.ts +37 -18
  26. package/dist/PhysicsWorld.d.ts.map +1 -1
  27. package/dist/PhysicsWorld.js +231 -630
  28. package/dist/PhysicsWorld.js.map +1 -1
  29. package/dist/Raycast.d.ts +11 -0
  30. package/dist/Raycast.d.ts.map +1 -1
  31. package/dist/Raycast.js +62 -8
  32. package/dist/Raycast.js.map +1 -1
  33. package/dist/RigidBody.d.ts +16 -9
  34. package/dist/RigidBody.d.ts.map +1 -1
  35. package/dist/RigidBody.js +23 -75
  36. package/dist/RigidBody.js.map +1 -1
  37. package/dist/SurfaceQuery.d.ts +72 -0
  38. package/dist/SurfaceQuery.d.ts.map +1 -0
  39. package/dist/SurfaceQuery.js +89 -0
  40. package/dist/SurfaceQuery.js.map +1 -0
  41. package/dist/index.d.ts +62 -17
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +70 -17
  44. package/dist/index.js.map +1 -1
  45. package/dist/solverless.d.ts +37 -0
  46. package/dist/solverless.d.ts.map +1 -0
  47. package/dist/solverless.js +36 -0
  48. package/dist/solverless.js.map +1 -0
  49. package/dist/world.d.ts +18 -0
  50. package/dist/world.d.ts.map +1 -0
  51. package/dist/world.js +17 -0
  52. package/dist/world.js.map +1 -0
  53. package/package.json +10 -2
  54. package/dist/CharacterController.d.ts +0 -83
  55. package/dist/CharacterController.d.ts.map +0 -1
  56. package/dist/CharacterController.js +0 -236
  57. package/dist/CharacterController.js.map +0 -1
  58. package/dist/ClothFixtures.d.ts +0 -87
  59. package/dist/ClothFixtures.d.ts.map +0 -1
  60. package/dist/ClothFixtures.js +0 -264
  61. package/dist/ClothFixtures.js.map +0 -1
  62. package/dist/Crowd.d.ts +0 -64
  63. package/dist/Crowd.d.ts.map +0 -1
  64. package/dist/Crowd.js +0 -209
  65. package/dist/Crowd.js.map +0 -1
  66. package/dist/FireSmokeFixtures.d.ts +0 -103
  67. package/dist/FireSmokeFixtures.d.ts.map +0 -1
  68. package/dist/FireSmokeFixtures.js +0 -271
  69. package/dist/FireSmokeFixtures.js.map +0 -1
  70. package/dist/FluidFixtures.d.ts +0 -75
  71. package/dist/FluidFixtures.d.ts.map +0 -1
  72. package/dist/FluidFixtures.js +0 -219
  73. package/dist/FluidFixtures.js.map +0 -1
  74. package/dist/FractureFixtures.d.ts +0 -68
  75. package/dist/FractureFixtures.d.ts.map +0 -1
  76. package/dist/FractureFixtures.js +0 -199
  77. package/dist/FractureFixtures.js.map +0 -1
  78. package/dist/NarrowPhase.d.ts +0 -11
  79. package/dist/NarrowPhase.d.ts.map +0 -1
  80. package/dist/NarrowPhase.js +0 -565
  81. package/dist/NarrowPhase.js.map +0 -1
  82. package/dist/Navigation.d.ts +0 -67
  83. package/dist/Navigation.d.ts.map +0 -1
  84. package/dist/Navigation.js +0 -261
  85. package/dist/Navigation.js.map +0 -1
  86. package/dist/PhysicsSandboxFixtures.d.ts +0 -53
  87. package/dist/PhysicsSandboxFixtures.d.ts.map +0 -1
  88. package/dist/PhysicsSandboxFixtures.js +0 -280
  89. package/dist/PhysicsSandboxFixtures.js.map +0 -1
  90. package/dist/PlatformerFixtures.d.ts +0 -70
  91. package/dist/PlatformerFixtures.d.ts.map +0 -1
  92. package/dist/PlatformerFixtures.js +0 -120
  93. package/dist/PlatformerFixtures.js.map +0 -1
  94. package/dist/SoftBodyFixtures.d.ts +0 -70
  95. package/dist/SoftBodyFixtures.d.ts.map +0 -1
  96. package/dist/SoftBodyFixtures.js +0 -272
  97. package/dist/SoftBodyFixtures.js.map +0 -1
  98. package/dist/Steering.d.ts +0 -161
  99. package/dist/Steering.d.ts.map +0 -1
  100. package/dist/Steering.js +0 -347
  101. package/dist/Steering.js.map +0 -1
  102. package/dist/VehicleDynamics.d.ts.map +0 -1
  103. package/dist/VehicleDynamics.js.map +0 -1
@@ -1,67 +0,0 @@
1
- export type NavigationCell = readonly [number, number];
2
- export type NavigationPoint = readonly [number, number];
3
- export type NavigationPathStatus = "success" | "partial" | "failed";
4
- export interface NavigationPath {
5
- readonly status: NavigationPathStatus;
6
- readonly cells: readonly NavigationCell[];
7
- readonly waypoints: readonly NavigationPoint[];
8
- readonly length: number;
9
- readonly cost: number;
10
- readonly visitedCells: number;
11
- }
12
- export interface NavigationGridOptions {
13
- readonly width: number;
14
- readonly height: number;
15
- readonly origin?: NavigationPoint;
16
- readonly cellSize?: number;
17
- readonly blocked?: readonly NavigationCell[];
18
- readonly costs?: readonly {
19
- readonly cell: NavigationCell;
20
- readonly cost: number;
21
- }[];
22
- readonly allowDiagonal?: boolean;
23
- }
24
- export interface NavigationAgentOptions {
25
- readonly position: NavigationPoint;
26
- readonly speed?: number;
27
- readonly waypointRadius?: number;
28
- }
29
- export interface NavigationAgentSnapshot {
30
- readonly position: NavigationPoint;
31
- readonly state: "idle" | "moving" | "arrived" | "blocked";
32
- readonly waypointIndex: number;
33
- readonly remainingWaypoints: number;
34
- readonly pathLength: number;
35
- readonly distanceTraveled: number;
36
- }
37
- export declare class NavigationGrid {
38
- readonly width: number;
39
- readonly height: number;
40
- readonly origin: NavigationPoint;
41
- readonly cellSize: number;
42
- readonly allowDiagonal: boolean;
43
- private readonly blocked;
44
- private readonly costs;
45
- constructor(options: NavigationGridOptions);
46
- isBlocked(cell: NavigationCell): boolean;
47
- cellCost(cell: NavigationCell): number;
48
- containsCell(cell: NavigationCell): boolean;
49
- worldToCell(point: NavigationPoint): NavigationCell;
50
- cellToWorld(cell: NavigationCell): NavigationPoint;
51
- findPath(start: NavigationPoint, goal: NavigationPoint): NavigationPath;
52
- private search;
53
- private nearestWalkableCell;
54
- }
55
- export declare class NavigationAgent {
56
- private position;
57
- private path;
58
- private waypointIndex;
59
- private distanceTraveled;
60
- private readonly speed;
61
- private readonly waypointRadius;
62
- constructor(options: NavigationAgentOptions);
63
- setPath(path: NavigationPath): void;
64
- update(deltaSeconds: number): NavigationAgentSnapshot;
65
- snapshot(state?: NavigationAgentSnapshot["state"]): NavigationAgentSnapshot;
66
- }
67
- //# sourceMappingURL=Navigation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/Navigation.ts"],"names":[],"mappings":"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"}
@@ -1,261 +0,0 @@
1
- export class NavigationGrid {
2
- width;
3
- height;
4
- origin;
5
- cellSize;
6
- allowDiagonal;
7
- blocked = new Set();
8
- costs = new Map();
9
- constructor(options) {
10
- if (!Number.isInteger(options.width) || options.width < 2 || !Number.isInteger(options.height) || options.height < 2) {
11
- throw new RangeError("NavigationGrid width and height must be integers >= 2.");
12
- }
13
- this.width = options.width;
14
- this.height = options.height;
15
- this.origin = options.origin ?? [0, 0];
16
- this.cellSize = options.cellSize ?? 1;
17
- this.allowDiagonal = options.allowDiagonal ?? false;
18
- if (!Number.isFinite(this.cellSize) || this.cellSize <= 0) {
19
- throw new RangeError("NavigationGrid cellSize must be a finite positive number.");
20
- }
21
- for (const cell of options.blocked ?? []) {
22
- if (this.containsCell(cell))
23
- this.blocked.add(cellKey(cell));
24
- }
25
- for (const entry of options.costs ?? []) {
26
- if (!this.containsCell(entry.cell))
27
- continue;
28
- if (!Number.isFinite(entry.cost) || entry.cost <= 0) {
29
- throw new RangeError("NavigationGrid traversal costs must be finite positive numbers.");
30
- }
31
- this.costs.set(cellKey(entry.cell), entry.cost);
32
- }
33
- }
34
- isBlocked(cell) {
35
- return this.blocked.has(cellKey(cell));
36
- }
37
- cellCost(cell) {
38
- return this.costs.get(cellKey(cell)) ?? 1;
39
- }
40
- containsCell(cell) {
41
- return Number.isInteger(cell[0]) && Number.isInteger(cell[1]) && cell[0] >= 0 && cell[1] >= 0 && cell[0] < this.width && cell[1] < this.height;
42
- }
43
- worldToCell(point) {
44
- return [
45
- clampInt(Math.floor((point[0] - this.origin[0]) / this.cellSize), 0, this.width - 1),
46
- clampInt(Math.floor((point[1] - this.origin[1]) / this.cellSize), 0, this.height - 1),
47
- ];
48
- }
49
- cellToWorld(cell) {
50
- return [
51
- this.origin[0] + (cell[0] + 0.5) * this.cellSize,
52
- this.origin[1] + (cell[1] + 0.5) * this.cellSize,
53
- ];
54
- }
55
- findPath(start, goal) {
56
- const startCell = this.nearestWalkableCell(this.worldToCell(start));
57
- const goalCell = this.nearestWalkableCell(this.worldToCell(goal));
58
- if (!startCell || !goalCell)
59
- return failedPath();
60
- const result = this.search(startCell, goalCell);
61
- if (!result)
62
- return failedPath();
63
- const cells = reconstruct(result.node);
64
- const waypoints = simplifyPath(cells).map((cell) => this.cellToWorld(cell));
65
- const lastWaypoint = result.complete ? goal : this.cellToWorld(cells[cells.length - 1]);
66
- const normalizedWaypoints = [
67
- start,
68
- ...waypoints.slice(1, -1),
69
- lastWaypoint
70
- ];
71
- return {
72
- status: result.complete ? "success" : "partial",
73
- cells,
74
- waypoints: normalizedWaypoints,
75
- length: pathLength(normalizedWaypoints),
76
- cost: round3(result.node.g),
77
- visitedCells: result.visitedCells,
78
- };
79
- }
80
- search(startCell, goalCell) {
81
- const open = [node(startCell, undefined, 0, manhattan(startCell, goalCell))];
82
- const bestByCell = new Map([[cellKey(startCell), open[0]]]);
83
- const closed = new Set();
84
- let best = open[0];
85
- while (open.length > 0) {
86
- open.sort((left, right) => left.f - right.f || left.h - right.h);
87
- const current = open.shift();
88
- if (closed.has(current.key))
89
- continue;
90
- closed.add(current.key);
91
- if (current.h < best.h)
92
- best = current;
93
- if (sameCell(current.cell, goalCell)) {
94
- return { node: current, complete: true, visitedCells: closed.size };
95
- }
96
- for (const nextCell of neighbors(current.cell, this.allowDiagonal)) {
97
- if (!this.containsCell(nextCell) || this.isBlocked(nextCell))
98
- continue;
99
- const key = cellKey(nextCell);
100
- if (closed.has(key))
101
- continue;
102
- const stepCost = current.cell[0] !== nextCell[0] && current.cell[1] !== nextCell[1] ? Math.SQRT2 : 1;
103
- const g = current.g + stepCost * this.cellCost(nextCell);
104
- const h = heuristic(nextCell, goalCell, this.allowDiagonal);
105
- const existing = bestByCell.get(key);
106
- if (existing && existing.g <= g)
107
- continue;
108
- const next = node(nextCell, current, g, h);
109
- bestByCell.set(key, next);
110
- open.push(next);
111
- }
112
- }
113
- return best ? { node: best, complete: false, visitedCells: closed.size } : undefined;
114
- }
115
- nearestWalkableCell(cell) {
116
- if (this.containsCell(cell) && !this.isBlocked(cell))
117
- return cell;
118
- for (let radius = 1; radius < Math.max(this.width, this.height); radius += 1) {
119
- for (let y = cell[1] - radius; y <= cell[1] + radius; y += 1) {
120
- for (let x = cell[0] - radius; x <= cell[0] + radius; x += 1) {
121
- const candidate = [x, y];
122
- if (this.containsCell(candidate) && !this.isBlocked(candidate))
123
- return candidate;
124
- }
125
- }
126
- }
127
- return undefined;
128
- }
129
- }
130
- export class NavigationAgent {
131
- position;
132
- path = failedPath();
133
- waypointIndex = 0;
134
- distanceTraveled = 0;
135
- speed;
136
- waypointRadius;
137
- constructor(options) {
138
- this.position = options.position;
139
- this.speed = options.speed ?? 1;
140
- this.waypointRadius = options.waypointRadius ?? 0.05;
141
- if (!Number.isFinite(this.speed) || this.speed <= 0 || !Number.isFinite(this.waypointRadius) || this.waypointRadius < 0) {
142
- throw new RangeError("NavigationAgent speed must be positive and waypointRadius must be non-negative.");
143
- }
144
- }
145
- setPath(path) {
146
- this.path = path;
147
- this.waypointIndex = path.waypoints.length > 1 ? 1 : 0;
148
- this.distanceTraveled = 0;
149
- }
150
- update(deltaSeconds) {
151
- if (this.path.status === "failed")
152
- return this.snapshot("blocked");
153
- if (this.waypointIndex >= this.path.waypoints.length)
154
- return this.snapshot("arrived");
155
- const target = this.path.waypoints[this.waypointIndex];
156
- const dx = target[0] - this.position[0];
157
- const dy = target[1] - this.position[1];
158
- const distance = Math.hypot(dx, dy);
159
- if (distance <= this.waypointRadius) {
160
- this.position = target;
161
- this.waypointIndex += 1;
162
- return this.update(deltaSeconds);
163
- }
164
- const step = Math.min(distance, Math.max(0, deltaSeconds) * this.speed);
165
- if (step >= distance) {
166
- this.position = target;
167
- this.distanceTraveled += distance;
168
- this.waypointIndex += 1;
169
- return this.snapshot("moving");
170
- }
171
- this.position = [
172
- this.position[0] + (dx / distance) * step,
173
- this.position[1] + (dy / distance) * step,
174
- ];
175
- this.distanceTraveled += step;
176
- return this.snapshot("moving");
177
- }
178
- snapshot(state = this.path.status === "failed" ? "blocked" : "idle") {
179
- const resolvedState = this.path.status === "failed" ? "blocked" : this.waypointIndex >= this.path.waypoints.length ? "arrived" : state;
180
- return {
181
- position: [round3(this.position[0]), round3(this.position[1])],
182
- state: resolvedState,
183
- waypointIndex: this.waypointIndex,
184
- remainingWaypoints: Math.max(0, this.path.waypoints.length - this.waypointIndex),
185
- pathLength: round3(this.path.length),
186
- distanceTraveled: round3(this.distanceTraveled),
187
- };
188
- }
189
- }
190
- function node(cell, parent, g, h) {
191
- return { cell, key: cellKey(cell), parent, g, h, f: g + h };
192
- }
193
- function neighbors(cell, allowDiagonal) {
194
- const cardinal = [[cell[0] + 1, cell[1]], [cell[0] - 1, cell[1]], [cell[0], cell[1] + 1], [cell[0], cell[1] - 1]];
195
- return allowDiagonal
196
- ? [
197
- ...cardinal,
198
- [cell[0] + 1, cell[1] + 1],
199
- [cell[0] + 1, cell[1] - 1],
200
- [cell[0] - 1, cell[1] + 1],
201
- [cell[0] - 1, cell[1] - 1],
202
- ]
203
- : cardinal;
204
- }
205
- function reconstruct(node) {
206
- const cells = [];
207
- let current = node;
208
- while (current) {
209
- cells.push(current.cell);
210
- current = current.parent;
211
- }
212
- return cells.reverse();
213
- }
214
- function simplifyPath(cells) {
215
- if (cells.length <= 2)
216
- return cells;
217
- const result = [cells[0]];
218
- let previousDirection = [cells[1][0] - cells[0][0], cells[1][1] - cells[0][1]];
219
- for (let index = 2; index < cells.length; index += 1) {
220
- const direction = [cells[index][0] - cells[index - 1][0], cells[index][1] - cells[index - 1][1]];
221
- if (!sameCell(direction, previousDirection)) {
222
- result.push(cells[index - 1]);
223
- previousDirection = direction;
224
- }
225
- }
226
- result.push(cells[cells.length - 1]);
227
- return result;
228
- }
229
- function failedPath() {
230
- return { status: "failed", cells: [], waypoints: [], length: 0, cost: 0, visitedCells: 0 };
231
- }
232
- function pathLength(points) {
233
- let length = 0;
234
- for (let index = 1; index < points.length; index += 1) {
235
- length += Math.hypot(points[index][0] - points[index - 1][0], points[index][1] - points[index - 1][1]);
236
- }
237
- return round3(length);
238
- }
239
- function cellKey(cell) {
240
- return `${cell[0]}:${cell[1]}`;
241
- }
242
- function sameCell(left, right) {
243
- return left[0] === right[0] && left[1] === right[1];
244
- }
245
- function manhattan(left, right) {
246
- return Math.abs(left[0] - right[0]) + Math.abs(left[1] - right[1]);
247
- }
248
- function heuristic(left, right, allowDiagonal) {
249
- if (!allowDiagonal)
250
- return manhattan(left, right);
251
- const dx = Math.abs(left[0] - right[0]);
252
- const dy = Math.abs(left[1] - right[1]);
253
- return Math.max(dx, dy) + (Math.SQRT2 - 1) * Math.min(dx, dy);
254
- }
255
- function clampInt(value, min, max) {
256
- return Math.max(min, Math.min(max, value));
257
- }
258
- function round3(value) {
259
- return Number(value.toFixed(3));
260
- }
261
- //# sourceMappingURL=Navigation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Navigation.js","sourceRoot":"","sources":["../../../../packages/physics/src/Navigation.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- export type PhysicsSandboxSpawnerPreset = "box" | "sphere" | "capsule" | "cylinder-proxy" | "tower" | "pyramid" | "wall" | "chain" | "newtons-cradle" | "dominoes" | "wrecking-ball" | "vehicle" | "ragdoll";
2
- export type PhysicsSandboxTool = "grab" | "push" | "freeze" | "delete" | "explode" | "slice";
3
- export interface PhysicsSandboxFixtureOptions {
4
- readonly seed?: number;
5
- readonly steps?: number;
6
- }
7
- export interface PhysicsSandboxSpawnSummary {
8
- readonly preset: PhysicsSandboxSpawnerPreset;
9
- readonly bodies: number;
10
- readonly dynamicBodies: number;
11
- readonly staticBodies: number;
12
- readonly colliders: number;
13
- readonly constraints: number;
14
- readonly visualKinds: readonly string[];
15
- readonly colliderKinds: readonly string[];
16
- }
17
- export interface PhysicsSandboxToolSummary {
18
- readonly tool: PhysicsSandboxTool;
19
- readonly supported: boolean;
20
- readonly affectedBodies: number;
21
- readonly selectedBodyId?: number;
22
- readonly impulseMagnitude?: number;
23
- readonly deletedBodies?: number;
24
- readonly frozenBodies?: number;
25
- readonly blocker?: string;
26
- }
27
- export interface PhysicsSandboxFixture {
28
- readonly id: "external-parity-old-branch-physics-sandbox-fixture";
29
- readonly source: "origin-master-physics-sandbox-tools-spawners-adapted";
30
- readonly spawners: readonly PhysicsSandboxSpawnSummary[];
31
- readonly tools: readonly PhysicsSandboxToolSummary[];
32
- readonly metrics: {
33
- readonly bodyCountBeforeTools: number;
34
- readonly bodyCountAfterTools: number;
35
- readonly colliderCountAfterTools: number;
36
- readonly constraintCountAfterTools: number;
37
- readonly dynamicBodiesAfterTools: number;
38
- readonly sleepingBodiesAfterTools: number;
39
- readonly contactsAfterSteps: number;
40
- readonly broadphasePairsAfterSteps: number;
41
- readonly kineticEnergyAfterSteps: number;
42
- readonly maxContactPenetrationAfterSteps: number;
43
- readonly totalSpawnedBodies: number;
44
- readonly totalSpawnerConstraints: number;
45
- readonly supportedToolCount: number;
46
- readonly blockedToolCount: number;
47
- };
48
- readonly unsupportedAdvancedSimulations: readonly ["cloth", "soft-body", "fluid", "fracture"];
49
- readonly hash: string;
50
- readonly claimBoundary: string;
51
- }
52
- export declare function samplePhysicsSandboxFixture(options?: PhysicsSandboxFixtureOptions): PhysicsSandboxFixture;
53
- //# sourceMappingURL=PhysicsSandboxFixtures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PhysicsSandboxFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicsSandboxFixtures.ts"],"names":[],"mappings":"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"}