@absolutejs/rapier3d 0.14.1 → 0.15.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
@@ -421,3 +421,29 @@ zero-offset roots retain their existing arithmetic. This correction does not
421
421
  replace the articulation's angular integrator or eliminate remaining aggregate
422
422
  momentum/energy drift. Coordinate-covariance, movable-joint and snapshot replay
423
423
  regressions are recorded in `absolutejs/research/rigid-assembly`.
424
+
425
+ ## Isolated fixed-assembly integration and observations (0.15)
426
+
427
+ The solver additionally admits isolated floating assemblies made only
428
+ of fixed links, with gyroscopic forces enabled, no damping/armature/friction,
429
+ no locks or fast rotation, and no external loads except uniform gravity shared
430
+ by every link. Contacts, external joints, movable links, differing gravity
431
+ scales and unsupported states retain their existing path. Aggregate inertia is
432
+ assembled in authored local frames, then a matched angular update advances the
433
+ assembly about its total center of mass. Linear gravity uses the existing
434
+ semi-implicit kick-then-drift convention. This is not a contact or fracture model.
435
+
436
+ `world.freeAssemblyStats()` reports owned attempt counts after a completed
437
+ profiled step, with the same freshness rules as `freeRotationStats()`. The bounded
438
+ profiler records a deep-owned `native.freeAssembly` object. Counters distinguish
439
+ accepted steps, nonphysical-inertia rejections, rotation-limit rejections, and
440
+ invalid/failed solves. Unsupported assemblies and invalid aggregate construction
441
+ are excluded before an attempt; these exclusions do not increment rejection
442
+ counts. Zero counts do not prove conservation. Counts include solver substeps
443
+ and CCD passes. Qualification includes 198 package tests, 843 game tests, GPU-disabled browser
444
+ checks, 80 byte-exact snapshot replays and matching independent distribution
445
+ builds. The synthetic 16-assembly falling benchmark measured about 0.95 additional
446
+ microseconds per assembly/substep (median paired batch ratio 1.12); this is not
447
+ a hardware FPS result. Contact coupling, partial-subtree fracture and extreme
448
+ thin-moment storage remain separate work. See
449
+ `absolutejs/research/aggregate-free-transport/README.md` for evidence and limits.
@@ -421,3 +421,29 @@ zero-offset roots retain their existing arithmetic. This correction does not
421
421
  replace the articulation's angular integrator or eliminate remaining aggregate
422
422
  momentum/energy drift. Coordinate-covariance, movable-joint and snapshot replay
423
423
  regressions are recorded in `absolutejs/research/rigid-assembly`.
424
+
425
+ ## Isolated fixed-assembly integration and observations (0.15)
426
+
427
+ The solver additionally admits isolated floating assemblies made only
428
+ of fixed links, with gyroscopic forces enabled, no damping/armature/friction,
429
+ no locks or fast rotation, and no external loads except uniform gravity shared
430
+ by every link. Contacts, external joints, movable links, differing gravity
431
+ scales and unsupported states retain their existing path. Aggregate inertia is
432
+ assembled in authored local frames, then a matched angular update advances the
433
+ assembly about its total center of mass. Linear gravity uses the existing
434
+ semi-implicit kick-then-drift convention. This is not a contact or fracture model.
435
+
436
+ `world.freeAssemblyStats()` reports owned attempt counts after a completed
437
+ profiled step, with the same freshness rules as `freeRotationStats()`. The bounded
438
+ profiler records a deep-owned `native.freeAssembly` object. Counters distinguish
439
+ accepted steps, nonphysical-inertia rejections, rotation-limit rejections, and
440
+ invalid/failed solves. Unsupported assemblies and invalid aggregate construction
441
+ are excluded before an attempt; these exclusions do not increment rejection
442
+ counts. Zero counts do not prove conservation. Counts include solver substeps
443
+ and CCD passes. Qualification includes 198 package tests, 843 game tests, GPU-disabled browser
444
+ checks, 80 byte-exact snapshot replays and matching independent distribution
445
+ builds. The synthetic 16-assembly falling benchmark measured about 0.95 additional
446
+ microseconds per assembly/substep (median paired batch ratio 1.12); this is not
447
+ a hardware FPS result. Contact coupling, partial-subtree fracture and extreme
448
+ thin-moment storage remain separate work. See
449
+ `absolutejs/research/aggregate-free-transport/README.md` for evidence and limits.
@@ -1 +1 @@
1
- var e=Object.freeze({schemaVersion:1,scope:"package",packageName:"@absolutejs/rapier3d",packageVersion:"0.14.1",qualifiedKernelRelease:"0.14.1",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:"4686ddcbc3804f6692e67a93a0a99eb54ea92babc4ad293a54010ef54b7c9ec5",wasmBytes:3307856,solverChanges:!0});export{e as buildInfo};
1
+ var e=Object.freeze({schemaVersion:1,scope:"package",packageName:"@absolutejs/rapier3d",packageVersion:"0.15.0",qualifiedKernelRelease:"0.15.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:"10892b275313607d9983431590c4b1bce07945cf90d2b1c9340173373da3273c",wasmBytes:3317524,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.14.1",
6
- "qualifiedKernelRelease": "0.14.1",
5
+ "packageVersion": "0.15.0",
6
+ "qualifiedKernelRelease": "0.15.0",
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": "4686ddcbc3804f6692e67a93a0a99eb54ea92babc4ad293a54010ef54b7c9ec5",
14
- "wasmBytes": 3307856,
13
+ "wasmSha256": "10892b275313607d9983431590c4b1bce07945cf90d2b1c9340173373da3273c",
14
+ "wasmBytes": 3317524,
15
15
  "solverChanges": true
16
16
  }