@three-blocks/devtools 1.0.1-alpha.230.g7108d9c53a58 → 3.0.0-alpha.280.g945a5d860d58
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/CHANGELOG.md +67 -13
- package/README.md +27 -4
- package/dist/browser/shader-capture.d.ts +13 -1
- package/dist/browser/shader-capture.js +2 -2
- package/dist/{browser-smoke-X3NBYPHI.js → browser-smoke-JHZLPGEB.js} +4 -4
- package/dist/chunk-3CKEE22B.js +18 -0
- package/dist/chunk-65VEJRRT.js +2 -0
- package/dist/{chunk-YLN3G2JS.js → chunk-AIAYEDXX.js} +1 -1
- package/dist/chunk-FKZT7XLM.js +97 -0
- package/dist/{chunk-JMS5NTP7.js → chunk-JHBQB7WC.js} +1 -1
- package/dist/{chunk-ILOEBEIQ.js → chunk-L2CZ7RSV.js} +1 -1
- package/dist/chunk-NPLE7PPF.js +3 -0
- package/dist/chunk-NQIAU3XU.js +17 -0
- package/dist/chunk-QJFPNM6W.js +2 -0
- package/dist/chunk-TRHSN2DJ.cjs +1 -0
- package/dist/chunk-YHHGR2AJ.js +80 -0
- package/dist/cli.js +22 -22
- package/dist/environment-bake-BGMGFAVK.js +4 -0
- package/dist/index.d.ts +41 -8
- package/dist/index.js +24 -21
- package/dist/{shader-autowire-DCODBFMX.js → shader-autowire-SPE5DM2X.js} +1 -1
- package/dist/{shader-browser-ZGPGYM2U.js → shader-browser-523TEBVA.js} +1 -1
- package/dist/{shader-browser-FSCRBXJ7.js → shader-browser-YPBP3WQY.js} +1 -1
- package/dist/shader-capture-server.d.ts +22 -2
- package/dist/shader-capture-server.js +14 -14
- package/dist/shader-config-EOFU5D3Y.js +2 -0
- package/dist/{shader-project-runner-FJXPTLUO.js → shader-project-runner-S2AID2RJ.js} +1 -1
- package/dist/{shader-transform-DSFaVrux.d.ts → shader-transform-D160zMyt.d.ts} +3 -0
- package/dist/shader-watch-XY6A2KGQ.js +2 -0
- package/dist/shader-workflow-T7W7UHWJ.js +2 -0
- package/dist/status-RFA7WAM6.js +2 -0
- package/dist/{text-atlas-BHPSDU7C.js → text-atlas-WRYJT3E7.js} +1 -1
- package/dist/transform.cjs +1 -1
- package/dist/transform.d.ts +1 -1
- package/dist/transform.js +1 -1
- package/dist/webpack-loader.cjs +1 -1
- package/dist/webpack-loader.d.ts +1 -1
- package/dist/webpack-loader.js +1 -1
- package/package.json +4 -4
- package/dist/chunk-4M7M55NS.js +0 -93
- package/dist/chunk-5X5NS5EW.js +0 -18
- package/dist/chunk-J6OESAZM.js +0 -76
- package/dist/chunk-NE7SC2BX.js +0 -2
- package/dist/chunk-NEWSG5RX.js +0 -3
- package/dist/chunk-PAH76FDD.js +0 -14
- package/dist/chunk-PY2ZLMZF.cjs +0 -1
- package/dist/chunk-ZDNZCQUQ.js +0 -2
- package/dist/environment-bake-5P4IAL4O.js +0 -4
- package/dist/shader-config-BYBJUL3C.js +0 -2
- package/dist/shader-watch-FVQNE263.js +0 -2
- package/dist/shader-workflow-HZWFWHTS.js +0 -2
- package/dist/status-TV3G3PG4.js +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,31 +1,85 @@
|
|
|
1
1
|
# @three-blocks/devtools
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 3.0.0-alpha.280.g945a5d860d58
|
|
4
4
|
|
|
5
|
-
-
|
|
5
|
+
- CLI: New projects return to the shell and prefer Bun for the development command.
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- Devtools: Development stays available when compatible shader receipts predate a version bump.
|
|
8
8
|
|
|
9
|
-
- Devtools:
|
|
9
|
+
- Devtools: Headless shader checks ignore automatic favicon misses and allow slow screenshots.
|
|
10
10
|
|
|
11
|
-
-
|
|
11
|
+
- Library: Gaussian splats now promote still scenes to the fast tile compositor automatically.
|
|
12
12
|
|
|
13
|
-
-
|
|
13
|
+
- Library: Gaussian splats now stage tile-compositor promotion to avoid frame spikes.
|
|
14
14
|
|
|
15
|
-
-
|
|
15
|
+
- Library: Gaussian splats now use faster subgroup sorting when the GPU supports it.
|
|
16
16
|
|
|
17
|
-
-
|
|
17
|
+
- Packages: Benchmarks settle each frame lane before sampling steady-state performance.
|
|
18
18
|
|
|
19
|
-
-
|
|
19
|
+
- Packages: Benchmarks now compare GaussianSplats3D under the same standard protocol.
|
|
20
20
|
|
|
21
|
-
-
|
|
21
|
+
- Website: Agent docs and llms.txt match the shipped release and cover Baked Motion format 3.
|
|
22
22
|
|
|
23
|
-
- Website:
|
|
23
|
+
- Website: Example search now connects every showcased feature to its matching library blocks.
|
|
24
24
|
|
|
25
|
-
-
|
|
25
|
+
- Packages: Built from `945a5d860d58`.
|
|
26
26
|
|
|
27
|
-
- Packages: Built from `7108d9c53a58`.
|
|
28
27
|
|
|
28
|
+
## 2.0.0
|
|
29
|
+
|
|
30
|
+
### Minor Changes
|
|
31
|
+
|
|
32
|
+
- beb026f: Packages: Shader tools now capture both backends by default and show backend tests and sizes.
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- a59c7b8: Packages: Documentation now matches the shipped commands, versions, and ports.
|
|
37
|
+
- a59c7b8: Devtools: Shader precompilation now hydrates minified builds without preserving constructor names.
|
|
38
|
+
- b328fab: Packages: Precompiled shaders now preserve deterministic output across more Three.js examples.
|
|
39
|
+
- 0ca530e: Devtools: Shader capture now respects each scene's supported renderer backends.
|
|
40
|
+
- beb026f: Devtools: Precompiled indirect batches now skip redundant shader setup.
|
|
41
|
+
- e8e7e30: Devtools: Shader precompilation now isolates backends and replays shared texture recipes.
|
|
42
|
+
- beb026f: Starter: Fresh projects now avoid unstyled flashes and hydrate every captured startup shader.
|
|
43
|
+
- 9daa49d: Packages: Three.js 186dev now uses upstream asynchronous compute compilation.
|
|
44
|
+
- Updated dependencies [beb026f]
|
|
45
|
+
- Updated dependencies [967a0ee]
|
|
46
|
+
- Updated dependencies [967a0ee]
|
|
47
|
+
- Updated dependencies [96be509]
|
|
48
|
+
- Updated dependencies [96be509]
|
|
49
|
+
- Updated dependencies [967a0ee]
|
|
50
|
+
- Updated dependencies [96be509]
|
|
51
|
+
- Updated dependencies [96be509]
|
|
52
|
+
- Updated dependencies [96be509]
|
|
53
|
+
- Updated dependencies [967a0ee]
|
|
54
|
+
- Updated dependencies [96be509]
|
|
55
|
+
- Updated dependencies [967a0ee]
|
|
56
|
+
- Updated dependencies [beb026f]
|
|
57
|
+
- Updated dependencies [0c23333]
|
|
58
|
+
- Updated dependencies [e8e7e30]
|
|
59
|
+
- Updated dependencies [a59c7b8]
|
|
60
|
+
- Updated dependencies [beb026f]
|
|
61
|
+
- Updated dependencies [967a0ee]
|
|
62
|
+
- Updated dependencies [8bd64d6]
|
|
63
|
+
- Updated dependencies [a59c7b8]
|
|
64
|
+
- Updated dependencies [967a0ee]
|
|
65
|
+
- Updated dependencies [b328fab]
|
|
66
|
+
- Updated dependencies [0ca530e]
|
|
67
|
+
- Updated dependencies [beb026f]
|
|
68
|
+
- Updated dependencies [8bd64d6]
|
|
69
|
+
- Updated dependencies [e8e7e30]
|
|
70
|
+
- Updated dependencies [967a0ee]
|
|
71
|
+
- Updated dependencies [0ca530e]
|
|
72
|
+
- Updated dependencies [967a0ee]
|
|
73
|
+
- Updated dependencies [9daa49d]
|
|
74
|
+
- Updated dependencies [9daa49d]
|
|
75
|
+
- Updated dependencies [beb026f]
|
|
76
|
+
- Updated dependencies [9daa49d]
|
|
77
|
+
- Updated dependencies [967a0ee]
|
|
78
|
+
- Updated dependencies [967a0ee]
|
|
79
|
+
- Updated dependencies [74a7597]
|
|
80
|
+
- Updated dependencies [0c23333]
|
|
81
|
+
- Updated dependencies [e8e7e30]
|
|
82
|
+
- three-blocks@0.3.0
|
|
29
83
|
|
|
30
84
|
## 1.0.0
|
|
31
85
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @three-blocks/devtools
|
|
2
2
|
|
|
3
|
-
`@three-blocks/devtools` is the public, account-free command engine behind `npx three-blocks`. It captures and verifies WebGPU shaders, generates text atlases, bakes environment lighting, and checks browser integrations. The runtime overlay and shader hydrator ship from `three-blocks/devtools` and `three-blocks/shaders` in the core package.
|
|
3
|
+
`@three-blocks/devtools` is the public, account-free command engine behind `npx three-blocks`. It captures and verifies WebGPU shaders and eligible shaders from `WebGPURenderer`'s WebGL fallback, generates text atlases, bakes environment lighting, and checks browser integrations. The runtime overlay and shader hydrator ship from `three-blocks/devtools` and `three-blocks/shaders` in the core package.
|
|
4
4
|
|
|
5
5
|
## Add Devtools to a Vite app
|
|
6
6
|
|
|
@@ -43,7 +43,29 @@ Use `--driver static --serve build_directory` for a nonstandard build directory.
|
|
|
43
43
|
|
|
44
44
|
The overlay changes from **Live** to **Precompiled** after a fresh capture loads. Each capture writes a receipt-matched estimate to `.three-blocks/shaders/timing.local.json`; `--commit-timing` also writes a shareable, hardware-labelled `timing.json`. `shaders test` replaces the local estimate with a median from repeated runs. The overlay reports skipped Three Shading Language (TSL) builds and estimated TSL work avoided only while timing matches the current receipt.
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
The default capture backend is `both`. Set `"backend": "webgpu"` or `"backend":
|
|
47
|
+
"webgl"` to keep one lane, or select a lane explicitly:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npx three-blocks shaders capture --backend both
|
|
51
|
+
npx three-blocks shaders test --parity-only --backend webgl
|
|
52
|
+
npx three-blocks shaders status --check --backend webgl
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Artifacts are symmetric: `.three-blocks/shaders/<scene>.<backend>.ts` and
|
|
56
|
+
`public/three-blocks/shaders/<scene>.<backend>.json`. The receipt reports
|
|
57
|
+
freshness per scene/backend, and the runtime loads only the active renderer's
|
|
58
|
+
manifest.
|
|
59
|
+
|
|
60
|
+
During development, the overlay's compact WebGPU/WebGL control reloads the page
|
|
61
|
+
against either precompiled lane and reports the pooled WGSL/GLSL source size.
|
|
62
|
+
|
|
63
|
+
This supports `WebGPURenderer` when it selects Three's WebGL fallback backend;
|
|
64
|
+
the legacy standalone `WebGLRenderer` remains outside the provider seam.
|
|
65
|
+
WebGL precompilation is render-only: compute, storage-buffer writes, subgroups,
|
|
66
|
+
and PBO-backed storage reads stay on the live path with one warning. Required
|
|
67
|
+
GLSL extensions are checked before hydration, so a capture from SwiftShader
|
|
68
|
+
falls live instead of using incompatible source on another device.
|
|
47
69
|
|
|
48
70
|
### Three.js r185 compatibility patch
|
|
49
71
|
|
|
@@ -119,7 +141,7 @@ Use `npx three-blocks` in applications. This package also exposes `three-blocks-
|
|
|
119
141
|
|
|
120
142
|
All commands support `--json` and `--reporter json`. `status` reads generated `three-blocks.json` metadata when present; adopted projects need only their shader or text configuration. Static status validates committed artifacts, compatibility versions, the installed `three-blocks/shaders` runtime closure, and discovered shader inputs. Browser evidence comes from the last `browser smoke` run and remains a dated verification, not live state.
|
|
121
143
|
|
|
122
|
-
### Precompile
|
|
144
|
+
### Precompile renderer shaders
|
|
123
145
|
|
|
124
146
|
```bash
|
|
125
147
|
npx three-blocks shaders status --check
|
|
@@ -134,6 +156,7 @@ Add `three-blocks.shaders.json` when the project needs multiple routes, a semant
|
|
|
134
156
|
```json
|
|
135
157
|
{
|
|
136
158
|
"schemaVersion": 1,
|
|
159
|
+
"backend": "both",
|
|
137
160
|
"scenes": [
|
|
138
161
|
{ "key": "main", "url": "/" },
|
|
139
162
|
{ "key": "text", "url": "/text", "requiresText": true }
|
|
@@ -144,7 +167,7 @@ Add `three-blocks.shaders.json` when the project needs multiple routes, a semant
|
|
|
144
167
|
|
|
145
168
|
Readiness is optional. Its global may be `true` or a promise; a selector is also supported. With no override, the engine waits for its settled-frame and first-frame contract and assumes nothing about the application DOM.
|
|
146
169
|
|
|
147
|
-
Capture observes real render and compute `NodeBuilder` states, then writes a deterministic pooled v3 manifest. The generated application owns no capture harness, and the tooling never writes to `node_modules`. Missing keys, stale receipts, unsupported Three.js versions, and hydration mismatches fail closed to live shader building.
|
|
170
|
+
Capture observes real render and compute `NodeBuilder` states, then writes a deterministic pooled v3 manifest. WebGL receipts include render states and explicit live-fallback reasons for unsupported compute or PBO storage reads. The generated application owns no capture harness, and the tooling never writes to `node_modules`. Missing keys, stale receipts, unsupported Three.js versions, unavailable GLSL extensions, and hydration mismatches fail closed to live shader building.
|
|
148
171
|
|
|
149
172
|
Artifact writes are transactional. `meta.json` records runtime, tool, schema, source-input, byte, and stage-coverage evidence. Relevant source changes during capture abort the write, and failures preserve the prior committed receipt. Explicit stable keys remain the clearest choice for conditional capture matrices; otherwise, capture assigns deterministic scene-scoped keys. Set `allowLiveBuilds: false` when every build must belong to the declared matrix.
|
|
150
173
|
|
|
@@ -5,9 +5,19 @@ interface ShaderCaptureReadiness {
|
|
|
5
5
|
interface ShaderCaptureRuntimeConfiguration {
|
|
6
6
|
readonly capture: boolean;
|
|
7
7
|
readonly forceLive: boolean;
|
|
8
|
+
/** Renderer backend owned by this capture lane. Omitted for ambient overlay instrumentation. */
|
|
9
|
+
readonly backend?: 'webgpu' | 'webgl';
|
|
10
|
+
/** Instrument a browser-driver observation without writing a capture or forcing live misses. */
|
|
11
|
+
readonly driven?: boolean;
|
|
8
12
|
readonly settleFrames: number;
|
|
9
13
|
/** Maximum visible settle time after readiness before capture posts, regardless of late builds. */
|
|
10
14
|
readonly settleTimeoutMs?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Absolute epoch deadline at which a driven capture must begin its manifest
|
|
17
|
+
* write, reserving driver time for payload validation, the transactional
|
|
18
|
+
* write, and timeout diagnostics before the outer lane budget expires.
|
|
19
|
+
*/
|
|
20
|
+
readonly deadlineAt?: number;
|
|
11
21
|
/** Pause the settle countdown while an interactive capture tab is hidden. */
|
|
12
22
|
readonly visibilityGuard?: boolean;
|
|
13
23
|
/** Overlay-capture session identity. Omitted by the driven browser capture. */
|
|
@@ -40,6 +50,8 @@ declare function instrumentThreeBlocksShaderBuilder(builderValue: unknown, rende
|
|
|
40
50
|
declare function recordThreeBlocksShaderBuild(builderValue: unknown, rendererValue: unknown): void;
|
|
41
51
|
/** Called at the top of r185 getForRender/getForCompute before provider lookup. */
|
|
42
52
|
declare function prepareThreeBlocksShaderRenderer(rendererValue: unknown, namespaceValue?: unknown, revisionValue?: unknown): void;
|
|
53
|
+
/** Synchronous view of this lane's demand journal for driver diagnostics. */
|
|
54
|
+
declare function readThreeBlocksShaderDemands(): readonly UnknownRecord[];
|
|
43
55
|
declare function pageLoadingIsComplete(root: UnknownRecord, readiness?: ShaderCaptureReadiness): boolean;
|
|
44
56
|
|
|
45
|
-
export { activeShaderCaptureScene, capturedBindingKind, configureThreeBlocksShaderCapture, instrumentThreeBlocksShaderBuilder, pageLoadingIsComplete, prepareThreeBlocksShaderRenderer, recordThreeBlocksShaderBuild, wrapThreeBlocksCaptureTimedBuild };
|
|
57
|
+
export { activeShaderCaptureScene, capturedBindingKind, configureThreeBlocksShaderCapture, instrumentThreeBlocksShaderBuilder, pageLoadingIsComplete, prepareThreeBlocksShaderRenderer, readThreeBlocksShaderDemands, recordThreeBlocksShaderBuild, wrapThreeBlocksCaptureTimedBuild };
|