create-three-blocks-starter 0.4.1 → 0.4.2-alpha.314.g989237b8fb54
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 +33 -0
- package/dist/constants.js +1 -1
- package/dist/generate.js +1 -1
- package/package.json +5 -1
- package/template-assets/shaders/scene/meta.json +72 -72
- package/template-assets/shaders/scene/scene.webgl.ts +1 -1
- package/template-assets/shaders/scene/scene.webgpu.ts +1 -1
- package/template-assets/shaders/scene/timing.json +26 -26
- package/template-assets/shaders/text/meta.json +72 -72
- package/template-assets/shaders/text/text.webgl.ts +1 -1
- package/template-assets/shaders/text/text.webgpu.ts +1 -1
- package/template-assets/shaders/text/timing.json +26 -26
- package/templates/core/src/main.ts +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# create-three-blocks-starter
|
|
2
2
|
|
|
3
|
+
## 0.4.2-alpha.314.g989237b8fb54
|
|
4
|
+
|
|
5
|
+
- Website: The home setup story now presents the starter, AI skill, and Pro Tools clearly.
|
|
6
|
+
|
|
7
|
+
- Website: The home page now shows the current Three Blocks version.
|
|
8
|
+
|
|
9
|
+
- Website: Email sign-in is open to everyone without a waitlist gate.
|
|
10
|
+
|
|
11
|
+
- Website: Checkout now charges the displayed Pro price for each billing period.
|
|
12
|
+
|
|
13
|
+
- Website: Device authorization waits until the page is ready before accepting clicks.
|
|
14
|
+
|
|
15
|
+
- Website: Mobile examples now retain their intended rendering resolution.
|
|
16
|
+
|
|
17
|
+
- Website: Login now shows the runnable npx command for signing in from a terminal.
|
|
18
|
+
|
|
19
|
+
- Website: Example captions now stay compact on mobile and match the site on desktop.
|
|
20
|
+
|
|
21
|
+
- Library: Baked Motion holds the last complete view while streamed samples load.
|
|
22
|
+
|
|
23
|
+
- Devtools: Long-running commands now show static progress instead of a spinning indicator.
|
|
24
|
+
|
|
25
|
+
- Devtools: Asset optimization compresses models and textures and tracks reusable outputs.
|
|
26
|
+
|
|
27
|
+
- Packages: MSDF text stays crisp and color-accurate across display resolutions.
|
|
28
|
+
|
|
29
|
+
- CLI: Asset optimization adds Vite config status for project models and textures.
|
|
30
|
+
|
|
31
|
+
- CLI: Blender sign-in now tolerates twenty times more redirects before asking you to retry.
|
|
32
|
+
|
|
33
|
+
- Packages: Built from `989237b8fb54`.
|
|
34
|
+
|
|
35
|
+
|
|
3
36
|
## 0.4.1
|
|
4
37
|
|
|
5
38
|
### Patch Changes
|
package/dist/constants.js
CHANGED
|
@@ -9,7 +9,7 @@ export const GENERATOR_VERSION = (() => {
|
|
|
9
9
|
export const RESULT_PROTOCOL_VERSION = 1;
|
|
10
10
|
export const COMPATIBILITY_VERSIONS = Object.freeze({
|
|
11
11
|
three: '0.185.1',
|
|
12
|
-
threeBlocks: '0.
|
|
12
|
+
threeBlocks: '0.5.0-alpha.314.g989237b8fb54',
|
|
13
13
|
lenis: '1.3.25',
|
|
14
14
|
statsGl: '4.2.3',
|
|
15
15
|
});
|
package/dist/generate.js
CHANGED
|
@@ -148,7 +148,7 @@ async function writeResultFile(resultFile, result) {
|
|
|
148
148
|
throw error;
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
const DEVTOOLS_SPECIFIER = '@three-blocks/devtools
|
|
151
|
+
const DEVTOOLS_SPECIFIER = '@three-blocks/devtools@4.0.0-alpha.314.g989237b8fb54';
|
|
152
152
|
/**
|
|
153
153
|
* Best-effort devDependency: a project-local `@three-blocks/devtools` makes
|
|
154
154
|
* `three-blocks status`, shader capture, and browser smoke instant, offline,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-three-blocks-starter",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2-alpha.314.g989237b8fb54",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Create a typed, worker-first Three Blocks project",
|
|
@@ -61,5 +61,9 @@
|
|
|
61
61
|
"typescript": "^5.9.3",
|
|
62
62
|
"typescript-eslint": "^8.62.1",
|
|
63
63
|
"vitest": "^4.1.8"
|
|
64
|
+
},
|
|
65
|
+
"threeBlocks": {
|
|
66
|
+
"channel": "alpha",
|
|
67
|
+
"site": "https://preprod.threejs-blocks.com"
|
|
64
68
|
}
|
|
65
69
|
}
|
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
2
|
+
"runtime": {
|
|
3
|
+
"capture": {
|
|
4
|
+
"adapter": "WebGPU adapter",
|
|
5
|
+
"features": [],
|
|
6
|
+
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/149.0.7827.55 Safari/537.36"
|
|
7
|
+
},
|
|
8
|
+
"three": "0.185.1",
|
|
9
|
+
"threeBlocks": "0.5.0-alpha.314.g989237b8fb54",
|
|
10
|
+
"threeBlocksShaderClosure": "64e2e021698f0bbb6e72c59c6112fa003450b50938cd226626eaaae0886dcb00"
|
|
11
|
+
},
|
|
12
|
+
"scenes": {
|
|
13
|
+
"scene": {
|
|
14
|
+
"artifact": "scene.webgpu.ts",
|
|
15
|
+
"artifactHash": "6165b757aa9cc505de60c81e6fae24249f4bc77451475b5c204d0739f2e059fd",
|
|
16
|
+
"asset": "three-blocks/shaders/scene.webgpu.json",
|
|
17
|
+
"assetHash": "b0d70e6ffadaf379deb3fb6a77ffaebe6c888b4208a732c795322da18cafb1e3",
|
|
18
|
+
"backend": "webgpu",
|
|
19
|
+
"bytes": 73895,
|
|
20
|
+
"coverage": {
|
|
21
|
+
"compute": 0,
|
|
22
|
+
"fragment": 6,
|
|
23
|
+
"render": 6,
|
|
24
|
+
"vertex": 6
|
|
25
|
+
},
|
|
26
|
+
"inputs": {
|
|
27
|
+
"src/assets.ts": "ec86aea62751663409bd59264ddd53f028ae716ede15a30bc699d10ea175a5ca",
|
|
28
|
+
"src/look.ts": "c0639402db78e361efb099d5c775246bde7b76050fac0958fc9b7db0d0b1bd5a",
|
|
29
|
+
"src/scene.ts": "f5ea470cb0a169221e1fd57bf9623c1c211abb32da5cb7d98bf25740794ada4b"
|
|
30
|
+
},
|
|
31
|
+
"skipped": {
|
|
32
|
+
"compute": 0,
|
|
33
|
+
"render": 0
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"scene.webgl": {
|
|
37
|
+
"artifact": "scene.webgl.ts",
|
|
38
|
+
"artifactHash": "359cf35e8fc333fba07ccfb8a8325db3352ead4b456e9e63880c657f6f4a2b81",
|
|
39
|
+
"asset": "three-blocks/shaders/scene.webgl.json",
|
|
40
|
+
"assetHash": "b91ad81c9e47ad818f972e63dd57bf7a0321ba89c5048905fe6cb02bb15ea1ba",
|
|
41
|
+
"backend": "webgl",
|
|
42
|
+
"bytes": 106898,
|
|
43
|
+
"coverage": {
|
|
44
|
+
"compute": 0,
|
|
45
|
+
"fragment": 6,
|
|
46
|
+
"render": 6,
|
|
47
|
+
"vertex": 6
|
|
48
|
+
},
|
|
49
|
+
"inputs": {
|
|
50
|
+
"src/assets.ts": "ec86aea62751663409bd59264ddd53f028ae716ede15a30bc699d10ea175a5ca",
|
|
51
|
+
"src/look.ts": "c0639402db78e361efb099d5c775246bde7b76050fac0958fc9b7db0d0b1bd5a",
|
|
52
|
+
"src/scene.ts": "f5ea470cb0a169221e1fd57bf9623c1c211abb32da5cb7d98bf25740794ada4b"
|
|
53
|
+
},
|
|
54
|
+
"skipped": {
|
|
55
|
+
"compute": 0,
|
|
56
|
+
"render": 0
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"schemaVersion": 2,
|
|
61
|
+
"tool": {
|
|
62
|
+
"address": 2,
|
|
63
|
+
"compatibilities": {
|
|
64
|
+
"webgl": "three-webgl-r185-v1",
|
|
65
|
+
"webgpu": "three-webgpu-r185-v1"
|
|
66
|
+
},
|
|
67
|
+
"compatibility": "three-webgpu-r185-v1",
|
|
68
|
+
"hydration": 2,
|
|
69
|
+
"name": "@three-blocks/devtools",
|
|
70
|
+
"recipe": 1,
|
|
71
|
+
"transform": 62,
|
|
72
|
+
"version": "4.0.0-alpha.314.g989237b8fb54"
|
|
73
|
+
}
|
|
74
74
|
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
"adapter": "WebGL adapter",
|
|
3
|
+
"measuredAt": "2026-07-29T10:15:46.559Z",
|
|
4
|
+
"platform": "darwin/arm64",
|
|
5
|
+
"receiptHash": "a24d952cf13245e6fd96f4a91f07c403acd5baf506d1a8f9fad8da7dae5626db",
|
|
6
|
+
"scenes": {
|
|
7
|
+
"scene": {
|
|
8
|
+
"avoidedBuildMs": 28.299999952316284,
|
|
9
|
+
"builds": 6,
|
|
10
|
+
"liveBuildMs": 28.299999952316284,
|
|
11
|
+
"precompiledBuildMs": 0,
|
|
12
|
+
"runs": 1,
|
|
13
|
+
"setupMeasured": false,
|
|
14
|
+
"spreadMs": 0
|
|
15
|
+
},
|
|
16
|
+
"scene.webgl": {
|
|
17
|
+
"avoidedBuildMs": 28.600000143051147,
|
|
18
|
+
"builds": 6,
|
|
19
|
+
"liveBuildMs": 28.600000143051147,
|
|
20
|
+
"precompiledBuildMs": 0,
|
|
21
|
+
"runs": 1,
|
|
22
|
+
"setupMeasured": false,
|
|
23
|
+
"spreadMs": 0
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"schemaVersion": 3,
|
|
27
|
+
"source": "committed-capture"
|
|
28
28
|
}
|
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
2
|
+
"runtime": {
|
|
3
|
+
"capture": {
|
|
4
|
+
"adapter": "WebGPU adapter",
|
|
5
|
+
"features": [],
|
|
6
|
+
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/149.0.7827.55 Safari/537.36"
|
|
7
|
+
},
|
|
8
|
+
"three": "0.185.1",
|
|
9
|
+
"threeBlocks": "0.5.0-alpha.314.g989237b8fb54",
|
|
10
|
+
"threeBlocksShaderClosure": "64e2e021698f0bbb6e72c59c6112fa003450b50938cd226626eaaae0886dcb00"
|
|
11
|
+
},
|
|
12
|
+
"scenes": {
|
|
13
|
+
"text": {
|
|
14
|
+
"artifact": "text.webgpu.ts",
|
|
15
|
+
"artifactHash": "d36ce2a36a9792103b79982ec724c1905d67f5d37d11a81da499e65a3c3d81a4",
|
|
16
|
+
"asset": "three-blocks/shaders/text.webgpu.json",
|
|
17
|
+
"assetHash": "412466c147ad419f112ffdb57a184ce21467f1746c67f317f77255ea609b8ee5",
|
|
18
|
+
"backend": "webgpu",
|
|
19
|
+
"bytes": 105579,
|
|
20
|
+
"coverage": {
|
|
21
|
+
"compute": 0,
|
|
22
|
+
"fragment": 8,
|
|
23
|
+
"render": 8,
|
|
24
|
+
"vertex": 8
|
|
25
|
+
},
|
|
26
|
+
"inputs": {
|
|
27
|
+
"src/assets.ts": "ec86aea62751663409bd59264ddd53f028ae716ede15a30bc699d10ea175a5ca",
|
|
28
|
+
"src/look.ts": "c0639402db78e361efb099d5c775246bde7b76050fac0958fc9b7db0d0b1bd5a",
|
|
29
|
+
"src/scene.ts": "359b087788fc51d75eea076e2f0e9d087da6910c77532c87f1441eaddb160c8a"
|
|
30
|
+
},
|
|
31
|
+
"skipped": {
|
|
32
|
+
"compute": 0,
|
|
33
|
+
"render": 0
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"text.webgl": {
|
|
37
|
+
"artifact": "text.webgl.ts",
|
|
38
|
+
"artifactHash": "7b9294083c327268d7b2e50ca569327cac64348c7eccc82fca3b56fb7566f583",
|
|
39
|
+
"asset": "three-blocks/shaders/text.webgl.json",
|
|
40
|
+
"assetHash": "424eac8505846d1c096e66c49a27adc4a476054d6cb87af854d2f9fb4b653025",
|
|
41
|
+
"backend": "webgl",
|
|
42
|
+
"bytes": 107261,
|
|
43
|
+
"coverage": {
|
|
44
|
+
"compute": 0,
|
|
45
|
+
"fragment": 4,
|
|
46
|
+
"render": 4,
|
|
47
|
+
"vertex": 4
|
|
48
|
+
},
|
|
49
|
+
"inputs": {
|
|
50
|
+
"src/assets.ts": "ec86aea62751663409bd59264ddd53f028ae716ede15a30bc699d10ea175a5ca",
|
|
51
|
+
"src/look.ts": "c0639402db78e361efb099d5c775246bde7b76050fac0958fc9b7db0d0b1bd5a",
|
|
52
|
+
"src/scene.ts": "359b087788fc51d75eea076e2f0e9d087da6910c77532c87f1441eaddb160c8a"
|
|
53
|
+
},
|
|
54
|
+
"skipped": {
|
|
55
|
+
"compute": 0,
|
|
56
|
+
"render": 4
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"schemaVersion": 2,
|
|
61
|
+
"tool": {
|
|
62
|
+
"address": 2,
|
|
63
|
+
"compatibilities": {
|
|
64
|
+
"webgl": "three-webgl-r185-v1",
|
|
65
|
+
"webgpu": "three-webgpu-r185-v1"
|
|
66
|
+
},
|
|
67
|
+
"compatibility": "three-webgpu-r185-v1",
|
|
68
|
+
"hydration": 2,
|
|
69
|
+
"name": "@three-blocks/devtools",
|
|
70
|
+
"recipe": 1,
|
|
71
|
+
"transform": 62,
|
|
72
|
+
"version": "4.0.0-alpha.314.g989237b8fb54"
|
|
73
|
+
}
|
|
74
74
|
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
"adapter": "WebGL adapter",
|
|
3
|
+
"measuredAt": "2026-07-29T10:15:55.615Z",
|
|
4
|
+
"platform": "darwin/arm64",
|
|
5
|
+
"receiptHash": "b179f9e3b35d0a9454ec80e3636a1cd2b213fa5a2d6d63e2a5c71eb3dfdeb494",
|
|
6
|
+
"scenes": {
|
|
7
|
+
"text": {
|
|
8
|
+
"avoidedBuildMs": 31.299999952316284,
|
|
9
|
+
"builds": 8,
|
|
10
|
+
"liveBuildMs": 31.299999952316284,
|
|
11
|
+
"precompiledBuildMs": 0,
|
|
12
|
+
"runs": 1,
|
|
13
|
+
"setupMeasured": false,
|
|
14
|
+
"spreadMs": 0
|
|
15
|
+
},
|
|
16
|
+
"text.webgl": {
|
|
17
|
+
"avoidedBuildMs": 37.09999990463257,
|
|
18
|
+
"builds": 4,
|
|
19
|
+
"liveBuildMs": 37.09999990463257,
|
|
20
|
+
"precompiledBuildMs": 0,
|
|
21
|
+
"runs": 1,
|
|
22
|
+
"setupMeasured": false,
|
|
23
|
+
"spreadMs": 0
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"schemaVersion": 3,
|
|
27
|
+
"source": "committed-capture"
|
|
28
28
|
}
|
|
@@ -37,7 +37,7 @@ const mobilePerformance = window.matchMedia( '(pointer: coarse)' ).matches || wi
|
|
|
37
37
|
const viewport = () => ( {
|
|
38
38
|
width: window.innerWidth,
|
|
39
39
|
height: window.innerHeight,
|
|
40
|
-
dpr: Math.min( window.devicePixelRatio, mobilePerformance ? 1 : 2 ),
|
|
40
|
+
dpr: threeBlocksText.enabled ? window.devicePixelRatio : Math.min( window.devicePixelRatio, mobilePerformance ? 1 : 2 ),
|
|
41
41
|
} );
|
|
42
42
|
|
|
43
43
|
shaderParity.sync( worker );
|
|
@@ -46,6 +46,7 @@ input.scroll( { progress: 0, position: 0, velocity: 0, direction: 0 } );
|
|
|
46
46
|
input.visibility( { visible: document.visibilityState === 'visible' } );
|
|
47
47
|
|
|
48
48
|
let resized = false;
|
|
49
|
+
let lastDpr = window.devicePixelRatio;
|
|
49
50
|
let pointer: PointerState | undefined;
|
|
50
51
|
|
|
51
52
|
window.addEventListener( 'resize', () => {
|
|
@@ -75,9 +76,11 @@ function frame( time: number ): void {
|
|
|
75
76
|
|
|
76
77
|
shaderParity.sync( worker );
|
|
77
78
|
lenis.raf( time );
|
|
78
|
-
|
|
79
|
+
// Screen moves change DPR without firing resize.
|
|
80
|
+
if ( resized || window.devicePixelRatio !== lastDpr ) {
|
|
79
81
|
|
|
80
82
|
resized = false;
|
|
83
|
+
lastDpr = window.devicePixelRatio;
|
|
81
84
|
input.viewport( viewport() );
|
|
82
85
|
|
|
83
86
|
}
|