@absolutejs/rapier3d 0.2.1 → 0.4.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 +20 -2
- package/absolutejs/README.md +42 -2
- package/dist/provenance.json +3 -3
- package/dist/rapier.mjs +1 -1
- package/dist/types/dynamics/integration_parameters.d.ts +9 -0
- package/dist/types/pipeline/world.d.ts +8 -0
- package/dist/types/rapier_wasm3d.d.ts +11 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -42,8 +42,8 @@ web/Node/Bun; it does not claim a 2D, f64, CommonJS or SIMD distribution.
|
|
|
42
42
|
|
|
43
43
|
Source base: dimforge/rapier commit
|
|
44
44
|
`b716d375efc0201003f0cd9ef7168eee0b62c177`. Upstream Apache-2.0 licensing is retained.
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
Engine calculations remain upstream. Additions cover binding queries, package
|
|
46
|
+
build/test tooling, and CCD profiler timer wiring; no solver equations are changed.
|
|
47
47
|
|
|
48
48
|
Use Bun 1.4.4+absolute.1, Rust 1.94.0 with `wasm32-unknown-unknown`, and Python 3.12.
|
|
49
49
|
Run `bun install --frozen-lockfile`, then `bash absolutejs/scripts/build-native.sh`.
|
|
@@ -92,3 +92,21 @@ Previously an absent native handle could be coerced to body zero during JavaScri
|
|
|
92
92
|
wrapper reconstruction. Real body-zero and fixed-body attachments remain intact.
|
|
93
93
|
This changes wrapper metadata only; native ownership, WASM and solver behavior are
|
|
94
94
|
unchanged. Repeated snapshot restoration and browser workers are regression tested.
|
|
95
|
+
|
|
96
|
+
## Actual CCD substeps (0.3)
|
|
97
|
+
|
|
98
|
+
Enable `world.profilerEnabled = true`, step the world, then read
|
|
99
|
+
`world.ccdSubsteps()`. It reports the native count of CCD passes in the last
|
|
100
|
+
completed profiled step, rather than the configured maximum. Zero means CCD did
|
|
101
|
+
not act, not that the world failed to advance. It returns null when unavailable:
|
|
102
|
+
before a profiled step, while profiling is disabled, or after toggling profiling
|
|
103
|
+
until a new step completes. Setting an already enabled profiler to true is idempotent.
|
|
104
|
+
Restored worlds start with profiling disabled and no sample. Event-enabled stepping
|
|
105
|
+
is covered too. This is opt-in telemetry; no physics policy or defaults change.
|
|
106
|
+
The counter does not expose individual substep durations or times of impact.
|
|
107
|
+
|
|
108
|
+
CCD timing now accumulates activation/impact-planning and motion-clamping work
|
|
109
|
+
across all passes in a step. The TOI timer also accumulates instead of resetting
|
|
110
|
+
for every clamp pass. Both are recorded only with profiling enabled. The timing
|
|
111
|
+
fix leaves contact equations and trajectories unchanged; package tests compare
|
|
112
|
+
profiled/unprofiled poses and official upstream trajectories.
|
package/absolutejs/README.md
CHANGED
|
@@ -42,8 +42,8 @@ web/Node/Bun; it does not claim a 2D, f64, CommonJS or SIMD distribution.
|
|
|
42
42
|
|
|
43
43
|
Source base: dimforge/rapier commit
|
|
44
44
|
`b716d375efc0201003f0cd9ef7168eee0b62c177`. Upstream Apache-2.0 licensing is retained.
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
Engine calculations remain upstream. Additions cover binding queries, package
|
|
46
|
+
build/test tooling, and CCD profiler timer wiring; no solver equations are changed.
|
|
47
47
|
|
|
48
48
|
Use Bun 1.4.4+absolute.1, Rust 1.94.0 with `wasm32-unknown-unknown`, and Python 3.12.
|
|
49
49
|
Run `bun install --frozen-lockfile`, then `bash absolutejs/scripts/build-native.sh`.
|
|
@@ -92,3 +92,43 @@ Previously an absent native handle could be coerced to body zero during JavaScri
|
|
|
92
92
|
wrapper reconstruction. Real body-zero and fixed-body attachments remain intact.
|
|
93
93
|
This changes wrapper metadata only; native ownership, WASM and solver behavior are
|
|
94
94
|
unchanged. Repeated snapshot restoration and browser workers are regression tested.
|
|
95
|
+
|
|
96
|
+
## Actual CCD substeps (0.3)
|
|
97
|
+
|
|
98
|
+
Enable `world.profilerEnabled = true`, step the world, then read
|
|
99
|
+
`world.ccdSubsteps()`. It reports the native count of CCD passes in the last
|
|
100
|
+
completed profiled step, rather than the configured maximum. Zero means CCD did
|
|
101
|
+
not act, not that the world failed to advance. It returns null when unavailable:
|
|
102
|
+
before a profiled step, while profiling is disabled, or after toggling profiling
|
|
103
|
+
until a new step completes. Setting an already enabled profiler to true is idempotent.
|
|
104
|
+
Restored worlds start with profiling disabled and no sample. Event-enabled stepping
|
|
105
|
+
is covered too. This is opt-in telemetry; no physics policy or defaults change.
|
|
106
|
+
The counter does not expose individual substep durations or times of impact.
|
|
107
|
+
|
|
108
|
+
CCD timing now accumulates activation/impact-planning and motion-clamping work
|
|
109
|
+
across all passes in a step. The TOI timer also accumulates instead of resetting
|
|
110
|
+
for every clamp pass. Both are recorded only with profiling enabled. The timing
|
|
111
|
+
fix leaves contact equations and trajectories unchanged; package tests compare
|
|
112
|
+
profiled/unprofiled poses and official upstream trajectories.
|
|
113
|
+
|
|
114
|
+
## Contact policy controls (0.4)
|
|
115
|
+
|
|
116
|
+
The following existing native settings are now exposed through
|
|
117
|
+
`world.integrationParameters`. Defaults and solver algorithms are unchanged.
|
|
118
|
+
|
|
119
|
+
| Property | Default | Meaning |
|
|
120
|
+
| --- | --- | --- |
|
|
121
|
+
| `contactRecycling` | `true` | Reuse contact manifolds while relative poses stay within the native reuse bounds. |
|
|
122
|
+
| `normalizedContactRecycleDistance` | `0.05` | Relative-pose drift bound, multiplied by `lengthUnit`; zero prevents recycling. |
|
|
123
|
+
| `warmstartCoefficient` | `1` | Fraction of cached impulses reused by the solver, from zero to one. |
|
|
124
|
+
|
|
125
|
+
Change settings between simulation steps. The boolean setter rejects coercible
|
|
126
|
+
non-booleans; numeric setters reject non-finite/out-of-range input, including f32
|
|
127
|
+
overflow for the distance. Native snapshots preserve all three settings.
|
|
128
|
+
|
|
129
|
+
These controls support explicit diagnosis and application-specific qualification.
|
|
130
|
+
Disabling recycling increases contact-generation work and can change contact
|
|
131
|
+
features; disabling warm starting changes convergence. Neither is a general fix
|
|
132
|
+
for penetration. Evaluate the entire requested simulation horizon and geometric
|
|
133
|
+
intersections, alongside live/cached contact diagnostics. A process that exits
|
|
134
|
+
successfully after an early physical guard is not a completed physical test.
|
package/dist/provenance.json
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"engine": "0.36.0",
|
|
4
4
|
"bindings": "0.21.0",
|
|
5
5
|
"bindgen": "0.2.129",
|
|
6
|
-
"wasmSha256": "
|
|
7
|
-
"wasmBytes":
|
|
6
|
+
"wasmSha256": "65ebc43d69dc3b4b290b29ca30ff44955711c8002799503749bcc03060783b39",
|
|
7
|
+
"wasmBytes": 3299287,
|
|
8
8
|
"solverChanges": false,
|
|
9
|
-
"addition": "
|
|
9
|
+
"addition": "Validated contact recycling, recycle distance and warm-start controls; contact and CCD diagnostics"
|
|
10
10
|
}
|