@absolutejs/rapier3d 0.16.0 → 0.16.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/README.md CHANGED
@@ -479,3 +479,56 @@ Qualification and retained failed assumptions are in
479
479
  body removal; they do not invent a fracture-energy budget or model cutting
480
480
  forces, plastic deformation or coupled-contact accuracy. Those remain separate
481
481
  physical models and qualification work.
482
+
483
+ ## Stable queued wake replay (0.16.1)
484
+
485
+ Snapshots now serialize unordered pending wake/join membership in handle order.
486
+ The default backend also consumes queued wake requests in handle order, retaining
487
+ impulse-before-multibody priority. Previously, restoring a snapshot could reorder
488
+ sleeping bodies when they woke, changing active-set records on subsequent steps.
489
+ Only queued edits are sorted; there is no scan of every world body. The enhanced-
490
+ determinism feature retains its existing insertion-ordered behavior. Ordered
491
+ connectivity events and the version-1 snapshot payload layout are unchanged;
492
+ this is not a general cross-engine snapshot-compatibility promise.
493
+
494
+ Qualification includes 223 package tests, 843 game tests, exact sleeping-wake
495
+ replays, native feature/worker checks, GPU-disabled browser replay and identical
496
+ independent builds. Unaffected transport and impact states match published
497
+ 0.16.0. Sorting has a measured cost: at 256 released bodies, median first-wake
498
+ step time was 0.82 ms versus 0.98 ms, with about 26 microseconds added per pending
499
+ snapshot capture. These are bounded CPU fixtures, not hardware FPS claims.
500
+ See `absolutejs/research/snapshot-order/` for original failures and full evidence.
501
+
502
+ ## Predictive convex contacts (0.16.2)
503
+
504
+ Moving convex pairs now refresh separated predictive contacts instead of reusing
505
+ stale closest features across the contact-recycling drift window. Captured tree
506
+ fragments could previously penetrate while the cached anchors still reported
507
+ separation. Exactly unchanged relative geometry and world rotations retain
508
+ reuse, as do the existing empty-pair and touching-contact paths. This adds no
509
+ public setting, solver-iteration increase or snapshot-layout change.
510
+
511
+ The new rule applies only when both shapes are convex. Composite triangle,
512
+ heightfield and compound contact recycling retains its prior behavior. A broader
513
+ candidate regressed real generated-terrain support and was rejected; its captures
514
+ and controls remain in the research record. Mixed touching/predictive sets and
515
+ general composite-contact accuracy remain separate qualification work.
516
+
517
+ Qualification includes 227 package tests, 844 game tests, exact captured replay,
518
+ one/two-worker native checks, allocation-enabled no-std, GPU-disabled browser
519
+ checks and 18 full tree-drop cases. Four generated/excavated terrain cases retain
520
+ all measured physical fields and 491 poses exactly versus 0.16.1. The originally
521
+ bad flat-floor tree cases improve from roughly 7–12 mm cached penetration to
522
+ below 0.6 mm; other cases can change within their original limits. These cached
523
+ measurements are not continuous authored-material penetration guarantees.
524
+
525
+ Bounded paired CPU ratios versus 0.16.1 were about 0.99/0.99/1.05 for stationary
526
+ predictions, resting stacks and falling boxes. The stack trajectory changes but
527
+ passes its original stability limits. These fixtures do not measure hardware
528
+ FPS or establish a general speedup. See `absolutejs/research/predictive-recycle/`
529
+ for source, failed candidates, controls and qualification receipts.
530
+
531
+ Independent builds match all 49 distribution files and the packaged native
532
+ payload byte-for-byte. Raw executable/data sections match; only unshipped
533
+ wasm-bindgen custom metadata differs. Snapshot layout and public APIs are
534
+ unchanged.
@@ -479,3 +479,56 @@ Qualification and retained failed assumptions are in
479
479
  body removal; they do not invent a fracture-energy budget or model cutting
480
480
  forces, plastic deformation or coupled-contact accuracy. Those remain separate
481
481
  physical models and qualification work.
482
+
483
+ ## Stable queued wake replay (0.16.1)
484
+
485
+ Snapshots now serialize unordered pending wake/join membership in handle order.
486
+ The default backend also consumes queued wake requests in handle order, retaining
487
+ impulse-before-multibody priority. Previously, restoring a snapshot could reorder
488
+ sleeping bodies when they woke, changing active-set records on subsequent steps.
489
+ Only queued edits are sorted; there is no scan of every world body. The enhanced-
490
+ determinism feature retains its existing insertion-ordered behavior. Ordered
491
+ connectivity events and the version-1 snapshot payload layout are unchanged;
492
+ this is not a general cross-engine snapshot-compatibility promise.
493
+
494
+ Qualification includes 223 package tests, 843 game tests, exact sleeping-wake
495
+ replays, native feature/worker checks, GPU-disabled browser replay and identical
496
+ independent builds. Unaffected transport and impact states match published
497
+ 0.16.0. Sorting has a measured cost: at 256 released bodies, median first-wake
498
+ step time was 0.82 ms versus 0.98 ms, with about 26 microseconds added per pending
499
+ snapshot capture. These are bounded CPU fixtures, not hardware FPS claims.
500
+ See `absolutejs/research/snapshot-order/` for original failures and full evidence.
501
+
502
+ ## Predictive convex contacts (0.16.2)
503
+
504
+ Moving convex pairs now refresh separated predictive contacts instead of reusing
505
+ stale closest features across the contact-recycling drift window. Captured tree
506
+ fragments could previously penetrate while the cached anchors still reported
507
+ separation. Exactly unchanged relative geometry and world rotations retain
508
+ reuse, as do the existing empty-pair and touching-contact paths. This adds no
509
+ public setting, solver-iteration increase or snapshot-layout change.
510
+
511
+ The new rule applies only when both shapes are convex. Composite triangle,
512
+ heightfield and compound contact recycling retains its prior behavior. A broader
513
+ candidate regressed real generated-terrain support and was rejected; its captures
514
+ and controls remain in the research record. Mixed touching/predictive sets and
515
+ general composite-contact accuracy remain separate qualification work.
516
+
517
+ Qualification includes 227 package tests, 844 game tests, exact captured replay,
518
+ one/two-worker native checks, allocation-enabled no-std, GPU-disabled browser
519
+ checks and 18 full tree-drop cases. Four generated/excavated terrain cases retain
520
+ all measured physical fields and 491 poses exactly versus 0.16.1. The originally
521
+ bad flat-floor tree cases improve from roughly 7–12 mm cached penetration to
522
+ below 0.6 mm; other cases can change within their original limits. These cached
523
+ measurements are not continuous authored-material penetration guarantees.
524
+
525
+ Bounded paired CPU ratios versus 0.16.1 were about 0.99/0.99/1.05 for stationary
526
+ predictions, resting stacks and falling boxes. The stack trajectory changes but
527
+ passes its original stability limits. These fixtures do not measure hardware
528
+ FPS or establish a general speedup. See `absolutejs/research/predictive-recycle/`
529
+ for source, failed candidates, controls and qualification receipts.
530
+
531
+ Independent builds match all 49 distribution files and the packaged native
532
+ payload byte-for-byte. Raw executable/data sections match; only unshipped
533
+ wasm-bindgen custom metadata differs. Snapshot layout and public APIs are
534
+ unchanged.
@@ -1 +1 @@
1
- var e=Object.freeze({schemaVersion:1,scope:"package",packageName:"@absolutejs/rapier3d",packageVersion:"0.16.0",qualifiedKernelRelease:"0.16.0",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:"fb44e31fd971a0577889408a95266ab1e61d9293a1f6657647ca51417b93c83d",wasmBytes:3324606,solverChanges:!0});export{e as buildInfo};
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};
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 1,
3
3
  "scope": "package",
4
4
  "packageName": "@absolutejs/rapier3d",
5
- "packageVersion": "0.16.0",
6
- "qualifiedKernelRelease": "0.16.0",
5
+ "packageVersion": "0.16.2",
6
+ "qualifiedKernelRelease": "0.16.2",
7
7
  "upstream": "b716d375efc0201003f0cd9ef7168eee0b62c177",
8
8
  "engine": "0.36.0",
9
9
  "collisionLibraryVersion": "0.31.1",
10
10
  "collisionSource": "git+https://github.com/absolutejs/parry?rev=c566aabd77be8ac7a427c2b704860c47e34657b9#c566aabd77be8ac7a427c2b704860c47e34657b9",
11
11
  "bindings": "0.21.0",
12
12
  "bindgen": "0.2.129",
13
- "wasmSha256": "fb44e31fd971a0577889408a95266ab1e61d9293a1f6657647ca51417b93c83d",
14
- "wasmBytes": 3324606,
13
+ "wasmSha256": "f1539c74bb9192cf8f6dfaa95bb6654a605d326faa0bdd02939d798a455bc57c",
14
+ "wasmBytes": 3357159,
15
15
  "solverChanges": true
16
16
  }