@absolutejs/rapier3d 0.15.0 → 0.16.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
@@ -447,3 +447,35 @@ microseconds per assembly/substep (median paired batch ratio 1.12); this is not
447
447
  a hardware FPS result. Contact coupling, partial-subtree fracture and extreme
448
448
  thin-moment storage remain separate work. See
449
449
  `absolutejs/research/aggregate-free-transport/README.md` for evidence and limits.
450
+
451
+ ## Partial assembly splits and pending snapshots (0.16)
452
+
453
+ Removing a link from a moving fixed assembly can leave multiple assemblies.
454
+ Newly released roots inherit their body's world COM and angular velocity;
455
+ the surviving original root retains its coordinates, damping, armature,
456
+ friction and surviving couplings. Newly free root coordinates use their normal
457
+ defaults. Explicit fixed-to-dynamic activation also preserves prescribed body
458
+ velocity. Initial articulation construction semantics are unchanged.
459
+
460
+ An ordinary free fragment now retains the matched free-rotation path when an
461
+ unrelated articulation shares its solver batch. Multibody links are excluded
462
+ from ordinary-body initialization, and existing external-constraint, damping,
463
+ torque, lock and speed exclusions still apply. This corrects a batch-dependent
464
+ motion error without applying free-body integration to constrained bodies.
465
+
466
+ `takeSnapshot()` now writes the `ABSJS3DS` envelope, version 1, including ordered
467
+ pending connectivity edits and dirty impulse-joint state. Saving immediately
468
+ after a cut therefore retains changes not yet consumed by a simulation step.
469
+ Native Rust callers can capture/restore the opaque `PendingIslandEvents`
470
+ companion with the corresponding serialized world sets. Capture neither flushes
471
+ edits nor reconstructs the world's connectivity. Snapshot payloads still depend
472
+ on the native engine layout: retain `buildInfo` with diagnostic captures; the
473
+ envelope is not a promise of cross-engine save compatibility. Prior compatible
474
+ raw captures remain readable for investigation, but edits omitted by their
475
+ original writer cannot be recovered. All new saves use the versioned format.
476
+
477
+ Qualification and retained failed assumptions are in
478
+ `absolutejs/research/assembly-split/`. Tests measure the remaining material after
479
+ body removal; they do not invent a fracture-energy budget or model cutting
480
+ forces, plastic deformation or coupled-contact accuracy. Those remain separate
481
+ physical models and qualification work.
@@ -447,3 +447,35 @@ microseconds per assembly/substep (median paired batch ratio 1.12); this is not
447
447
  a hardware FPS result. Contact coupling, partial-subtree fracture and extreme
448
448
  thin-moment storage remain separate work. See
449
449
  `absolutejs/research/aggregate-free-transport/README.md` for evidence and limits.
450
+
451
+ ## Partial assembly splits and pending snapshots (0.16)
452
+
453
+ Removing a link from a moving fixed assembly can leave multiple assemblies.
454
+ Newly released roots inherit their body's world COM and angular velocity;
455
+ the surviving original root retains its coordinates, damping, armature,
456
+ friction and surviving couplings. Newly free root coordinates use their normal
457
+ defaults. Explicit fixed-to-dynamic activation also preserves prescribed body
458
+ velocity. Initial articulation construction semantics are unchanged.
459
+
460
+ An ordinary free fragment now retains the matched free-rotation path when an
461
+ unrelated articulation shares its solver batch. Multibody links are excluded
462
+ from ordinary-body initialization, and existing external-constraint, damping,
463
+ torque, lock and speed exclusions still apply. This corrects a batch-dependent
464
+ motion error without applying free-body integration to constrained bodies.
465
+
466
+ `takeSnapshot()` now writes the `ABSJS3DS` envelope, version 1, including ordered
467
+ pending connectivity edits and dirty impulse-joint state. Saving immediately
468
+ after a cut therefore retains changes not yet consumed by a simulation step.
469
+ Native Rust callers can capture/restore the opaque `PendingIslandEvents`
470
+ companion with the corresponding serialized world sets. Capture neither flushes
471
+ edits nor reconstructs the world's connectivity. Snapshot payloads still depend
472
+ on the native engine layout: retain `buildInfo` with diagnostic captures; the
473
+ envelope is not a promise of cross-engine save compatibility. Prior compatible
474
+ raw captures remain readable for investigation, but edits omitted by their
475
+ original writer cannot be recovered. All new saves use the versioned format.
476
+
477
+ Qualification and retained failed assumptions are in
478
+ `absolutejs/research/assembly-split/`. Tests measure the remaining material after
479
+ body removal; they do not invent a fracture-energy budget or model cutting
480
+ forces, plastic deformation or coupled-contact accuracy. Those remain separate
481
+ physical models and qualification work.
@@ -1 +1 @@
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};
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};
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 1,
3
3
  "scope": "package",
4
4
  "packageName": "@absolutejs/rapier3d",
5
- "packageVersion": "0.15.0",
6
- "qualifiedKernelRelease": "0.15.0",
5
+ "packageVersion": "0.16.0",
6
+ "qualifiedKernelRelease": "0.16.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": "10892b275313607d9983431590c4b1bce07945cf90d2b1c9340173373da3273c",
14
- "wasmBytes": 3317524,
13
+ "wasmSha256": "fb44e31fd971a0577889408a95266ab1e61d9293a1f6657647ca51417b93c83d",
14
+ "wasmBytes": 3324606,
15
15
  "solverChanges": true
16
16
  }