@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.
- package/dist/ArcadeCharacterController.d.ts +53 -0
- package/dist/ArcadeCharacterController.d.ts.map +1 -0
- package/dist/ArcadeCharacterController.js +98 -0
- package/dist/ArcadeCharacterController.js.map +1 -0
- package/dist/{VehicleDynamics.d.ts → ArcadeVehicleTelemetry.d.ts} +14 -4
- package/dist/ArcadeVehicleTelemetry.d.ts.map +1 -0
- package/dist/{VehicleDynamics.js → ArcadeVehicleTelemetry.js} +37 -9
- package/dist/ArcadeVehicleTelemetry.js.map +1 -0
- package/dist/Constraint.d.ts +20 -4
- package/dist/Constraint.d.ts.map +1 -1
- package/dist/Constraint.js +34 -60
- package/dist/Constraint.js.map +1 -1
- package/dist/FightingCharacterController.d.ts +32 -0
- package/dist/FightingCharacterController.d.ts.map +1 -0
- package/dist/FightingCharacterController.js +76 -0
- package/dist/FightingCharacterController.js.map +1 -0
- package/dist/MeshBVH.d.ts +72 -0
- package/dist/MeshBVH.d.ts.map +1 -0
- package/dist/MeshBVH.js +244 -0
- package/dist/MeshBVH.js.map +1 -0
- package/dist/PhysicsDebugDraw.d.ts +40 -1
- package/dist/PhysicsDebugDraw.d.ts.map +1 -1
- package/dist/PhysicsDebugDraw.js +87 -17
- package/dist/PhysicsDebugDraw.js.map +1 -1
- package/dist/PhysicsWorld.d.ts +37 -18
- package/dist/PhysicsWorld.d.ts.map +1 -1
- package/dist/PhysicsWorld.js +231 -630
- package/dist/PhysicsWorld.js.map +1 -1
- package/dist/Raycast.d.ts +11 -0
- package/dist/Raycast.d.ts.map +1 -1
- package/dist/Raycast.js +62 -8
- package/dist/Raycast.js.map +1 -1
- package/dist/RigidBody.d.ts +16 -9
- package/dist/RigidBody.d.ts.map +1 -1
- package/dist/RigidBody.js +23 -75
- package/dist/RigidBody.js.map +1 -1
- package/dist/SurfaceQuery.d.ts +72 -0
- package/dist/SurfaceQuery.d.ts.map +1 -0
- package/dist/SurfaceQuery.js +89 -0
- package/dist/SurfaceQuery.js.map +1 -0
- package/dist/index.d.ts +62 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -17
- package/dist/index.js.map +1 -1
- package/dist/solverless.d.ts +37 -0
- package/dist/solverless.d.ts.map +1 -0
- package/dist/solverless.js +36 -0
- package/dist/solverless.js.map +1 -0
- package/dist/world.d.ts +18 -0
- package/dist/world.d.ts.map +1 -0
- package/dist/world.js +17 -0
- package/dist/world.js.map +1 -0
- package/package.json +10 -2
- package/dist/CharacterController.d.ts +0 -83
- package/dist/CharacterController.d.ts.map +0 -1
- package/dist/CharacterController.js +0 -236
- package/dist/CharacterController.js.map +0 -1
- package/dist/ClothFixtures.d.ts +0 -87
- package/dist/ClothFixtures.d.ts.map +0 -1
- package/dist/ClothFixtures.js +0 -264
- package/dist/ClothFixtures.js.map +0 -1
- package/dist/Crowd.d.ts +0 -64
- package/dist/Crowd.d.ts.map +0 -1
- package/dist/Crowd.js +0 -209
- package/dist/Crowd.js.map +0 -1
- package/dist/FireSmokeFixtures.d.ts +0 -103
- package/dist/FireSmokeFixtures.d.ts.map +0 -1
- package/dist/FireSmokeFixtures.js +0 -271
- package/dist/FireSmokeFixtures.js.map +0 -1
- package/dist/FluidFixtures.d.ts +0 -75
- package/dist/FluidFixtures.d.ts.map +0 -1
- package/dist/FluidFixtures.js +0 -219
- package/dist/FluidFixtures.js.map +0 -1
- package/dist/FractureFixtures.d.ts +0 -68
- package/dist/FractureFixtures.d.ts.map +0 -1
- package/dist/FractureFixtures.js +0 -199
- package/dist/FractureFixtures.js.map +0 -1
- package/dist/NarrowPhase.d.ts +0 -11
- package/dist/NarrowPhase.d.ts.map +0 -1
- package/dist/NarrowPhase.js +0 -565
- package/dist/NarrowPhase.js.map +0 -1
- package/dist/Navigation.d.ts +0 -67
- package/dist/Navigation.d.ts.map +0 -1
- package/dist/Navigation.js +0 -261
- package/dist/Navigation.js.map +0 -1
- package/dist/PhysicsSandboxFixtures.d.ts +0 -53
- package/dist/PhysicsSandboxFixtures.d.ts.map +0 -1
- package/dist/PhysicsSandboxFixtures.js +0 -280
- package/dist/PhysicsSandboxFixtures.js.map +0 -1
- package/dist/PlatformerFixtures.d.ts +0 -70
- package/dist/PlatformerFixtures.d.ts.map +0 -1
- package/dist/PlatformerFixtures.js +0 -120
- package/dist/PlatformerFixtures.js.map +0 -1
- package/dist/SoftBodyFixtures.d.ts +0 -70
- package/dist/SoftBodyFixtures.d.ts.map +0 -1
- package/dist/SoftBodyFixtures.js +0 -272
- package/dist/SoftBodyFixtures.js.map +0 -1
- package/dist/Steering.d.ts +0 -161
- package/dist/Steering.d.ts.map +0 -1
- package/dist/Steering.js +0 -347
- package/dist/Steering.js.map +0 -1
- package/dist/VehicleDynamics.d.ts.map +0 -1
- package/dist/VehicleDynamics.js.map +0 -1
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
import { PhysicsWorld } from "./PhysicsWorld.js";
|
|
2
|
-
import { Shape } from "./Shape.js";
|
|
3
|
-
export function samplePhysicsSandboxFixture(options = {}) {
|
|
4
|
-
const seed = integer(options.seed ?? 0x3d2025, "seed");
|
|
5
|
-
const steps = integer(options.steps ?? 24, "steps");
|
|
6
|
-
if (steps < 0 || steps > 240)
|
|
7
|
-
throw new RangeError("Physics sandbox fixture steps must be in the [0, 240] range.");
|
|
8
|
-
const world = new PhysicsWorld({ gravity: [0, -9.81, 0], fixedDelta: 1 / 60, solverIterations: 6 });
|
|
9
|
-
const records = [];
|
|
10
|
-
const constraints = [];
|
|
11
|
-
const ground = world.createRigidBody({ type: "static", position: [0, -0.15, 0] });
|
|
12
|
-
world.createCollider(ground, { shape: Shape.box(8, 0.15, 2), material: { friction: 0.9, restitution: 0 } });
|
|
13
|
-
spawnBasic(world, records, "box", [-4.2, 1.2, 0], Shape.box(0.32, 0.32, 0.32), "box", 1);
|
|
14
|
-
spawnBasic(world, records, "sphere", [-3.45, 1.25, 0], Shape.sphere(0.32), "sphere", 1);
|
|
15
|
-
spawnBasic(world, records, "capsule", [-2.7, 1.35, 0], Shape.capsule(0.22, 0.38), "capsule", 1);
|
|
16
|
-
spawnBasic(world, records, "cylinder-proxy", [-1.95, 1.3, 0], Shape.capsule(0.28, 0.26), "cylinder", 1);
|
|
17
|
-
spawnTower(world, records, [-4.5, 0.25, 0], 5);
|
|
18
|
-
spawnPyramid(world, records, [-2.7, 0.25, 0], 4);
|
|
19
|
-
spawnWall(world, records, [-0.6, 0.25, 0], 5, 3);
|
|
20
|
-
spawnChain(world, records, constraints, [1.5, 3.1, 0], [3.0, 2.2, 0], 6);
|
|
21
|
-
spawnNewtonsCradle(world, records, constraints, [0.9, 4.2, 0], 4);
|
|
22
|
-
spawnDominoes(world, records, [2.1, 0.45, 0], 8);
|
|
23
|
-
spawnWreckingBall(world, records, constraints, [4.0, 3.5, 0], 2.4);
|
|
24
|
-
spawnVehicle(world, records, constraints, [-0.2, 2.0, 0]);
|
|
25
|
-
spawnRagdoll(world, records, constraints, [3.7, 1.6, 0]);
|
|
26
|
-
const bodyCountBeforeTools = world.snapshot().stats.bodies;
|
|
27
|
-
const tools = applyToolSequence(world, seed);
|
|
28
|
-
for (let step = 0; step < steps; step += 1)
|
|
29
|
-
world.step(1 / 60);
|
|
30
|
-
const snapshot = world.snapshot();
|
|
31
|
-
const spawners = summarizeSpawners(records, constraints, world);
|
|
32
|
-
const supportedToolCount = tools.filter((tool) => tool.supported).length;
|
|
33
|
-
const blockedToolCount = tools.length - supportedToolCount;
|
|
34
|
-
const metrics = {
|
|
35
|
-
bodyCountBeforeTools,
|
|
36
|
-
bodyCountAfterTools: snapshot.stats.bodies,
|
|
37
|
-
colliderCountAfterTools: snapshot.stats.colliders,
|
|
38
|
-
constraintCountAfterTools: snapshot.stats.constraints,
|
|
39
|
-
dynamicBodiesAfterTools: snapshot.bodies.filter((body) => body.type === "dynamic").length,
|
|
40
|
-
sleepingBodiesAfterTools: snapshot.stats.sleepingBodies,
|
|
41
|
-
contactsAfterSteps: snapshot.stats.contacts,
|
|
42
|
-
broadphasePairsAfterSteps: snapshot.stats.broadphasePairs,
|
|
43
|
-
kineticEnergyAfterSteps: Number(snapshot.stats.kineticEnergy.toFixed(4)),
|
|
44
|
-
maxContactPenetrationAfterSteps: Number(snapshot.stats.maxContactPenetration.toFixed(5)),
|
|
45
|
-
totalSpawnedBodies: records.length,
|
|
46
|
-
totalSpawnerConstraints: constraints.length,
|
|
47
|
-
supportedToolCount,
|
|
48
|
-
blockedToolCount
|
|
49
|
-
};
|
|
50
|
-
return {
|
|
51
|
-
id: "external-parity-old-branch-physics-sandbox-fixture",
|
|
52
|
-
source: "origin-master-physics-sandbox-tools-spawners-adapted",
|
|
53
|
-
spawners,
|
|
54
|
-
tools,
|
|
55
|
-
metrics,
|
|
56
|
-
unsupportedAdvancedSimulations: ["cloth", "soft-body", "fluid", "fracture"],
|
|
57
|
-
hash: hashFixture(spawners, tools, metrics),
|
|
58
|
-
claimBoundary: "Deterministic current-engine fixture adapted from old physics sandbox spawners and tools. It proves bounded rigid-body spawn presets, hinge/spring constraints, and supported tool telemetry; it does not claim soft body, cloth, fluid, fracture, full interactive editor tools, or Unity/Unreal physics-sandbox parity."
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
function spawnBasic(world, records, preset, position, shape, visualKind, mass) {
|
|
62
|
-
const body = world.createRigidBody({ position, mass, linearDamping: 0.02, angularDamping: 0.02 });
|
|
63
|
-
world.createCollider(body, { shape, material: { friction: 0.72, restitution: 0.05 } });
|
|
64
|
-
records.push({ preset, body, visualKind, colliderKind: preset === "cylinder-proxy" ? "cylinder-proxy" : shape.kind });
|
|
65
|
-
return body;
|
|
66
|
-
}
|
|
67
|
-
function spawnTower(world, records, origin, height) {
|
|
68
|
-
for (let index = 0; index < height; index += 1) {
|
|
69
|
-
spawnBasic(world, records, "tower", [origin[0], origin[1] + index * 0.46, origin[2]], Shape.box(0.36, 0.22, 0.32), "box", 1);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
function spawnPyramid(world, records, origin, levels) {
|
|
73
|
-
for (let level = 0; level < levels; level += 1) {
|
|
74
|
-
const width = levels - level;
|
|
75
|
-
for (let x = 0; x < width; x += 1) {
|
|
76
|
-
spawnBasic(world, records, "pyramid", [
|
|
77
|
-
origin[0] + (x - (width - 1) / 2) * 0.44,
|
|
78
|
-
origin[1] + level * 0.46,
|
|
79
|
-
origin[2]
|
|
80
|
-
], Shape.box(0.2, 0.22, 0.25), "box", 1);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
function spawnWall(world, records, origin, width, height) {
|
|
85
|
-
for (let y = 0; y < height; y += 1) {
|
|
86
|
-
const boxesInRow = width - (y % 2);
|
|
87
|
-
for (let x = 0; x < boxesInRow; x += 1) {
|
|
88
|
-
spawnBasic(world, records, "wall", [
|
|
89
|
-
origin[0] + (x - (boxesInRow - 1) / 2) * 0.42 + (y % 2) * 0.21,
|
|
90
|
-
origin[1] + y * 0.42,
|
|
91
|
-
origin[2]
|
|
92
|
-
], Shape.box(0.2, 0.2, 0.2), "brick", 1);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
function spawnChain(world, records, constraints, start, end, segments) {
|
|
97
|
-
let previous;
|
|
98
|
-
for (let index = 0; index < segments; index += 1) {
|
|
99
|
-
const t = (index + 0.5) / segments;
|
|
100
|
-
const body = spawnBasic(world, records, "chain", lerpVec3(start, end, t), Shape.box(0.12, 0.12, 0.32), "chain-link", 0.5);
|
|
101
|
-
if (previous) {
|
|
102
|
-
world.createConstraint({ type: "hinge", bodyA: previous, bodyB: body, stiffness: 0.85 });
|
|
103
|
-
constraints.push({ preset: "chain" });
|
|
104
|
-
}
|
|
105
|
-
previous = body;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
function spawnNewtonsCradle(world, records, constraints, origin, balls) {
|
|
109
|
-
for (let index = 0; index < balls; index += 1) {
|
|
110
|
-
const x = origin[0] + (index - (balls - 1) / 2) * 0.42;
|
|
111
|
-
const anchor = world.createRigidBody({ type: "static", position: [x, origin[1], origin[2]] });
|
|
112
|
-
world.createCollider(anchor, { shape: Shape.box(0.06, 0.06, 0.06) });
|
|
113
|
-
records.push({ preset: "newtons-cradle", body: anchor, visualKind: "anchor", colliderKind: "box" });
|
|
114
|
-
const ball = spawnBasic(world, records, "newtons-cradle", [x, origin[1] - 1.1, origin[2]], Shape.sphere(0.18), "sphere", 1);
|
|
115
|
-
world.createConstraint({ type: "hinge", bodyA: anchor, bodyB: ball, stiffness: 0.9 });
|
|
116
|
-
constraints.push({ preset: "newtons-cradle" });
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
function spawnDominoes(world, records, start, count) {
|
|
120
|
-
for (let index = 0; index < count; index += 1) {
|
|
121
|
-
spawnBasic(world, records, "dominoes", [start[0] + index * 0.22, start[1], start[2]], Shape.box(0.05, 0.34, 0.18), "domino", 0.5);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
function spawnWreckingBall(world, records, constraints, position, chainLength) {
|
|
125
|
-
const anchor = world.createRigidBody({ type: "static", position });
|
|
126
|
-
world.createCollider(anchor, { shape: Shape.box(0.08, 0.08, 0.08) });
|
|
127
|
-
records.push({ preset: "wrecking-ball", body: anchor, visualKind: "anchor", colliderKind: "box" });
|
|
128
|
-
const ball = spawnBasic(world, records, "wrecking-ball", [position[0] + 0.55, position[1] - chainLength, position[2]], Shape.sphere(0.34), "sphere", 8);
|
|
129
|
-
world.createConstraint({ type: "spring", bodyA: anchor, bodyB: ball, restLength: chainLength, stiffness: 0.55 });
|
|
130
|
-
constraints.push({ preset: "wrecking-ball" });
|
|
131
|
-
}
|
|
132
|
-
function spawnVehicle(world, records, constraints, position) {
|
|
133
|
-
const chassis = spawnBasic(world, records, "vehicle", position, Shape.box(0.56, 0.16, 0.32), "chassis", 5);
|
|
134
|
-
for (const offset of [[-0.38, -0.24, -0.32], [-0.38, -0.24, 0.32], [0.38, -0.24, -0.32], [0.38, -0.24, 0.32]]) {
|
|
135
|
-
const wheel = spawnBasic(world, records, "vehicle", [position[0] + offset[0], position[1] + offset[1], position[2] + offset[2]], Shape.sphere(0.15), "wheel", 0.5);
|
|
136
|
-
world.createConstraint({ type: "hinge", bodyA: chassis, bodyB: wheel, stiffness: 0.75 });
|
|
137
|
-
constraints.push({ preset: "vehicle" });
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
function spawnRagdoll(world, records, constraints, position) {
|
|
141
|
-
const torso = spawnBasic(world, records, "ragdoll", position, Shape.box(0.22, 0.36, 0.16), "torso", 5);
|
|
142
|
-
const parts = [
|
|
143
|
-
["head", [0, 0.58, 0], Shape.sphere(0.18), 1],
|
|
144
|
-
["left-arm", [-0.36, 0.14, 0], Shape.capsule(0.08, 0.28), 1],
|
|
145
|
-
["right-arm", [0.36, 0.14, 0], Shape.capsule(0.08, 0.28), 1],
|
|
146
|
-
["left-leg", [-0.16, -0.56, 0], Shape.capsule(0.09, 0.34), 1],
|
|
147
|
-
["right-leg", [0.16, -0.56, 0], Shape.capsule(0.09, 0.34), 1]
|
|
148
|
-
];
|
|
149
|
-
for (const [visualKind, offset, shape, mass] of parts) {
|
|
150
|
-
const body = spawnBasic(world, records, "ragdoll", [position[0] + offset[0], position[1] + offset[1], position[2] + offset[2]], shape, visualKind, mass);
|
|
151
|
-
world.createConstraint({ type: "hinge", bodyA: torso, bodyB: body, stiffness: 0.72 });
|
|
152
|
-
constraints.push({ preset: "ragdoll" });
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
function applyToolSequence(world, seed) {
|
|
156
|
-
const tools = [];
|
|
157
|
-
const dynamicBodies = () => world.bodies().filter((body) => body.type === "dynamic");
|
|
158
|
-
const grabTarget = [0.25 + hash01(seed, 1) * 0.25, 2.15, 0];
|
|
159
|
-
const grabbed = nearestBody(dynamicBodies(), [0, 2, 0]);
|
|
160
|
-
if (grabbed) {
|
|
161
|
-
grabbed.setVelocity([
|
|
162
|
-
(grabTarget[0] - grabbed.position[0]) * 3.5,
|
|
163
|
-
(grabTarget[1] - grabbed.position[1]) * 3.5,
|
|
164
|
-
0
|
|
165
|
-
]);
|
|
166
|
-
}
|
|
167
|
-
tools.push({
|
|
168
|
-
tool: "grab",
|
|
169
|
-
supported: grabbed !== undefined,
|
|
170
|
-
affectedBodies: grabbed ? 1 : 0,
|
|
171
|
-
selectedBodyId: grabbed?.id,
|
|
172
|
-
blocker: "Current RigidBody type is immutable, so this fixture proves velocity-targeted grab telemetry rather than old kinematic type switching."
|
|
173
|
-
});
|
|
174
|
-
const pushPoint = [0, 1.2, 0];
|
|
175
|
-
let pushed = 0;
|
|
176
|
-
let impulseMagnitude = 0;
|
|
177
|
-
for (const body of dynamicBodies()) {
|
|
178
|
-
const distance = distanceVec3(body.position, pushPoint);
|
|
179
|
-
if (distance <= 2.5 && distance > 1e-6) {
|
|
180
|
-
const direction = scaleVec3(subVec3(body.position, pushPoint), 1 / distance);
|
|
181
|
-
const impulse = scaleVec3(direction, Number(((2.5 - distance) * 0.38).toFixed(4)));
|
|
182
|
-
body.applyImpulse(impulse);
|
|
183
|
-
impulseMagnitude += Math.hypot(...impulse);
|
|
184
|
-
pushed += 1;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
tools.push({ tool: "push", supported: true, affectedBodies: pushed, impulseMagnitude: Number(impulseMagnitude.toFixed(4)) });
|
|
188
|
-
const freezeCandidates = dynamicBodies().slice(0, 3);
|
|
189
|
-
for (const body of freezeCandidates) {
|
|
190
|
-
body.setVelocity([0, 0, 0]);
|
|
191
|
-
body.setAngularVelocity([0, 0, 0]);
|
|
192
|
-
body.sleeping = true;
|
|
193
|
-
}
|
|
194
|
-
tools.push({ tool: "freeze", supported: true, affectedBodies: freezeCandidates.length, frozenBodies: freezeCandidates.length });
|
|
195
|
-
const deleteTarget = dynamicBodies().at(-1);
|
|
196
|
-
if (deleteTarget)
|
|
197
|
-
world.removeRigidBody(deleteTarget.id);
|
|
198
|
-
tools.push({ tool: "delete", supported: deleteTarget !== undefined, affectedBodies: deleteTarget ? 1 : 0, selectedBodyId: deleteTarget?.id, deletedBodies: deleteTarget ? 1 : 0 });
|
|
199
|
-
const explodePoint = [1.2, 1.2, 0];
|
|
200
|
-
let exploded = 0;
|
|
201
|
-
let explosionImpulse = 0;
|
|
202
|
-
for (const body of dynamicBodies()) {
|
|
203
|
-
const distance = distanceVec3(body.position, explodePoint);
|
|
204
|
-
if (distance <= 3.25 && distance > 1e-6) {
|
|
205
|
-
const direction = scaleVec3(subVec3(body.position, explodePoint), 1 / distance);
|
|
206
|
-
const impulse = scaleVec3(direction, Number(((3.25 - distance) * 0.52).toFixed(4)));
|
|
207
|
-
body.applyImpulse(impulse);
|
|
208
|
-
explosionImpulse += Math.hypot(...impulse);
|
|
209
|
-
exploded += 1;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
tools.push({ tool: "explode", supported: true, affectedBodies: exploded, impulseMagnitude: Number(explosionImpulse.toFixed(4)) });
|
|
213
|
-
tools.push({
|
|
214
|
-
tool: "slice",
|
|
215
|
-
supported: false,
|
|
216
|
-
affectedBodies: 0,
|
|
217
|
-
blocker: "Old slice tool only drew/specified a cut gesture; current physics has no convex decomposition or fracture pipeline."
|
|
218
|
-
});
|
|
219
|
-
return tools;
|
|
220
|
-
}
|
|
221
|
-
function summarizeSpawners(records, constraints, world) {
|
|
222
|
-
const summaries = [];
|
|
223
|
-
const liveBodyIds = new Set(world.bodies().map((body) => body.id));
|
|
224
|
-
for (const preset of unique(records.map((record) => record.preset))) {
|
|
225
|
-
const presetRecords = records.filter((record) => record.preset === preset && liveBodyIds.has(record.body.id));
|
|
226
|
-
summaries.push({
|
|
227
|
-
preset,
|
|
228
|
-
bodies: presetRecords.length,
|
|
229
|
-
dynamicBodies: presetRecords.filter((record) => record.body.type === "dynamic").length,
|
|
230
|
-
staticBodies: presetRecords.filter((record) => record.body.type === "static").length,
|
|
231
|
-
colliders: presetRecords.length,
|
|
232
|
-
constraints: constraints.filter((constraint) => constraint.preset === preset).length,
|
|
233
|
-
visualKinds: unique(presetRecords.map((record) => record.visualKind)).sort(),
|
|
234
|
-
colliderKinds: unique(presetRecords.map((record) => record.colliderKind)).sort()
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
return summaries;
|
|
238
|
-
}
|
|
239
|
-
function nearestBody(bodies, target) {
|
|
240
|
-
return [...bodies].sort((left, right) => distanceVec3(left.position, target) - distanceVec3(right.position, target) || left.id - right.id)[0];
|
|
241
|
-
}
|
|
242
|
-
function lerpVec3(start, end, t) {
|
|
243
|
-
return [
|
|
244
|
-
start[0] + (end[0] - start[0]) * t,
|
|
245
|
-
start[1] + (end[1] - start[1]) * t,
|
|
246
|
-
start[2] + (end[2] - start[2]) * t
|
|
247
|
-
];
|
|
248
|
-
}
|
|
249
|
-
function distanceVec3(left, right) {
|
|
250
|
-
return Math.hypot(left[0] - right[0], left[1] - right[1], left[2] - right[2]);
|
|
251
|
-
}
|
|
252
|
-
function subVec3(left, right) {
|
|
253
|
-
return [left[0] - right[0], left[1] - right[1], left[2] - right[2]];
|
|
254
|
-
}
|
|
255
|
-
function scaleVec3(value, scale) {
|
|
256
|
-
return [value[0] * scale, value[1] * scale, value[2] * scale];
|
|
257
|
-
}
|
|
258
|
-
function unique(values) {
|
|
259
|
-
return [...new Set(values)];
|
|
260
|
-
}
|
|
261
|
-
function hashFixture(...parts) {
|
|
262
|
-
const text = JSON.stringify(parts);
|
|
263
|
-
let hash = 0x811c9dc5;
|
|
264
|
-
for (let index = 0; index < text.length; index += 1) {
|
|
265
|
-
hash ^= text.charCodeAt(index);
|
|
266
|
-
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
267
|
-
}
|
|
268
|
-
return hash.toString(16).padStart(8, "0");
|
|
269
|
-
}
|
|
270
|
-
function hash01(seed, salt) {
|
|
271
|
-
let value = Math.imul(seed + salt * 1013904223, 1664525) + 1013904223;
|
|
272
|
-
value = Math.imul(value ^ (value >>> 13), 1274126177);
|
|
273
|
-
return ((value ^ (value >>> 16)) >>> 0) / 4294967296;
|
|
274
|
-
}
|
|
275
|
-
function integer(value, label) {
|
|
276
|
-
if (!Number.isInteger(value))
|
|
277
|
-
throw new RangeError(`Physics sandbox fixture ${label} must be an integer.`);
|
|
278
|
-
return value;
|
|
279
|
-
}
|
|
280
|
-
//# sourceMappingURL=PhysicsSandboxFixtures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PhysicsSandboxFixtures.js","sourceRoot":"","sources":["../../../../packages/physics/src/PhysicsSandboxFixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
export type PlatformerAnimationState = "idle" | "walk" | "run" | "jump" | "fall" | "doubleJump" | "wallSlide" | "land";
|
|
2
|
-
export type PlatformerPlatformKind = "static" | "moving" | "rotating" | "falling" | "bouncy" | "disappearing";
|
|
3
|
-
export type PlatformerCollectibleKind = "coin" | "gem" | "power-up";
|
|
4
|
-
export interface PlatformerFixtureOptions {
|
|
5
|
-
readonly seed?: number;
|
|
6
|
-
readonly elapsedSeconds?: number;
|
|
7
|
-
}
|
|
8
|
-
export interface PlatformerPlatformSummary {
|
|
9
|
-
readonly kind: PlatformerPlatformKind;
|
|
10
|
-
readonly count: number;
|
|
11
|
-
}
|
|
12
|
-
export interface PlatformerCollectibleSummary {
|
|
13
|
-
readonly kind: PlatformerCollectibleKind;
|
|
14
|
-
readonly count: number;
|
|
15
|
-
readonly scoreValue: number;
|
|
16
|
-
}
|
|
17
|
-
export interface PlatformerControllerFixture {
|
|
18
|
-
readonly id: "external-parity-old-branch-platformer-controller-fixture";
|
|
19
|
-
readonly source: "origin-master-platformer-controller-adapted";
|
|
20
|
-
readonly config: {
|
|
21
|
-
readonly walkSpeed: number;
|
|
22
|
-
readonly runSpeed: number;
|
|
23
|
-
readonly jumpForce: number;
|
|
24
|
-
readonly doubleJumpForce: number;
|
|
25
|
-
readonly wallJumpForce: number;
|
|
26
|
-
readonly airControl: number;
|
|
27
|
-
readonly coyoteTimeSeconds: number;
|
|
28
|
-
readonly jumpBufferSeconds: number;
|
|
29
|
-
readonly maxFallSpeed: number;
|
|
30
|
-
};
|
|
31
|
-
readonly controller: {
|
|
32
|
-
readonly grounded: boolean;
|
|
33
|
-
readonly coyoteJumpAccepted: boolean;
|
|
34
|
-
readonly bufferedJumpAccepted: boolean;
|
|
35
|
-
readonly doubleJumpAccepted: boolean;
|
|
36
|
-
readonly wallJumpAccepted: boolean;
|
|
37
|
-
readonly horizontalSpeed: number;
|
|
38
|
-
readonly verticalVelocity: number;
|
|
39
|
-
readonly stateSequence: readonly PlatformerAnimationState[];
|
|
40
|
-
readonly finalState: PlatformerAnimationState;
|
|
41
|
-
};
|
|
42
|
-
readonly camera: {
|
|
43
|
-
readonly distance: number;
|
|
44
|
-
readonly minDistance: number;
|
|
45
|
-
readonly maxDistance: number;
|
|
46
|
-
readonly height: number;
|
|
47
|
-
readonly followSpeed: number;
|
|
48
|
-
readonly verticalAngle: number;
|
|
49
|
-
readonly collisionAdjustedDistance: number;
|
|
50
|
-
readonly shakeAmount: number;
|
|
51
|
-
readonly lockOnSupported: boolean;
|
|
52
|
-
};
|
|
53
|
-
readonly level: {
|
|
54
|
-
readonly startPosition: readonly [number, number, number];
|
|
55
|
-
readonly goalPosition: readonly [number, number, number];
|
|
56
|
-
readonly platformSummaries: readonly PlatformerPlatformSummary[];
|
|
57
|
-
readonly collectibleSummaries: readonly PlatformerCollectibleSummary[];
|
|
58
|
-
readonly checkpointCount: number;
|
|
59
|
-
readonly hazardCount: number;
|
|
60
|
-
readonly movingPlatformPathCount: number;
|
|
61
|
-
readonly totalPlatforms: number;
|
|
62
|
-
readonly totalCollectibles: number;
|
|
63
|
-
readonly totalScoreValue: number;
|
|
64
|
-
readonly goalDistance: number;
|
|
65
|
-
};
|
|
66
|
-
readonly hash: string;
|
|
67
|
-
readonly claimBoundary: string;
|
|
68
|
-
}
|
|
69
|
-
export declare function samplePlatformerControllerFixture(options?: PlatformerFixtureOptions): PlatformerControllerFixture;
|
|
70
|
-
//# sourceMappingURL=PlatformerFixtures.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformerFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/PlatformerFixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
const platformSummaries = [
|
|
2
|
-
{ kind: "static", count: 6 },
|
|
3
|
-
{ kind: "moving", count: 1 },
|
|
4
|
-
{ kind: "rotating", count: 1 },
|
|
5
|
-
{ kind: "falling", count: 3 },
|
|
6
|
-
{ kind: "bouncy", count: 1 },
|
|
7
|
-
{ kind: "disappearing", count: 2 }
|
|
8
|
-
];
|
|
9
|
-
const collectibleSummaries = [
|
|
10
|
-
{ kind: "coin", count: 5, scoreValue: 100 },
|
|
11
|
-
{ kind: "gem", count: 2, scoreValue: 500 },
|
|
12
|
-
{ kind: "power-up", count: 1, scoreValue: 1000 }
|
|
13
|
-
];
|
|
14
|
-
export function samplePlatformerControllerFixture(options = {}) {
|
|
15
|
-
const seed = integer(options.seed ?? 0x3d2025, "seed");
|
|
16
|
-
const elapsedSeconds = finiteNonNegative(options.elapsedSeconds ?? 0.32, "elapsedSeconds");
|
|
17
|
-
const coyoteTimeSeconds = 0.15;
|
|
18
|
-
const jumpBufferSeconds = 0.1;
|
|
19
|
-
const timeSinceGrounded = 0.08 + hash01(seed, 1) * 0.03;
|
|
20
|
-
const timeSinceJumpPressed = 0.04 + hash01(seed, 2) * 0.02;
|
|
21
|
-
const coyoteJumpAccepted = timeSinceGrounded <= coyoteTimeSeconds;
|
|
22
|
-
const bufferedJumpAccepted = timeSinceJumpPressed <= jumpBufferSeconds;
|
|
23
|
-
const doubleJumpAccepted = coyoteJumpAccepted && bufferedJumpAccepted;
|
|
24
|
-
const wallJumpAccepted = hash01(seed, 3) > 0.25;
|
|
25
|
-
const horizontalSpeed = Number((5 + hash01(seed, 4) * 3).toFixed(4));
|
|
26
|
-
const verticalVelocity = Number((12 - elapsedSeconds * 9.8).toFixed(4));
|
|
27
|
-
const stateSequence = [
|
|
28
|
-
"idle",
|
|
29
|
-
horizontalSpeed > 6.5 ? "run" : "walk",
|
|
30
|
-
"jump",
|
|
31
|
-
doubleJumpAccepted ? "doubleJump" : "fall",
|
|
32
|
-
wallJumpAccepted ? "wallSlide" : "fall",
|
|
33
|
-
"land"
|
|
34
|
-
];
|
|
35
|
-
const totalPlatforms = platformSummaries.reduce((sum, entry) => sum + entry.count, 0);
|
|
36
|
-
const totalCollectibles = collectibleSummaries.reduce((sum, entry) => sum + entry.count, 0);
|
|
37
|
-
const totalScoreValue = collectibleSummaries.reduce((sum, entry) => sum + entry.count * entry.scoreValue, 0);
|
|
38
|
-
const startPosition = [0, 2, 0];
|
|
39
|
-
const goalPosition = [56, 9, 0];
|
|
40
|
-
const goalDistance = Number(Math.hypot(goalPosition[0] - startPosition[0], goalPosition[1] - startPosition[1], goalPosition[2] - startPosition[2]).toFixed(4));
|
|
41
|
-
return {
|
|
42
|
-
id: "external-parity-old-branch-platformer-controller-fixture",
|
|
43
|
-
source: "origin-master-platformer-controller-adapted",
|
|
44
|
-
config: {
|
|
45
|
-
walkSpeed: 5,
|
|
46
|
-
runSpeed: 8,
|
|
47
|
-
jumpForce: 12,
|
|
48
|
-
doubleJumpForce: 10,
|
|
49
|
-
wallJumpForce: 14,
|
|
50
|
-
airControl: 0.3,
|
|
51
|
-
coyoteTimeSeconds,
|
|
52
|
-
jumpBufferSeconds,
|
|
53
|
-
maxFallSpeed: 30
|
|
54
|
-
},
|
|
55
|
-
controller: {
|
|
56
|
-
grounded: false,
|
|
57
|
-
coyoteJumpAccepted,
|
|
58
|
-
bufferedJumpAccepted,
|
|
59
|
-
doubleJumpAccepted,
|
|
60
|
-
wallJumpAccepted,
|
|
61
|
-
horizontalSpeed,
|
|
62
|
-
verticalVelocity,
|
|
63
|
-
stateSequence,
|
|
64
|
-
finalState: "land"
|
|
65
|
-
},
|
|
66
|
-
camera: {
|
|
67
|
-
distance: 8,
|
|
68
|
-
minDistance: 3,
|
|
69
|
-
maxDistance: 15,
|
|
70
|
-
height: 2,
|
|
71
|
-
followSpeed: 8,
|
|
72
|
-
verticalAngle: Number((0.3 + hash01(seed, 5) * 0.1).toFixed(4)),
|
|
73
|
-
collisionAdjustedDistance: Number((8 - hash01(seed, 6) * 1.5).toFixed(4)),
|
|
74
|
-
shakeAmount: Number((0.18 * Math.pow(0.95, elapsedSeconds * 60)).toFixed(4)),
|
|
75
|
-
lockOnSupported: true
|
|
76
|
-
},
|
|
77
|
-
level: {
|
|
78
|
-
startPosition,
|
|
79
|
-
goalPosition,
|
|
80
|
-
platformSummaries,
|
|
81
|
-
collectibleSummaries,
|
|
82
|
-
checkpointCount: 2,
|
|
83
|
-
hazardCount: 3,
|
|
84
|
-
movingPlatformPathCount: 2,
|
|
85
|
-
totalPlatforms,
|
|
86
|
-
totalCollectibles,
|
|
87
|
-
totalScoreValue,
|
|
88
|
-
goalDistance
|
|
89
|
-
},
|
|
90
|
-
hash: hashPlatformer(seed, elapsedSeconds, horizontalSpeed, verticalVelocity, totalPlatforms, totalCollectibles, goalDistance),
|
|
91
|
-
claimBoundary: "Deterministic platformer controller, third-person camera, and level-layout telemetry adapted from the old platformer example; this is not a full character controller replacement, collision solver, camera occlusion system, or Unity/Unreal controller parity claim."
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
function hashPlatformer(...values) {
|
|
95
|
-
let hash = 0x811c9dc5;
|
|
96
|
-
for (const value of values) {
|
|
97
|
-
const scaled = Math.round(value * 10_000);
|
|
98
|
-
hash ^= scaled & 0xff;
|
|
99
|
-
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
100
|
-
hash ^= (scaled >>> 8) & 0xff;
|
|
101
|
-
hash = Math.imul(hash, 0x01000193) >>> 0;
|
|
102
|
-
}
|
|
103
|
-
return hash.toString(16).padStart(8, "0");
|
|
104
|
-
}
|
|
105
|
-
function hash01(seed, salt) {
|
|
106
|
-
let value = Math.imul(seed + salt * 1013904223, 1664525) + 1013904223;
|
|
107
|
-
value = Math.imul(value ^ (value >>> 13), 1274126177);
|
|
108
|
-
return ((value ^ (value >>> 16)) >>> 0) / 4294967296;
|
|
109
|
-
}
|
|
110
|
-
function finiteNonNegative(value, label) {
|
|
111
|
-
if (!Number.isFinite(value) || value < 0)
|
|
112
|
-
throw new RangeError(`Platformer fixture ${label} must be finite and non-negative.`);
|
|
113
|
-
return value;
|
|
114
|
-
}
|
|
115
|
-
function integer(value, label) {
|
|
116
|
-
if (!Number.isInteger(value))
|
|
117
|
-
throw new RangeError(`Platformer fixture ${label} must be an integer.`);
|
|
118
|
-
return value;
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=PlatformerFixtures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformerFixtures.js","sourceRoot":"","sources":["../../../../packages/physics/src/PlatformerFixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
export interface SoftBodyFixtureOptions {
|
|
2
|
-
readonly seed?: number;
|
|
3
|
-
readonly elapsedSeconds?: number;
|
|
4
|
-
readonly divisions?: number;
|
|
5
|
-
}
|
|
6
|
-
export interface SoftBodySampleVertex {
|
|
7
|
-
readonly index: number;
|
|
8
|
-
readonly grid: readonly [number, number, number];
|
|
9
|
-
readonly attached: boolean;
|
|
10
|
-
readonly rest: readonly [number, number, number];
|
|
11
|
-
readonly position: readonly [number, number, number];
|
|
12
|
-
readonly displacement: number;
|
|
13
|
-
}
|
|
14
|
-
export interface SoftBodyFixture {
|
|
15
|
-
readonly id: "external-parity-old-branch-soft-body-fixture";
|
|
16
|
-
readonly source: "origin-master-softbody-tet-pbd-adapted";
|
|
17
|
-
readonly sourceFiles: readonly [
|
|
18
|
-
"origin/master:src/simulation/softbody/SoftBody.ts",
|
|
19
|
-
"origin/master:src/simulation/softbody/SoftBodySolver.ts",
|
|
20
|
-
"origin/master:src/simulation/softbody/TetMeshGenerator.ts"
|
|
21
|
-
];
|
|
22
|
-
readonly config: {
|
|
23
|
-
readonly method: "bounded-pbd-telemetry";
|
|
24
|
-
readonly materialModel: "bounded-corotated-reference";
|
|
25
|
-
readonly divisions: number;
|
|
26
|
-
readonly damping: number;
|
|
27
|
-
readonly solverIterations: number;
|
|
28
|
-
readonly volumeStiffness: number;
|
|
29
|
-
readonly shapeMatchingStiffness: number;
|
|
30
|
-
readonly distanceStiffness: number;
|
|
31
|
-
readonly particleMass: number;
|
|
32
|
-
};
|
|
33
|
-
readonly mesh: {
|
|
34
|
-
readonly vertexCount: number;
|
|
35
|
-
readonly tetrahedronCount: number;
|
|
36
|
-
readonly surfaceTriangleEstimate: number;
|
|
37
|
-
readonly distanceConstraintCount: number;
|
|
38
|
-
readonly attachmentCount: number;
|
|
39
|
-
readonly sampleVertices: readonly SoftBodySampleVertex[];
|
|
40
|
-
};
|
|
41
|
-
readonly deformation: {
|
|
42
|
-
readonly centerOfMass: readonly [number, number, number];
|
|
43
|
-
readonly restCenterOfMass: readonly [number, number, number];
|
|
44
|
-
readonly maxDisplacement: number;
|
|
45
|
-
readonly averageDisplacement: number;
|
|
46
|
-
readonly volumeRatio: number;
|
|
47
|
-
readonly restVolume: number;
|
|
48
|
-
readonly currentVolume: number;
|
|
49
|
-
readonly shapeMatchingError: number;
|
|
50
|
-
};
|
|
51
|
-
readonly collision: {
|
|
52
|
-
readonly groundPlaneY: number;
|
|
53
|
-
readonly contactVertices: number;
|
|
54
|
-
readonly maxPenetrationBeforeResolve: number;
|
|
55
|
-
readonly resolvedVertices: number;
|
|
56
|
-
readonly restitution: number;
|
|
57
|
-
readonly friction: number;
|
|
58
|
-
};
|
|
59
|
-
readonly attachments: {
|
|
60
|
-
readonly rigidAttachmentCount: number;
|
|
61
|
-
readonly targetOffset: readonly [number, number, number];
|
|
62
|
-
readonly maxAttachmentError: number;
|
|
63
|
-
readonly averageAttachmentError: number;
|
|
64
|
-
};
|
|
65
|
-
readonly blockedClaims: readonly string[];
|
|
66
|
-
readonly hash: string;
|
|
67
|
-
readonly claimBoundary: string;
|
|
68
|
-
}
|
|
69
|
-
export declare function sampleSoftBodyFixture(options?: SoftBodyFixtureOptions): SoftBodyFixture;
|
|
70
|
-
//# sourceMappingURL=SoftBodyFixtures.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SoftBodyFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/physics/src/SoftBodyFixtures.ts"],"names":[],"mappings":"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"}
|