shadertown 0.1.0 → 0.2.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 -0
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +55 -5
- package/dist/export.js.map +1 -1
- package/dist/generated/sources.d.ts +41 -0
- package/dist/generated/sources.d.ts.map +1 -1
- package/dist/generated/sources.js +41 -0
- package/dist/generated/sources.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +8 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +23 -1
- package/dist/react.js.map +1 -1
- package/dist/registry.d.ts +1050 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +642 -0
- package/dist/registry.js.map +1 -1
- package/dist/renderer.d.ts +15 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +127 -0
- package/dist/renderer.js.map +1 -1
- package/dist/source.d.ts +56 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +191 -0
- package/dist/source.js.map +1 -0
- package/dist/stage.d.ts +13 -1
- package/dist/stage.d.ts.map +1 -1
- package/dist/stage.js +5 -1
- package/dist/stage.js.map +1 -1
- package/dist/types.d.ts +21 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -17,4 +17,24 @@ No WGSL loader, no bundler plugin: shader sources ship as strings. Every
|
|
|
17
17
|
renderer on a page shares one GPU context and one frame loop, and the loop stops
|
|
18
18
|
when nothing is animating.
|
|
19
19
|
|
|
20
|
+
## Vendor the source
|
|
21
|
+
|
|
22
|
+
The `shadertown` CLI ships inside this package, so `npx shadertown` needs no
|
|
23
|
+
second install. It writes a shader's WGSL and your tuned preset into your own
|
|
24
|
+
repository, as files you own:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx shadertown add aurora
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Licensing
|
|
31
|
+
|
|
32
|
+
This package is MIT, and it draws all 28 shaders. What a licence buys is the
|
|
33
|
+
readable source: 3 shaders hand theirs to anyone, the other 15 need
|
|
34
|
+
[Professional](https://www.shadertown.com/pricing). Source you have already
|
|
35
|
+
vendored keeps working either way.
|
|
36
|
+
|
|
37
|
+
Needs WebGPU — `ShaderCanvas` reports an `unsupported` status so you can render
|
|
38
|
+
a fallback.
|
|
39
|
+
|
|
20
40
|
Full documentation: https://www.shadertown.com/docs
|
package/dist/export.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAevB;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,EAC7C,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAQjC;AAgBD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAW7F;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAoB5F;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAuB9F;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAElE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAEtE;AAOD,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAwB9F;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAiIvF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAE,aAAkB,GAAG,MAAM,CAwB3F"}
|
package/dist/export.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { shaderSources } from "./generated/sources.js";
|
|
2
2
|
import { defaultParams } from "./params.js";
|
|
3
|
-
import { shaderRegistry } from "./registry.js";
|
|
3
|
+
import { defaultSourceOf, shaderKind, shaderRegistry, } from "./registry.js";
|
|
4
|
+
/**
|
|
5
|
+
* The `source` line an exported snippet needs, or nothing.
|
|
6
|
+
*
|
|
7
|
+
* A source shader that arrives without this looks like it is broken: it draws
|
|
8
|
+
* whatever the registry names as a fallback, and nothing in the file says the
|
|
9
|
+
* shader was ever meant to read the reader's own picture.
|
|
10
|
+
*/
|
|
11
|
+
function sourceProp(name, indent) {
|
|
12
|
+
if (shaderKind(name) !== "source")
|
|
13
|
+
return "";
|
|
14
|
+
const fallback = defaultSourceOf(name);
|
|
15
|
+
return `\n${indent}// An image, a URL, a <video>, or { shader: "…" } for another\n${indent}// shadertown shader. Omit it and it falls back to ${JSON.stringify(fallback ?? "a shader")}.\n${indent}source="/your-image.jpg"`;
|
|
16
|
+
}
|
|
4
17
|
/**
|
|
5
18
|
* Only the values that differ from the registry defaults. Exported snippets
|
|
6
19
|
* stay short, and a shader's defaults can improve later without silently
|
|
@@ -52,7 +65,7 @@ export function toReactSource(name, params) {
|
|
|
52
65
|
export function Background() {
|
|
53
66
|
return (
|
|
54
67
|
<ShaderCanvas
|
|
55
|
-
shader="${name}"${paramsProp}
|
|
68
|
+
shader="${name}"${paramsProp}${sourceProp(name, " ")}
|
|
56
69
|
play="visible"
|
|
57
70
|
style={{ position: "absolute", inset: 0 }}
|
|
58
71
|
/>
|
|
@@ -65,12 +78,15 @@ export function toVanillaSource(name, params) {
|
|
|
65
78
|
const diff = diffParams(name, params);
|
|
66
79
|
const entries = Object.entries(diff).map(([key, value]) => ` ${key}: ${literal(value)},`);
|
|
67
80
|
const paramsArg = entries.length > 0 ? `\n params: {\n${entries.join("\n")}\n },` : "";
|
|
81
|
+
const sourceArg = shaderKind(name) === "source"
|
|
82
|
+
? `\n // An image, a URL, a <video>, or { shader: "…" } for another shadertown\n // shader. Omit it and it falls back to ${JSON.stringify(defaultSourceOf(name) ?? "a shader")}.\n source: "/your-image.jpg",`
|
|
83
|
+
: "";
|
|
68
84
|
return `import { createShaderRenderer } from "shadertown";
|
|
69
85
|
|
|
70
86
|
const canvas = document.querySelector("canvas")!;
|
|
71
87
|
|
|
72
88
|
const renderer = createShaderRenderer(canvas, {
|
|
73
|
-
shader: ${JSON.stringify(name)},${paramsArg}
|
|
89
|
+
shader: ${JSON.stringify(name)},${paramsArg}${sourceArg}
|
|
74
90
|
dpr: [1, 2],
|
|
75
91
|
});
|
|
76
92
|
|
|
@@ -105,7 +121,7 @@ export function Background() {
|
|
|
105
121
|
return (
|
|
106
122
|
<div style={{ position: "relative", minHeight: "70vh" }}>
|
|
107
123
|
<ShaderCanvas
|
|
108
|
-
preset={${identifier}}
|
|
124
|
+
preset={${identifier}}${sourceProp(name, " ")}
|
|
109
125
|
quality={{ dpr: ${dpr} }}
|
|
110
126
|
style={{ position: "absolute", inset: 0 }}
|
|
111
127
|
/>
|
|
@@ -140,6 +156,40 @@ export function toReadme(name, params) {
|
|
|
140
156
|
.map(([key, value]) => `- \`${key}\`: ${typeof value === "number" ? value : JSON.stringify(value)}`)
|
|
141
157
|
.join("\n")
|
|
142
158
|
: "_None — this preset uses the catalogue defaults._";
|
|
159
|
+
// A source shader's whole point is the layer it reads, so the README has to
|
|
160
|
+
// say what that is and how to supply one. Skipped entirely for the shaders
|
|
161
|
+
// that invent their own picture.
|
|
162
|
+
const sourceSection = shaderKind(name) === "source"
|
|
163
|
+
? `## What it reads
|
|
164
|
+
|
|
165
|
+
${definition.name} does not invent its picture — it reads one. On top of the
|
|
166
|
+
shared \`Params\` block it declares three more bindings:
|
|
167
|
+
|
|
168
|
+
| Binding | Type | What it is |
|
|
169
|
+
| --- | --- | --- |
|
|
170
|
+
| \`@group(0) @binding(1)\` | \`texture_2d<f32>\` | The layer being read. |
|
|
171
|
+
| \`@group(0) @binding(2)\` | \`sampler\` | Linear, clamped to the edge. |
|
|
172
|
+
| \`@group(0) @binding(3)\` | \`Source\` uniform | Its pixel size, and whether to cover the canvas or stretch to it. |
|
|
173
|
+
|
|
174
|
+
Through shadertown, that is the \`source\` prop:
|
|
175
|
+
|
|
176
|
+
\`\`\`tsx
|
|
177
|
+
<ShaderCanvas shader="${name}" source="/hero.jpg" />
|
|
178
|
+
<ShaderCanvas shader="${name}" source={videoElement} />
|
|
179
|
+
<ShaderCanvas shader="${name}" source={{ shader: "${defaultSourceOf(name) ?? "aurora"}" }} />
|
|
180
|
+
\`\`\`
|
|
181
|
+
|
|
182
|
+
Leave it out and it falls back to the \`${defaultSourceOf(name) ?? "aurora"}\` shader, so a
|
|
183
|
+
preview is never a blank canvas.
|
|
184
|
+
|
|
185
|
+
Wiring the WGSL into your own renderer instead: bind a sampleable texture at
|
|
186
|
+
binding 1, a filtering sampler at binding 2, and write the source's pixel size
|
|
187
|
+
and fit mode at binding 3. The bindings are additive — a shader that invents
|
|
188
|
+
its own picture declares none of them, and the \`Params\` layout is identical
|
|
189
|
+
across the whole catalogue either way.
|
|
190
|
+
|
|
191
|
+
`
|
|
192
|
+
: "";
|
|
143
193
|
const costNote = {
|
|
144
194
|
light: "Light. A few samples per pixel — fine fullscreen at full pixel ratio, including on integrated graphics.",
|
|
145
195
|
medium: "Medium. A few dozen samples per pixel — comfortable fullscreen on a discrete GPU, but cap the pixel ratio for a retina hero.",
|
|
@@ -171,7 +221,7 @@ import { ${identifier} } from "./${name}";
|
|
|
171
221
|
|
|
172
222
|
The canvas fills its parent, so give the parent a size.
|
|
173
223
|
|
|
174
|
-
## This preset
|
|
224
|
+
${sourceSection}## This preset
|
|
175
225
|
|
|
176
226
|
${tuned}
|
|
177
227
|
|
package/dist/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
|