@absolutejs/rapier3d 0.17.0 → 0.18.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 +41 -0
- package/absolutejs/README.md +41 -0
- package/dist/build-info.mjs +1 -1
- package/dist/provenance.json +5 -5
- package/dist/rapier.mjs +1 -1
- package/dist/types/dynamics/integration_parameters.d.ts +15 -0
- package/dist/types/pipeline/step_profile.d.ts +9 -0
- package/dist/types/rapier_wasm3d.d.ts +12 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -596,3 +596,44 @@ regressions, 237 package tests, GPU-disabled browser checks, native one/two-work
|
|
|
596
596
|
controls, no-std, 24 tree/rate comparisons, four generated/excavated requests,
|
|
597
597
|
18 flat-tree cases and an independent build matching all shipped files.
|
|
598
598
|
Evidence: `absolutejs/research/rotational-contact/`.
|
|
599
|
+
|
|
600
|
+
### Numerical contact softness
|
|
601
|
+
|
|
602
|
+
`world.integrationParameters.contactSoftness` and `staticContactSoftness` read
|
|
603
|
+
or atomically replace `{ naturalFrequency, dampingRatio }`. The first controls
|
|
604
|
+
dynamic contacts (native default 30 Hz / 10); the second controls contacts with
|
|
605
|
+
a fixed body (native default 60 Hz / 10). Change them between steps. Reads
|
|
606
|
+
return owned copies; values must be representable finite native coefficients,
|
|
607
|
+
with positive frequency and nonnegative damping. Both values are validated
|
|
608
|
+
before either changes. Snapshots preserve both settings. Bounded step profiles
|
|
609
|
+
record each distinct settings pair once in a bounded `contactSettings` table;
|
|
610
|
+
samples carry `native.contactSettingsIndex`. Reports deeply own that table,
|
|
611
|
+
including after the world is freed. This avoids repeating configuration in
|
|
612
|
+
every sample and keeps telemetry within existing event budgets.
|
|
613
|
+
|
|
614
|
+
These are numerical regularization parameters, not measured material elasticity.
|
|
615
|
+
Higher frequency can reduce transient penetration but may produce jitter or
|
|
616
|
+
prevent sleeping. Qualify motion, contact, sleeping and cost across actual
|
|
617
|
+
scenarios before changing a product's policy. Defaults are unchanged.
|
|
618
|
+
|
|
619
|
+
### 0.18.0 contact correction and adoption limits
|
|
620
|
+
|
|
621
|
+
The collision library rejects an exactly duplicated CSO point before it can
|
|
622
|
+
form a degenerate tetrahedron and lose a valid terrain contact. Both friction
|
|
623
|
+
builders select static/dynamic coefficients directly, avoiding dependence on
|
|
624
|
+
an unused coefficient through floating-point cancellation.
|
|
625
|
+
|
|
626
|
+
Native defaults remain unchanged. In the game's actual tree matrix, the
|
|
627
|
+
collision correction fixes one missed-contact case but makes another case
|
|
628
|
+
exceed the game's clearance limit at default softness (-21.007 mm). The game
|
|
629
|
+
therefore qualifies an explicit 600 Hz / 10 static-contact policy alongside
|
|
630
|
+
this engine: all 24 tree/rate cases and 18 cut-tree cases pass and sleep.
|
|
631
|
+
This is a bounded product policy, not a universal stiffness recommendation.
|
|
632
|
+
The default-policy failure is retained in the investigation records.
|
|
633
|
+
|
|
634
|
+
Qualification: 242 package tests, 847 game tests, four generated/excavated
|
|
635
|
+
terrain requests, GPU-disabled browser controls, native serial/two-worker
|
|
636
|
+
checks, no-std, and independent builds matching all shipped files. Three
|
|
637
|
+
ordinary CPU controls are within roughly 1% of 0.17.0 in this run. See
|
|
638
|
+
`absolutejs/research/contact-softness-controls/` for measured fixture costs,
|
|
639
|
+
source hashes, intermediate failures and scope limitations.
|
package/absolutejs/README.md
CHANGED
|
@@ -596,3 +596,44 @@ regressions, 237 package tests, GPU-disabled browser checks, native one/two-work
|
|
|
596
596
|
controls, no-std, 24 tree/rate comparisons, four generated/excavated requests,
|
|
597
597
|
18 flat-tree cases and an independent build matching all shipped files.
|
|
598
598
|
Evidence: `absolutejs/research/rotational-contact/`.
|
|
599
|
+
|
|
600
|
+
### Numerical contact softness
|
|
601
|
+
|
|
602
|
+
`world.integrationParameters.contactSoftness` and `staticContactSoftness` read
|
|
603
|
+
or atomically replace `{ naturalFrequency, dampingRatio }`. The first controls
|
|
604
|
+
dynamic contacts (native default 30 Hz / 10); the second controls contacts with
|
|
605
|
+
a fixed body (native default 60 Hz / 10). Change them between steps. Reads
|
|
606
|
+
return owned copies; values must be representable finite native coefficients,
|
|
607
|
+
with positive frequency and nonnegative damping. Both values are validated
|
|
608
|
+
before either changes. Snapshots preserve both settings. Bounded step profiles
|
|
609
|
+
record each distinct settings pair once in a bounded `contactSettings` table;
|
|
610
|
+
samples carry `native.contactSettingsIndex`. Reports deeply own that table,
|
|
611
|
+
including after the world is freed. This avoids repeating configuration in
|
|
612
|
+
every sample and keeps telemetry within existing event budgets.
|
|
613
|
+
|
|
614
|
+
These are numerical regularization parameters, not measured material elasticity.
|
|
615
|
+
Higher frequency can reduce transient penetration but may produce jitter or
|
|
616
|
+
prevent sleeping. Qualify motion, contact, sleeping and cost across actual
|
|
617
|
+
scenarios before changing a product's policy. Defaults are unchanged.
|
|
618
|
+
|
|
619
|
+
### 0.18.0 contact correction and adoption limits
|
|
620
|
+
|
|
621
|
+
The collision library rejects an exactly duplicated CSO point before it can
|
|
622
|
+
form a degenerate tetrahedron and lose a valid terrain contact. Both friction
|
|
623
|
+
builders select static/dynamic coefficients directly, avoiding dependence on
|
|
624
|
+
an unused coefficient through floating-point cancellation.
|
|
625
|
+
|
|
626
|
+
Native defaults remain unchanged. In the game's actual tree matrix, the
|
|
627
|
+
collision correction fixes one missed-contact case but makes another case
|
|
628
|
+
exceed the game's clearance limit at default softness (-21.007 mm). The game
|
|
629
|
+
therefore qualifies an explicit 600 Hz / 10 static-contact policy alongside
|
|
630
|
+
this engine: all 24 tree/rate cases and 18 cut-tree cases pass and sleep.
|
|
631
|
+
This is a bounded product policy, not a universal stiffness recommendation.
|
|
632
|
+
The default-policy failure is retained in the investigation records.
|
|
633
|
+
|
|
634
|
+
Qualification: 242 package tests, 847 game tests, four generated/excavated
|
|
635
|
+
terrain requests, GPU-disabled browser controls, native serial/two-worker
|
|
636
|
+
checks, no-std, and independent builds matching all shipped files. Three
|
|
637
|
+
ordinary CPU controls are within roughly 1% of 0.17.0 in this run. See
|
|
638
|
+
`absolutejs/research/contact-softness-controls/` for measured fixture costs,
|
|
639
|
+
source hashes, intermediate failures and scope limitations.
|
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.18.0",qualifiedKernelRelease:"0.18.0",upstream:"b716d375efc0201003f0cd9ef7168eee0b62c177",engine:"0.36.0",collisionLibraryVersion:"0.31.1",collisionSource:"git+https://github.com/absolutejs/parry?rev=53ac0b0b02767300da09d092d97cef53a975c947#53ac0b0b02767300da09d092d97cef53a975c947",bindings:"0.21.0",bindgen:"0.2.129",wasmSha256:"67e366a5151fd865f6e6fb154a8cb27a7c4073c19e51e0e594633cf07f6e956e",wasmBytes:3363613,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.18.0",
|
|
6
|
+
"qualifiedKernelRelease": "0.18.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=
|
|
10
|
+
"collisionSource": "git+https://github.com/absolutejs/parry?rev=53ac0b0b02767300da09d092d97cef53a975c947#53ac0b0b02767300da09d092d97cef53a975c947",
|
|
11
11
|
"bindings": "0.21.0",
|
|
12
12
|
"bindgen": "0.2.129",
|
|
13
|
-
"wasmSha256": "
|
|
14
|
-
"wasmBytes":
|
|
13
|
+
"wasmSha256": "67e366a5151fd865f6e6fb154a8cb27a7c4073c19e51e0e594633cf07f6e956e",
|
|
14
|
+
"wasmBytes": 3363613,
|
|
15
15
|
"solverChanges": true
|
|
16
16
|
}
|