@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.
Files changed (52) hide show
  1. package/CHANGELOG.md +67 -13
  2. package/README.md +27 -4
  3. package/dist/browser/shader-capture.d.ts +13 -1
  4. package/dist/browser/shader-capture.js +2 -2
  5. package/dist/{browser-smoke-X3NBYPHI.js → browser-smoke-JHZLPGEB.js} +4 -4
  6. package/dist/chunk-3CKEE22B.js +18 -0
  7. package/dist/chunk-65VEJRRT.js +2 -0
  8. package/dist/{chunk-YLN3G2JS.js → chunk-AIAYEDXX.js} +1 -1
  9. package/dist/chunk-FKZT7XLM.js +97 -0
  10. package/dist/{chunk-JMS5NTP7.js → chunk-JHBQB7WC.js} +1 -1
  11. package/dist/{chunk-ILOEBEIQ.js → chunk-L2CZ7RSV.js} +1 -1
  12. package/dist/chunk-NPLE7PPF.js +3 -0
  13. package/dist/chunk-NQIAU3XU.js +17 -0
  14. package/dist/chunk-QJFPNM6W.js +2 -0
  15. package/dist/chunk-TRHSN2DJ.cjs +1 -0
  16. package/dist/chunk-YHHGR2AJ.js +80 -0
  17. package/dist/cli.js +22 -22
  18. package/dist/environment-bake-BGMGFAVK.js +4 -0
  19. package/dist/index.d.ts +41 -8
  20. package/dist/index.js +24 -21
  21. package/dist/{shader-autowire-DCODBFMX.js → shader-autowire-SPE5DM2X.js} +1 -1
  22. package/dist/{shader-browser-ZGPGYM2U.js → shader-browser-523TEBVA.js} +1 -1
  23. package/dist/{shader-browser-FSCRBXJ7.js → shader-browser-YPBP3WQY.js} +1 -1
  24. package/dist/shader-capture-server.d.ts +22 -2
  25. package/dist/shader-capture-server.js +14 -14
  26. package/dist/shader-config-EOFU5D3Y.js +2 -0
  27. package/dist/{shader-project-runner-FJXPTLUO.js → shader-project-runner-S2AID2RJ.js} +1 -1
  28. package/dist/{shader-transform-DSFaVrux.d.ts → shader-transform-D160zMyt.d.ts} +3 -0
  29. package/dist/shader-watch-XY6A2KGQ.js +2 -0
  30. package/dist/shader-workflow-T7W7UHWJ.js +2 -0
  31. package/dist/status-RFA7WAM6.js +2 -0
  32. package/dist/{text-atlas-BHPSDU7C.js → text-atlas-WRYJT3E7.js} +1 -1
  33. package/dist/transform.cjs +1 -1
  34. package/dist/transform.d.ts +1 -1
  35. package/dist/transform.js +1 -1
  36. package/dist/webpack-loader.cjs +1 -1
  37. package/dist/webpack-loader.d.ts +1 -1
  38. package/dist/webpack-loader.js +1 -1
  39. package/package.json +4 -4
  40. package/dist/chunk-4M7M55NS.js +0 -93
  41. package/dist/chunk-5X5NS5EW.js +0 -18
  42. package/dist/chunk-J6OESAZM.js +0 -76
  43. package/dist/chunk-NE7SC2BX.js +0 -2
  44. package/dist/chunk-NEWSG5RX.js +0 -3
  45. package/dist/chunk-PAH76FDD.js +0 -14
  46. package/dist/chunk-PY2ZLMZF.cjs +0 -1
  47. package/dist/chunk-ZDNZCQUQ.js +0 -2
  48. package/dist/environment-bake-5P4IAL4O.js +0 -4
  49. package/dist/shader-config-BYBJUL3C.js +0 -2
  50. package/dist/shader-watch-FVQNE263.js +0 -2
  51. package/dist/shader-workflow-HZWFWHTS.js +0 -2
  52. package/dist/status-TV3G3PG4.js +0 -2
package/CHANGELOG.md CHANGED
@@ -1,31 +1,85 @@
1
1
  # @three-blocks/devtools
2
2
 
3
- ## 1.0.1-alpha.230.g7108d9c53a58
3
+ ## 3.0.0-alpha.280.g945a5d860d58
4
4
 
5
- - Website: Pro now highlights lifetime licensing and tools at $79/month annually or $99 monthly.
5
+ - CLI: New projects return to the shell and prefer Bun for the development command.
6
6
 
7
- - CLI: Deployment status now reports Amplify through GitHub without an AWS login.
7
+ - Devtools: Development stays available when compatible shader receipts predate a version bump.
8
8
 
9
- - Devtools: Pushes now return preprod failures to the active Agent and avoid oversized bundles.
9
+ - Devtools: Headless shader checks ignore automatic favicon misses and allow slow screenshots.
10
10
 
11
- - Devtools: Shader precompilation now hydrates minified builds without preserving constructor names.
11
+ - Library: Gaussian splats now promote still scenes to the fast tile compositor automatically.
12
12
 
13
- - Packages: Three.js 186dev now uses upstream asynchronous compute compilation.
13
+ - Library: Gaussian splats now stage tile-compositor promotion to avoid frame spikes.
14
14
 
15
- - Starter: New projects now use the current runtime without stale shader receipts.
15
+ - Library: Gaussian splats now use faster subgroup sorting when the GPU supports it.
16
16
 
17
- - Tools: Mesh to Splat now ignores render-hidden collections when framing captures.
17
+ - Packages: Benchmarks settle each frame lane before sampling steady-state performance.
18
18
 
19
- - Library: Vertex Animation Video now fails cleanly when numerical tracks cannot be decoded.
19
+ - Packages: Benchmarks now compare GaussianSplats3D under the same standard protocol.
20
20
 
21
- - Packages: Documentation now matches the shipped commands, versions, and ports.
21
+ - Website: Agent docs and llms.txt match the shipped release and cover Baked Motion format 3.
22
22
 
23
- - Website: Checkout now reuses billing profiles and collects tax-ready customer details.
23
+ - Website: Example search now connects every showcased feature to its matching library blocks.
24
24
 
25
- - Website: Preprod billing now explains its read-only state instead of showing broken actions.
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
- `WebGLRenderer` stays on live shader building. `WebGPURenderer` also uses the live path when it selects a WebGL fallback.
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 WebGPU shaders
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 };