@absolutejs/rapier3d 0.16.3 → 0.17.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.
package/README.md CHANGED
@@ -59,7 +59,7 @@ reconstructing the entire angular velocity through the inertia frame.
59
59
 
60
60
  Use Bun 1.4.4+absolute.1, Rust 1.94.0 with `wasm32-unknown-unknown`, and Python 3.12.
61
61
  Run `bun install --frozen-lockfile`, then `bash absolutejs/scripts/build-native.sh`.
62
- Cargo's exact lockfile is versioned, compilation is limited to two jobs, and the
62
+ Cargo's exact lockfile is versioned, compilation defaults to one job (override with `CARGO_BUILD_JOBS`), and the
63
63
  wasm-bindgen 0.2.129 CLI archive is checksum verified before extraction. Caches and
64
64
  generated build output are reproducible; modified source and selected test
65
65
  receipts are committed. `dist/provenance.json` records the resulting WASM hash.
@@ -566,3 +566,33 @@ observations are not hardware FPS or a universal speedup claim. See
566
566
  Independent builds match all 49 distribution files and the packaged native
567
567
  payload byte-for-byte. Raw executable/data sections match; only unshipped
568
568
  wasm-bindgen metadata differs.
569
+
570
+ ## Rotational intervals and cached contact directions (0.17.0)
571
+
572
+ Orientation-changing 3D direct sweeps now use separating-plane motion bounds
573
+ to detect the captured case where a rotating bar crosses a surface between
574
+ two clear endpoint poses. Translation-only sweeps retain the existing path.
575
+ The distance-query budget remains 25, with explicit failure if safe progress
576
+ cannot be established. Composite traversal is a separate limitation; this is
577
+ not a universal continuous-separation guarantee.
578
+
579
+ Stalled convex queries preserve the direction associated with the support
580
+ bound used for classification. This fixes a captured tree/triangle query that
581
+ reported about 202 mm penetration while independent plane projection bounded
582
+ required separation to about 0.013 mm. Both corrections are qualified together:
583
+ the rotational change alone exposed this cached-direction error in the full
584
+ oak excavation test. The combined engine passes it and all 844 game tests.
585
+
586
+ Package API, snapshot layout, contact tolerances and solver budgets are unchanged.
587
+ The raw variant-5/960 terrain clearance rejection remains identically present;
588
+ physical outcomes elsewhere may change. Bounded CPU control scenes retain
589
+ identical physical results and comparable timings. The targeted tilted-contact
590
+ fixture costs about 51% more after extended warmup, about 0.037 ms extra per
591
+ restored step in that fixture. This is a measured correctness tradeoff, not a
592
+ browser FPS or general performance guarantee.
593
+
594
+ Qualification includes 432 direct-sweep cases, captured old/new contact
595
+ regressions, 237 package tests, GPU-disabled browser checks, native one/two-worker
596
+ controls, no-std, 24 tree/rate comparisons, four generated/excavated requests,
597
+ 18 flat-tree cases and an independent build matching all shipped files.
598
+ Evidence: `absolutejs/research/rotational-contact/`.
@@ -59,7 +59,7 @@ reconstructing the entire angular velocity through the inertia frame.
59
59
 
60
60
  Use Bun 1.4.4+absolute.1, Rust 1.94.0 with `wasm32-unknown-unknown`, and Python 3.12.
61
61
  Run `bun install --frozen-lockfile`, then `bash absolutejs/scripts/build-native.sh`.
62
- Cargo's exact lockfile is versioned, compilation is limited to two jobs, and the
62
+ Cargo's exact lockfile is versioned, compilation defaults to one job (override with `CARGO_BUILD_JOBS`), and the
63
63
  wasm-bindgen 0.2.129 CLI archive is checksum verified before extraction. Caches and
64
64
  generated build output are reproducible; modified source and selected test
65
65
  receipts are committed. `dist/provenance.json` records the resulting WASM hash.
@@ -566,3 +566,33 @@ observations are not hardware FPS or a universal speedup claim. See
566
566
  Independent builds match all 49 distribution files and the packaged native
567
567
  payload byte-for-byte. Raw executable/data sections match; only unshipped
568
568
  wasm-bindgen metadata differs.
569
+
570
+ ## Rotational intervals and cached contact directions (0.17.0)
571
+
572
+ Orientation-changing 3D direct sweeps now use separating-plane motion bounds
573
+ to detect the captured case where a rotating bar crosses a surface between
574
+ two clear endpoint poses. Translation-only sweeps retain the existing path.
575
+ The distance-query budget remains 25, with explicit failure if safe progress
576
+ cannot be established. Composite traversal is a separate limitation; this is
577
+ not a universal continuous-separation guarantee.
578
+
579
+ Stalled convex queries preserve the direction associated with the support
580
+ bound used for classification. This fixes a captured tree/triangle query that
581
+ reported about 202 mm penetration while independent plane projection bounded
582
+ required separation to about 0.013 mm. Both corrections are qualified together:
583
+ the rotational change alone exposed this cached-direction error in the full
584
+ oak excavation test. The combined engine passes it and all 844 game tests.
585
+
586
+ Package API, snapshot layout, contact tolerances and solver budgets are unchanged.
587
+ The raw variant-5/960 terrain clearance rejection remains identically present;
588
+ physical outcomes elsewhere may change. Bounded CPU control scenes retain
589
+ identical physical results and comparable timings. The targeted tilted-contact
590
+ fixture costs about 51% more after extended warmup, about 0.037 ms extra per
591
+ restored step in that fixture. This is a measured correctness tradeoff, not a
592
+ browser FPS or general performance guarantee.
593
+
594
+ Qualification includes 432 direct-sweep cases, captured old/new contact
595
+ regressions, 237 package tests, GPU-disabled browser checks, native one/two-worker
596
+ controls, no-std, 24 tree/rate comparisons, four generated/excavated requests,
597
+ 18 flat-tree cases and an independent build matching all shipped files.
598
+ Evidence: `absolutejs/research/rotational-contact/`.
@@ -1 +1 @@
1
- var e=Object.freeze({schemaVersion:1,scope:"package",packageName:"@absolutejs/rapier3d",packageVersion:"0.16.3",qualifiedKernelRelease:"0.16.3",upstream:"b716d375efc0201003f0cd9ef7168eee0b62c177",engine:"0.36.0",collisionLibraryVersion:"0.31.1",collisionSource:"git+https://github.com/absolutejs/parry?rev=c566aabd77be8ac7a427c2b704860c47e34657b9#c566aabd77be8ac7a427c2b704860c47e34657b9",bindings:"0.21.0",bindgen:"0.2.129",wasmSha256:"1f2e3e463298859e3819d2c8b1f3741ba5bed2673687b71576c57fc1c0c035a2",wasmBytes:3357191,solverChanges:!0});export{e as buildInfo};
1
+ var e=Object.freeze({schemaVersion:1,scope:"package",packageName:"@absolutejs/rapier3d",packageVersion:"0.17.0",qualifiedKernelRelease:"0.17.0",upstream:"b716d375efc0201003f0cd9ef7168eee0b62c177",engine:"0.36.0",collisionLibraryVersion:"0.31.1",collisionSource:"git+https://github.com/absolutejs/parry?rev=8c68a625c15930ca8b685f30861aedf5d59c3726#8c68a625c15930ca8b685f30861aedf5d59c3726",bindings:"0.21.0",bindgen:"0.2.129",wasmSha256:"0dad2a033f7d46e262a08a370429dc6e23ea95009f824c14a76302a15a8f73a8",wasmBytes:3362690,solverChanges:!0});export{e as buildInfo};
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 1,
3
3
  "scope": "package",
4
4
  "packageName": "@absolutejs/rapier3d",
5
- "packageVersion": "0.16.3",
6
- "qualifiedKernelRelease": "0.16.3",
5
+ "packageVersion": "0.17.0",
6
+ "qualifiedKernelRelease": "0.17.0",
7
7
  "upstream": "b716d375efc0201003f0cd9ef7168eee0b62c177",
8
8
  "engine": "0.36.0",
9
9
  "collisionLibraryVersion": "0.31.1",
10
- "collisionSource": "git+https://github.com/absolutejs/parry?rev=c566aabd77be8ac7a427c2b704860c47e34657b9#c566aabd77be8ac7a427c2b704860c47e34657b9",
10
+ "collisionSource": "git+https://github.com/absolutejs/parry?rev=8c68a625c15930ca8b685f30861aedf5d59c3726#8c68a625c15930ca8b685f30861aedf5d59c3726",
11
11
  "bindings": "0.21.0",
12
12
  "bindgen": "0.2.129",
13
- "wasmSha256": "1f2e3e463298859e3819d2c8b1f3741ba5bed2673687b71576c57fc1c0c035a2",
14
- "wasmBytes": 3357191,
13
+ "wasmSha256": "0dad2a033f7d46e262a08a370429dc6e23ea95009f824c14a76302a15a8f73a8",
14
+ "wasmBytes": 3362690,
15
15
  "solverChanges": true
16
16
  }