@absolutejs/rapier3d 0.14.1 → 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 +58 -0
- package/absolutejs/README.md +58 -0
- package/dist/build-info.mjs +1 -1
- package/dist/provenance.json +4 -4
- package/dist/rapier.mjs +1 -1
- package/dist/types/pipeline/step_profile.d.ts +2 -1
- package/dist/types/pipeline/world.d.ts +16 -0
- package/dist/types/rapier_wasm3d.d.ts +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -421,3 +421,61 @@ 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.
|
|
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.
|
package/absolutejs/README.md
CHANGED
|
@@ -421,3 +421,61 @@ 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.
|
|
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.
|
package/dist/build-info.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.freeze({schemaVersion:1,scope:"package",packageName:"@absolutejs/rapier3d",packageVersion:"0.
|
|
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};
|
package/dist/provenance.json
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"scope": "package",
|
|
4
4
|
"packageName": "@absolutejs/rapier3d",
|
|
5
|
-
"packageVersion": "0.
|
|
6
|
-
"qualifiedKernelRelease": "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": "
|
|
14
|
-
"wasmBytes":
|
|
13
|
+
"wasmSha256": "fb44e31fd971a0577889408a95266ab1e61d9293a1f6657647ca51417b93c83d",
|
|
14
|
+
"wasmBytes": 3324606,
|
|
15
15
|
"solverChanges": true
|
|
16
16
|
}
|