avbd-babylon 0.1.0 → 0.3.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 +2793 -2562
- package/dist/avbd.d.ts +1 -0
- package/dist/avbd.global.js +232 -138
- package/dist/avbd.js +232 -138
- package/dist/gpuDevice.d.ts +4 -0
- package/dist/native.d.ts +1 -0
- package/dist/native.js +1 -1
- package/dist/nativeScenes.d.ts +3 -0
- package/dist/solverPipeline.d.ts +62 -0
- package/docs/BABYLON_API.md +8 -0
- package/docs/README.md +465 -459
- package/docs/RELEASE.md +176 -122
- package/package.json +124 -116
- package/tests/README.md +218 -168
package/docs/RELEASE.md
CHANGED
|
@@ -1,122 +1,176 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
AVBD 0.
|
|
4
|
-
portable scene builders and the browser demos. The package ships ESM, the `AVBD`
|
|
5
|
-
browser global, declarations, documentation and license notices. It has no runtime
|
|
6
|
-
dependencies; Babylon 9 is an optional peer for the integration API.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
`npm run
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
package
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
1
|
+
# Release checks
|
|
2
|
+
|
|
3
|
+
AVBD 0.2 provides GPU rigid-body physics in 2D and 3D, the Babylon aggregate API,
|
|
4
|
+
portable scene builders and the browser demos. The package ships ESM, the `AVBD`
|
|
5
|
+
browser global, declarations, documentation and license notices. It has no runtime
|
|
6
|
+
dependencies; Babylon 9 is an optional peer for the integration API.
|
|
7
|
+
|
|
8
|
+
Native 2D and 3D worlds select WebGPU or CPU at initialization and share
|
|
9
|
+
the scene and body APIs. The Babylon aggregate API uses WebGPU; native CPU
|
|
10
|
+
worlds can use Babylon drawing with synchronized poses. The experimental
|
|
11
|
+
WebGL2 implementation remains in the repository demos and benchmarks; it is
|
|
12
|
+
excluded from package exports, declarations and both production bundles.
|
|
13
|
+
Build and package checks enforce that separation. Its measured performance
|
|
14
|
+
was too poor for production; the README preserves the comparison.
|
|
15
|
+
|
|
16
|
+
## Validate the package
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
npm ci
|
|
20
|
+
npm run build:all
|
|
21
|
+
npm run test:complete
|
|
22
|
+
npm run test:web
|
|
23
|
+
npm run test:compatibility
|
|
24
|
+
npm run clean:results
|
|
25
|
+
npm run clean:dist
|
|
26
|
+
npm pack
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`test:complete` checks pinned sources, real GPU physics, the packed package,
|
|
30
|
+
public TypeScript usage and executable README examples. `test:web` checks the
|
|
31
|
+
playable scenes, screenshots, controls and reports. A Chromium browser with
|
|
32
|
+
WebGPU is required for GPU tests; unsupported hardware fails explicitly. GPU
|
|
33
|
+
workloads run sequentially. Type and packaging checks do not need a GPU.
|
|
34
|
+
|
|
35
|
+
Run `npm run test:mobile-contacts` for the 3D floor-contact portability checks,
|
|
36
|
+
including eight/nine storage-buffer limits and both renderers in a mobile layout.
|
|
37
|
+
The layout checks use the test computer's GPU. Test the hosted demo on actual
|
|
38
|
+
phones as well; its **GPU contact check** sidebar can save a diagnostic report
|
|
39
|
+
with floor-contact results, browser details and device limits. Failed devices
|
|
40
|
+
test alternatives for contact data/calculations, work sharing and collision search.
|
|
41
|
+
A fallback is used only after its known-overlap and falling-shape checks pass.
|
|
42
|
+
GPUs that pass the normal path keep the batched execution and automatic scene
|
|
43
|
+
selection. The diagnostic report compares the contact inputs, stabilization
|
|
44
|
+
setting and calculated forces on the GPU.
|
|
45
|
+
|
|
46
|
+
For an authorized connected Android phone, start the local demo, unlock the phone
|
|
47
|
+
and open a canonical scene in its browser. Forward the browser debugging socket
|
|
48
|
+
and reverse the demo port with ADB:
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
adb reverse tcp:8080 tcp:8080
|
|
52
|
+
adb forward tcp:9223 localabstract:chrome_devtools_remote
|
|
53
|
+
node scripts/check-connected-contacts.mjs
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This checks physical-device floor contacts, 2D/3D package features and both 3D
|
|
57
|
+
collision searches. It uses only the existing local demo tab and saves
|
|
58
|
+
`test-results/connected-phone-contacts.json`. Mobile viewport tests and physical
|
|
59
|
+
phone tests have separate reports.
|
|
60
|
+
|
|
61
|
+
To compare PC performance with a saved package build, run
|
|
62
|
+
`node scripts/check-contact-performance.mjs --baseline=/path/to/avbd.js`.
|
|
63
|
+
It runs 10K and 100K native 3D bodies with five iterations, three alternating
|
|
64
|
+
repeats and no rendering or sleeping. It checks identical dispatch sequences,
|
|
65
|
+
matching selected physics states, GPU times and CPU submission times.
|
|
66
|
+
|
|
67
|
+
Run `npm run benchmark:native` to refresh the three-repeat 2D/3D measurements
|
|
68
|
+
for bulk movement/spin, property edits, grouped queries, selected reads and
|
|
69
|
+
sleeping. The browser performance page uses the same package APIs as the demos.
|
|
70
|
+
Measured edit records and query hits must match before results are accepted.
|
|
71
|
+
API timings exclude solving and drawing; scene benchmarks report those costs
|
|
72
|
+
separately.
|
|
73
|
+
|
|
74
|
+
Run `npm run test:renderers` to check Babylon drawing for every canonical
|
|
75
|
+
scene and the slingshot. Refresh the saved renderer comparison with
|
|
76
|
+
`npm run benchmark:renderers -- --all`, with other GPU workloads closed.
|
|
77
|
+
This compares direct WebGPU and Babylon on identical physics states and
|
|
78
|
+
reports drawing, GPU copies and CPU work separately. Keep the generated
|
|
79
|
+
renderer report, measurements and linked screenshots when hosting the demos.
|
|
80
|
+
|
|
81
|
+
Release builds omit source maps. Use `--sourcemap` for local debugging; maps
|
|
82
|
+
are excluded from the npm package. Website bundles import the Babylon
|
|
83
|
+
components used by the demos, including their shader and rendering
|
|
84
|
+
registrations. All demo routes and effects remain available.
|
|
85
|
+
|
|
86
|
+
Run cleanup after validation. `clean:results` keeps reports, screenshots linked
|
|
87
|
+
from reports or the README, measurement inputs and current validation summaries. `clean:dist`
|
|
88
|
+
keeps package outputs and assets referenced by every browser page, including
|
|
89
|
+
the GPU test page; it removes generated test wrappers and local debug maps.
|
|
90
|
+
Both commands check their target paths and operate within their output folders.
|
|
91
|
+
Preview either cleanup with `node scripts/clean-results.mjs` or
|
|
92
|
+
`node scripts/clean-dist.mjs`.
|
|
93
|
+
|
|
94
|
+
The package check installs the tarball in a temporary project and imports it
|
|
95
|
+
without Babylon or a DOM. It verifies the production file list, both builds,
|
|
96
|
+
optional-peer behavior, strict portable TypeScript usage and upstream notices.
|
|
97
|
+
|
|
98
|
+
After publishing, run `npm run test:published -- 0.2.0` to verify the registry
|
|
99
|
+
release. This installs the exact version in a fresh temporary project, verifies
|
|
100
|
+
its registry integrity, imports ESM/native and browser-global exports, checks
|
|
101
|
+
TypeScript usage, and runs the GPU package feature tests with Babylon installed
|
|
102
|
+
explicitly for those integration checks. It uses the downloaded package rather
|
|
103
|
+
than a local build and saves `test-results/published-package.json`.
|
|
104
|
+
`avbd-babylon/native` provides portable imports without Babylon type dependencies.
|
|
105
|
+
Packed files exclude the website,
|
|
106
|
+
benchmark outputs, test fixtures, development tools and dependency directories.
|
|
107
|
+
The explicit `package.json` file list and `.npmignore` keep those files out of
|
|
108
|
+
the npm tarball. They remain in the repository so the complete multi-page demo
|
|
109
|
+
and saved reports can be hosted separately.
|
|
110
|
+
|
|
111
|
+
For browser hosting, serve the complete website output and its pages/assets,
|
|
112
|
+
not only `index.html`. `tests/performance.html` is a separate page. Generated
|
|
113
|
+
reports live under `test-results/`; include them deliberately if publishing
|
|
114
|
+
premade results. Those saved results identify the RTX 4070 Laptop GPU. Live
|
|
115
|
+
benchmarks measure the visitor's machine. The paper's desktop RTX 4090 figures
|
|
116
|
+
are separate comparisons with different hardware and reconstructed workloads.
|
|
117
|
+
|
|
118
|
+
The repository's `netlify.toml` runs `npm run build:all` and publishes the root,
|
|
119
|
+
so the demo, benchmark pages, assets and reports stay available. `npm run build`
|
|
120
|
+
builds the npm library only; use `npm run build:all` or `npm run build:web` before
|
|
121
|
+
a manual website upload. Push the Netlify configuration and source changes,
|
|
122
|
+
then redeploy. Clearing browser data cannot update an older deployed bundle.
|
|
123
|
+
|
|
124
|
+
## Publish 0.2.0
|
|
125
|
+
|
|
126
|
+
Push the sources, documentation and `test-results/` screenshots to the public
|
|
127
|
+
[repository](https://github.com/joshbrew/babylon-avbd) before publishing npm.
|
|
128
|
+
The README uses relative paths for images and result files, so they resolve in
|
|
129
|
+
the repository and local editors. Those assets stay outside the npm tarball.
|
|
130
|
+
The package's `prepack` script builds both ESM and
|
|
131
|
+
the browser global automatically.
|
|
132
|
+
|
|
133
|
+
```sh
|
|
134
|
+
npm login
|
|
135
|
+
npm publish --access public
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
In Windows PowerShell, use `npm.cmd login` and `npm.cmd publish --access public`
|
|
139
|
+
if the PowerShell npm launcher is unavailable.
|
|
140
|
+
|
|
141
|
+
The npm account must be allowed to publish `avbd-babylon`. Successful local
|
|
142
|
+
package checks do not log in or publish a release.
|
|
143
|
+
|
|
144
|
+
## API scope
|
|
145
|
+
|
|
146
|
+
Both dimensions support boxes, rounded primitives, convex hulls, friction,
|
|
147
|
+
bounce, masks, sensors, queries, body commands and constraints. 3D has Babylon
|
|
148
|
+
aggregates, sleeping, hinge angle stops, ropes, ragdolls and fabric helpers.
|
|
149
|
+
2D has sleeping, hinge angle stops, portable builders, disposable joints/springs/motors and Babylon scene
|
|
150
|
+
attachment for timing and cleanup. Attachment does not create rendering meshes.
|
|
151
|
+
See the [feature table](../README.md#feature-coverage) for exact coverage.
|
|
152
|
+
|
|
153
|
+
These remain useful follow-up work rather than supported 0.2 features:
|
|
154
|
+
|
|
155
|
+
- **Concave mesh collisions:** custom hulls fill cavities. Terrain and hollow
|
|
156
|
+
objects need suitable convex pieces.
|
|
157
|
+
- **Continuous collision detection:** contacts are discrete. Use smaller
|
|
158
|
+
timesteps for fast objects; sphere/circle casts are queries, not automatic CCD.
|
|
159
|
+
- **Full Babylon Physics V2 integration:** use AVBD aggregates, not
|
|
160
|
+
`scene.enablePhysics()` with a Havok plugin.
|
|
161
|
+
|
|
162
|
+
## Ownership and failure handling
|
|
163
|
+
|
|
164
|
+
Dispose aggregate/constraint handles when removing them. Disposing a Babylon
|
|
165
|
+
scene releases its attached world; portable solvers use `destroy()`. Caller-owned
|
|
166
|
+
devices remain caller-owned. GPU device loss stops the Babylon loop and reports
|
|
167
|
+
the reason; resume with a new device and world.
|
|
168
|
+
|
|
169
|
+
Incomplete collision storage or conflicting solve groups hold physics poses
|
|
170
|
+
and joint forces. Inspect `readCounters()` and use `adapt()` to recover capacity.
|
|
171
|
+
Such a held step is a reported failure, not a successful simulation step. Zero
|
|
172
|
+
overflow and zero conflicts are required in release benchmark results.
|
|
173
|
+
|
|
174
|
+
The MIT package license and upstream notices ship with the tarball. Attribution
|
|
175
|
+
includes Steven Bobyn, Chris Giles and Erin Catto; pinned upstream files remain
|
|
176
|
+
unchanged.
|
package/package.json
CHANGED
|
@@ -1,116 +1,124 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "avbd-babylon",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "GPU AVBD rigid-body physics with a Babylon.js aggregate API",
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
"
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "avbd-babylon",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "GPU AVBD rigid-body physics with a Babylon.js aggregate API",
|
|
5
|
+
"main": "./dist/avbd.js",
|
|
6
|
+
"types": "./dist/avbd.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"start": "node scripts/build-library.mjs && node scripts/build.mjs --serve",
|
|
10
|
+
"build": "node scripts/build-library.mjs",
|
|
11
|
+
"build:cdn": "node scripts/build-library.mjs --cdn",
|
|
12
|
+
"build:web": "node scripts/build.mjs",
|
|
13
|
+
"build:all": "node scripts/build-library.mjs && node scripts/build-library.mjs --cdn && node scripts/build.mjs",
|
|
14
|
+
"prepack": "node scripts/build-library.mjs && node scripts/build-library.mjs --cdn",
|
|
15
|
+
"test": "node scripts/test-gpu.mjs",
|
|
16
|
+
"test:reference": "node --experimental-transform-types --test reference/three-avbd/tests/*.test.ts",
|
|
17
|
+
"test:gpu": "node scripts/test-gpu.mjs",
|
|
18
|
+
"test:all": "node scripts/test-all.mjs",
|
|
19
|
+
"test:complete": "node scripts/test-all.mjs --strict",
|
|
20
|
+
"test:scenes": "node scripts/build.mjs && node scripts/check-scenes.mjs",
|
|
21
|
+
"test:rook": "node scripts/build.mjs && node scripts/check-rook.mjs",
|
|
22
|
+
"test:screenshots": "node scripts/screenshot-contact-sheet.mjs",
|
|
23
|
+
"test:web": "node scripts/test-web.mjs",
|
|
24
|
+
"test:benchmarks": "node scripts/build.mjs && node scripts/check-benchmark-scenes.mjs",
|
|
25
|
+
"test:showcase": "node scripts/build.mjs && node scripts/check-showcase-motion.mjs",
|
|
26
|
+
"test:cloth": "node scripts/build.mjs && node scripts/check-ragdoll-net.mjs && node scripts/check-tearable-cloth.mjs && node scripts/check-cloth-fragments.mjs",
|
|
27
|
+
"test:controls": "node scripts/build.mjs && node scripts/check-controls.mjs",
|
|
28
|
+
"test:castle": "node scripts/build.mjs && node scripts/check-castle.mjs && node scripts/check-castle-layout.mjs",
|
|
29
|
+
"test:features": "node scripts/build.mjs && node scripts/check-feature-scenes.mjs",
|
|
30
|
+
"test:renderers": "node scripts/build.mjs && node scripts/check-babylon-renderer.mjs --all && node scripts/benchmark-renderers.mjs --quick",
|
|
31
|
+
"test:fracture": "node scripts/build.mjs && node scripts/check-voronoi-fracture.mjs",
|
|
32
|
+
"clean:results": "node scripts/clean-results.mjs --apply",
|
|
33
|
+
"clean:dist": "node scripts/clean-dist.mjs --apply",
|
|
34
|
+
"test:package": "node scripts/check-package.mjs",
|
|
35
|
+
"test:published": "node scripts/check-published.mjs",
|
|
36
|
+
"test:mobile-contacts": "node scripts/build.mjs && node scripts/check-contact-portability.mjs && node scripts/check-contact-compatibility-features.mjs",
|
|
37
|
+
"test:types": "tsc --noEmit --strict --skipLibCheck --module nodenext --target es2022 tests/package-api-types.ts",
|
|
38
|
+
"test:cpu": "node scripts/build.mjs && node scripts/check-cpu-demos.mjs && node scripts/check-cpu-features.mjs && node scripts/check-cpu-slingshot.mjs",
|
|
39
|
+
"test:webgl-collisions": "node scripts/check-webgl-broadphase.mjs && node --experimental-transform-types scripts/check-webgl-contacts.mjs",
|
|
40
|
+
"test:webgl": "npm run test:webgl-collisions && node scripts/check-webgl-coloring.mjs && node --experimental-transform-types scripts/check-webgl-solve.mjs && node --experimental-transform-types scripts/check-webgl-world.mjs && node --experimental-transform-types scripts/check-webgl-edits.mjs && node --experimental-transform-types scripts/check-webgl-bounce.mjs && node --experimental-transform-types scripts/check-webgl-sleeping.mjs && node scripts/check-webgl-scene-behavior.mjs && node scripts/check-backend-contract.mjs --webgl2",
|
|
41
|
+
"test:compatibility": "npm run build:all && node scripts/check-backend-contract.mjs --package && npm run test:cpu && npm run test:webgl && npm run test:webgl-scenes && npm run test:compatibility-performance",
|
|
42
|
+
"test:pipelines": "node scripts/check-backend-contract.mjs",
|
|
43
|
+
"benchmark:backends": "node scripts/build.mjs && node scripts/benchmark-backends.mjs",
|
|
44
|
+
"benchmark:native": "node scripts/benchmark-package.mjs",
|
|
45
|
+
"benchmark:sleeping": "node scripts/benchmark-package.mjs",
|
|
46
|
+
"benchmark:native-edits": "node scripts/check-native-performance.mjs",
|
|
47
|
+
"benchmark:renderers": "node scripts/build.mjs && node scripts/benchmark-renderers.mjs",
|
|
48
|
+
"test:connected-phone": "node scripts/check-connected-contacts.mjs",
|
|
49
|
+
"test:webgl-scenes": "node scripts/build.mjs && node scripts/check-webgl-demos.mjs",
|
|
50
|
+
"test:compatibility-performance": "node scripts/build.mjs && node scripts/check-compatibility-performance.mjs"
|
|
51
|
+
},
|
|
52
|
+
"license": "MIT",
|
|
53
|
+
"repository": {
|
|
54
|
+
"type": "git",
|
|
55
|
+
"url": "git+https://github.com/joshbrew/babylon-avbd.git"
|
|
56
|
+
},
|
|
57
|
+
"homepage": "https://github.com/joshbrew/babylon-avbd#readme",
|
|
58
|
+
"bugs": {
|
|
59
|
+
"url": "https://github.com/joshbrew/babylon-avbd/issues"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"@babylonjs/core": "^9.13.0"
|
|
63
|
+
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"@babylonjs/core": {
|
|
66
|
+
"optional": true
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"keywords": [
|
|
70
|
+
"avbd",
|
|
71
|
+
"webgpu",
|
|
72
|
+
"physics",
|
|
73
|
+
"babylonjs"
|
|
74
|
+
],
|
|
75
|
+
"devDependencies": {
|
|
76
|
+
"@babylonjs/core": "^9.13.0",
|
|
77
|
+
"esbuild": "^0.28.2",
|
|
78
|
+
"prettier": "^3.9.9",
|
|
79
|
+
"tinybuild": "^1.0.6",
|
|
80
|
+
"typescript": "^7.0.2",
|
|
81
|
+
"wgsl_reflect": "^1.6.0"
|
|
82
|
+
},
|
|
83
|
+
"module": "./dist/avbd.js",
|
|
84
|
+
"exports": {
|
|
85
|
+
".": {
|
|
86
|
+
"types": "./dist/avbd.d.ts",
|
|
87
|
+
"import": "./dist/avbd.js",
|
|
88
|
+
"default": "./dist/avbd.js"
|
|
89
|
+
},
|
|
90
|
+
"./native": {
|
|
91
|
+
"types": "./dist/native.d.ts",
|
|
92
|
+
"import": "./dist/native.js",
|
|
93
|
+
"default": "./dist/native.js"
|
|
94
|
+
},
|
|
95
|
+
"./global": {
|
|
96
|
+
"types": "./dist/avbd.global.d.ts",
|
|
97
|
+
"default": "./dist/avbd.global.js"
|
|
98
|
+
},
|
|
99
|
+
"./package.json": "./package.json"
|
|
100
|
+
},
|
|
101
|
+
"files": [
|
|
102
|
+
"dist/avbd.js",
|
|
103
|
+
"dist/avbd.global.js",
|
|
104
|
+
"dist/avbd.global.d.ts",
|
|
105
|
+
"dist/avbd.d.ts",
|
|
106
|
+
"dist/babylonAvbd.d.ts",
|
|
107
|
+
"dist/nativeScenes.d.ts",
|
|
108
|
+
"dist/native.js",
|
|
109
|
+
"dist/native.d.ts",
|
|
110
|
+
"dist/gpuDevice.d.ts",
|
|
111
|
+
"dist/solverPipeline.d.ts",
|
|
112
|
+
"dist/NOTICE",
|
|
113
|
+
"LICENSE",
|
|
114
|
+
"README.md",
|
|
115
|
+
"docs/README.md",
|
|
116
|
+
"docs/BABYLON_API.md",
|
|
117
|
+
"docs/HPLOC.md",
|
|
118
|
+
"docs/RELEASE.md",
|
|
119
|
+
"tests/README.md"
|
|
120
|
+
],
|
|
121
|
+
"sideEffects": false,
|
|
122
|
+
"unpkg": "./dist/avbd.global.js",
|
|
123
|
+
"jsdelivr": "./dist/avbd.global.js"
|
|
124
|
+
}
|