@absolutejs/rapier3d 0.16.2 → 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.
@@ -532,3 +532,67 @@ Independent builds match all 49 distribution files and the packaged native
532
532
  payload byte-for-byte. Raw executable/data sections match; only unshipped
533
533
  wasm-bindgen custom metadata differs. Snapshot layout and public APIs are
534
534
  unchanged.
535
+
536
+ ## Approaching contact support (0.16.3)
537
+
538
+ Contact-patch reduction now applies the same contact-skin, soft-body and
539
+ velocity-prediction eligibility rule as final solver admission. Previously,
540
+ reduction filtered outer points by current distance alone. An approaching tilted
541
+ box could consequently receive support along just one edge even though points
542
+ on the opposite edge qualified for the solver. The regression now retains four
543
+ support points spanning both sides, across three scales and both insertion orders.
544
+ Stationary and receding outer points remain excluded by the existing rule.
545
+
546
+ This is a two-file solver correction. It changes no public API, snapshot layout,
547
+ material coefficient, solver budget or admission tolerance. Published Parry
548
+ c566aabd is unchanged; the separate GJK-normal, persistent triangle-frame and
549
+ conservative-CCD experiments are excluded. This release does not solve the
550
+ remaining generated-heightfield or rotational direct-sweep limitations.
551
+
552
+ Qualification includes 236 package tests, 844 game tests, exact snapshot replay,
553
+ GPU-disabled browser tests, native one/two-worker controls and allocation-enabled
554
+ no-std. The 24 paired terrain controls add no rejection, but the existing raw
555
+ variant-0/1920 rejection remains. Four actual generated/excavated work requests
556
+ and 18 flat-floor tree cases pass their original limits. Twenty of 24 paired
557
+ terrain rows retain their measured physical fields exactly; others change.
558
+ These checks do not establish continuous authored-material separation.
559
+
560
+ Bounded paired CPU ratios versus 0.16.2 were approximately 1.03, 1.05 and 0.95
561
+ for stationary predictions, resting stacks and falling boxes, with identical
562
+ final physical fields. The affected tilted-patch ratio was 0.95. These shared-host
563
+ observations are not hardware FPS or a universal speedup claim. See
564
+ `absolutejs/research/predictive-support/` for complete evidence and limitations.
565
+
566
+ Independent builds match all 49 distribution files and the packaged native
567
+ payload byte-for-byte. Raw executable/data sections match; only unshipped
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.
@@ -532,3 +532,67 @@ Independent builds match all 49 distribution files and the packaged native
532
532
  payload byte-for-byte. Raw executable/data sections match; only unshipped
533
533
  wasm-bindgen custom metadata differs. Snapshot layout and public APIs are
534
534
  unchanged.
535
+
536
+ ## Approaching contact support (0.16.3)
537
+
538
+ Contact-patch reduction now applies the same contact-skin, soft-body and
539
+ velocity-prediction eligibility rule as final solver admission. Previously,
540
+ reduction filtered outer points by current distance alone. An approaching tilted
541
+ box could consequently receive support along just one edge even though points
542
+ on the opposite edge qualified for the solver. The regression now retains four
543
+ support points spanning both sides, across three scales and both insertion orders.
544
+ Stationary and receding outer points remain excluded by the existing rule.
545
+
546
+ This is a two-file solver correction. It changes no public API, snapshot layout,
547
+ material coefficient, solver budget or admission tolerance. Published Parry
548
+ c566aabd is unchanged; the separate GJK-normal, persistent triangle-frame and
549
+ conservative-CCD experiments are excluded. This release does not solve the
550
+ remaining generated-heightfield or rotational direct-sweep limitations.
551
+
552
+ Qualification includes 236 package tests, 844 game tests, exact snapshot replay,
553
+ GPU-disabled browser tests, native one/two-worker controls and allocation-enabled
554
+ no-std. The 24 paired terrain controls add no rejection, but the existing raw
555
+ variant-0/1920 rejection remains. Four actual generated/excavated work requests
556
+ and 18 flat-floor tree cases pass their original limits. Twenty of 24 paired
557
+ terrain rows retain their measured physical fields exactly; others change.
558
+ These checks do not establish continuous authored-material separation.
559
+
560
+ Bounded paired CPU ratios versus 0.16.2 were approximately 1.03, 1.05 and 0.95
561
+ for stationary predictions, resting stacks and falling boxes, with identical
562
+ final physical fields. The affected tilted-patch ratio was 0.95. These shared-host
563
+ observations are not hardware FPS or a universal speedup claim. See
564
+ `absolutejs/research/predictive-support/` for complete evidence and limitations.
565
+
566
+ Independent builds match all 49 distribution files and the packaged native
567
+ payload byte-for-byte. Raw executable/data sections match; only unshipped
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.2",qualifiedKernelRelease:"0.16.2",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:"f1539c74bb9192cf8f6dfaa95bb6654a605d326faa0bdd02939d798a455bc57c",wasmBytes:3357159,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.2",
6
- "qualifiedKernelRelease": "0.16.2",
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": "f1539c74bb9192cf8f6dfaa95bb6654a605d326faa0bdd02939d798a455bc57c",
14
- "wasmBytes": 3357159,
13
+ "wasmSha256": "0dad2a033f7d46e262a08a370429dc6e23ea95009f824c14a76302a15a8f73a8",
14
+ "wasmBytes": 3362690,
15
15
  "solverChanges": true
16
16
  }