agentvfx 0.3.4 → 0.3.5

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 (94) hide show
  1. package/LICENSE +201 -171
  2. package/README.md +5 -13
  3. package/package.json +2 -2
  4. package/skills/agentvfx/LICENSE +201 -171
  5. package/skills/agentvfx/NOTICE +8 -2
  6. package/skills/agentvfx/SKILL.md +3 -3
  7. package/skills/agentvfx/engine/core/constants.mjs +1 -1
  8. package/skills/agentvfx/engine/core/mark.mjs +6 -9
  9. package/skills/agentvfx/engine/core/palettes.mjs +1 -1
  10. package/skills/agentvfx/engine/core/schedule.mjs +1 -1
  11. package/skills/agentvfx/engine/core/templates.mjs +1 -1
  12. package/skills/agentvfx/engine/core/validate.mjs +3 -3
  13. package/skills/agentvfx/engine/node/board.mjs +1 -1
  14. package/skills/agentvfx/engine/node/encode.mjs +1 -1
  15. package/skills/agentvfx/engine/node/eye.mjs +1 -1
  16. package/skills/agentvfx/engine/node/footage.mjs +1 -1
  17. package/skills/agentvfx/engine/node/frame-worker.mjs +1 -1
  18. package/skills/agentvfx/engine/node/job.mjs +1 -1
  19. package/skills/agentvfx/engine/node/render.mjs +1 -1
  20. package/skills/agentvfx/engine/node/stage-capture.mjs +1 -1
  21. package/skills/agentvfx/engine/node/stage-serve.mjs +1 -1
  22. package/skills/agentvfx/engine/web/init.js +1 -1
  23. package/skills/agentvfx/engine/web/prelude.mjs +1 -1
  24. package/skills/agentvfx/engine/web/render.mjs +2 -2
  25. package/skills/agentvfx/engine/web/text.mjs +1 -1
  26. package/skills/agentvfx/references/template-format.md +2 -2
  27. package/skills/agentvfx/runtime/agentvfx.js +1 -1
  28. package/skills/agentvfx/scripts/export-web.mjs +7 -5
  29. package/skills/agentvfx/scripts/make-beat.mjs +1 -1
  30. package/skills/agentvfx/scripts/vfx.mjs +1 -1
  31. package/skills/agentvfx/templates/_test/feedback-counter/fx.json +1 -1
  32. package/skills/agentvfx/templates/_test/gradient/fx.json +1 -1
  33. package/skills/agentvfx/templates/_test/identity/fx.json +1 -1
  34. package/skills/agentvfx/templates/_test/strobe/fx.json +1 -1
  35. package/skills/agentvfx/templates/_test/text-probe/fx.json +1 -1
  36. package/skills/agentvfx/templates/brutal/_src/boot-log/def.mjs +1 -1
  37. package/skills/agentvfx/templates/brutal/_src/halftone-field/def.mjs +1 -1
  38. package/skills/agentvfx/templates/brutal/_src/hud-deck/def.mjs +1 -1
  39. package/skills/agentvfx/templates/brutal/boot-log/fx.json +1 -1
  40. package/skills/agentvfx/templates/brutal/collage/fx.json +1 -1
  41. package/skills/agentvfx/templates/brutal/collage/layout.mjs +1 -1
  42. package/skills/agentvfx/templates/brutal/halftone-field/fx.json +1 -1
  43. package/skills/agentvfx/templates/brutal/hud-deck/fx.json +1 -1
  44. package/skills/agentvfx/templates/brutal/lattice/fx.json +1 -1
  45. package/skills/agentvfx/templates/glitch/block-glitch/fx.json +1 -1
  46. package/skills/agentvfx/templates/glitch/pixel-sort/fx.json +1 -1
  47. package/skills/agentvfx/templates/glitch/rgb-split/fx.json +1 -1
  48. package/skills/agentvfx/templates/glitch/vhs/fx.json +1 -1
  49. package/skills/agentvfx/templates/impact/impact-1bit/fx.json +1 -1
  50. package/skills/agentvfx/templates/impact/impact-invert/fx.json +1 -1
  51. package/skills/agentvfx/templates/impact/punch-shake/fx.json +1 -1
  52. package/skills/agentvfx/templates/impact/rgb-hit/fx.json +1 -1
  53. package/skills/agentvfx/templates/impact/signal-cut/fx.json +1 -1
  54. package/skills/agentvfx/templates/impact/speedline-burst/fx.json +1 -1
  55. package/skills/agentvfx/templates/impact/strobe-burst/fx.json +1 -1
  56. package/skills/agentvfx/templates/light/anamorphic-streak/fx.json +1 -1
  57. package/skills/agentvfx/templates/light/bloom-glow/fx.json +1 -1
  58. package/skills/agentvfx/templates/light/god-rays/fx.json +1 -1
  59. package/skills/agentvfx/templates/light/lens-flare/fx.json +1 -1
  60. package/skills/agentvfx/templates/light/light-leak/fx.json +1 -1
  61. package/skills/agentvfx/templates/light/light-stage/fx.json +1 -1
  62. package/skills/agentvfx/templates/light/light-sweep/fx.json +1 -1
  63. package/skills/agentvfx/templates/light/neon-saber/fx.json +1 -1
  64. package/skills/agentvfx/templates/psychedelic/echo-flow/fx.json +1 -1
  65. package/skills/agentvfx/templates/psychedelic/hologram-scan/fx.json +1 -1
  66. package/skills/agentvfx/templates/psychedelic/kaleido-fold/fx.json +1 -1
  67. package/skills/agentvfx/templates/psychedelic/mosh-melt/fx.json +1 -1
  68. package/skills/agentvfx/templates/psychedelic/sacred/fx.json +1 -1
  69. package/skills/agentvfx/templates/psychedelic/tidal-bands/fx.json +1 -1
  70. package/skills/agentvfx/templates/scope/goniometer/fx.json +1 -1
  71. package/skills/agentvfx/templates/scope/scope-polar/fx.json +1 -1
  72. package/skills/agentvfx/templates/scope/scope-triggered/fx.json +1 -1
  73. package/skills/agentvfx/templates/scope/spectrogram-scroll/fx.json +1 -1
  74. package/skills/agentvfx/templates/scope/xy-phosphor/fx.json +1 -1
  75. package/skills/agentvfx/templates/spectrum/_src/bars-linear/fx.src.json +1 -1
  76. package/skills/agentvfx/templates/spectrum/_src/bars-mirror/fx.src.json +1 -1
  77. package/skills/agentvfx/templates/spectrum/_src/bass-circle/fx.src.json +1 -1
  78. package/skills/agentvfx/templates/spectrum/_src/label-bars/fx.src.json +1 -1
  79. package/skills/agentvfx/templates/spectrum/_src/spectrum-particles/fx.src.json +1 -1
  80. package/skills/agentvfx/templates/spectrum/_src/spectrum-radial/fx.src.json +1 -1
  81. package/skills/agentvfx/templates/spectrum/_src/waveform-line/fx.src.json +1 -1
  82. package/skills/agentvfx/templates/spectrum/bars-linear/fx.json +1 -1
  83. package/skills/agentvfx/templates/spectrum/bars-mirror/fx.json +1 -1
  84. package/skills/agentvfx/templates/spectrum/bass-circle/fx.json +1 -1
  85. package/skills/agentvfx/templates/spectrum/label-bars/fx.json +1 -1
  86. package/skills/agentvfx/templates/spectrum/spectrum-particles/fx.json +1 -1
  87. package/skills/agentvfx/templates/spectrum/spectrum-radial/fx.json +1 -1
  88. package/skills/agentvfx/templates/spectrum/waveform-line/fx.json +1 -1
  89. package/skills/agentvfx/test/concept-collage.test.mjs +1 -1
  90. package/skills/agentvfx/test/concept-lattice.test.mjs +1 -1
  91. package/skills/agentvfx/test/concept-signal-cut.test.mjs +1 -1
  92. package/skills/agentvfx/test/credit.test.mjs +13 -1
  93. package/skills/agentvfx/test/scope.test.mjs +1 -1
  94. package/skills/agentvfx/test/web.test.mjs +8 -5
@@ -1,4 +1,4 @@
1
- // agentvfx (agentvfx licence, see LICENSE). Live WebGL2 runtime. The exported copy inlines engine/web/prelude.mjs
1
+ // agentvfx (Apache-2.0, see LICENSE). Live WebGL2 runtime. The exported copy inlines engine/web/prelude.mjs
2
2
  // at export time so a page does not import the engine. Semantics match engine/web/render.mjs.
3
3
  import { OUTPUT_FRAG, VERT, buildFragment, seedToUnit } from "../engine/web/prelude.mjs";
4
4
  import { PALETTES, hexToRgb } from "../engine/core/palettes.mjs";
@@ -1,4 +1,4 @@
1
- // agentvfx (agentvfx licence, see LICENSE). Bundle selected templates and the live runtime into a folder a page
1
+ // agentvfx (Apache-2.0, see LICENSE). Bundle selected templates and the live runtime into a folder a page
2
2
  // can open with no network and no build. The GLSL prelude is imported here and inlined verbatim.
3
3
  import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
4
4
  import path from "node:path";
@@ -12,11 +12,12 @@ const here = path.dirname(fileURLToPath(import.meta.url));
12
12
  const runtimePath = path.join(here, "../runtime/agentvfx.js");
13
13
  const preludePath = path.join(here, "../engine/web/prelude.mjs");
14
14
  const licensePath = path.join(here, "../LICENSE");
15
+ const noticePath = path.join(here, "../NOTICE");
15
16
  // The licence notice is added after stripUrls runs, so it survives; it names the repository without a scheme because the
16
- // bundle must hold no fetchable URL. The exact Required Notice line, with its URL, is in the LICENSE file written beside it.
17
+ // bundle must hold no fetchable URL. LICENSE and NOTICE, with their URLs, are written beside it.
17
18
  const LICENSE_NOTICE = [
18
- "agentvfx licence: the full terms are in the LICENSE file in this folder. Keep it with these files.",
19
- "Required Notice: Copyright (c) 2026 Woojin Go (github.com/wjgoarxiv/agentvfx)",
19
+ "agentvfx is licensed under the Apache License 2.0; see LICENSE and NOTICE in this folder. Keep them with these files.",
20
+ "Copyright 2026 Woojin Go (github.com/wjgoarxiv/agentvfx)",
20
21
  ];
21
22
  const flashPaths = ["../engine/core/flash-constants.mjs", "../engine/core/flash.mjs"].map((p) => path.join(here, p));
22
23
 
@@ -151,5 +152,6 @@ for (const [name, body] of Object.entries(files)) {
151
152
  }
152
153
  writeFileSync(path.join(out, name), body);
153
154
  }
154
- // The licence text itself carries URLs by design, so it is copied verbatim after the no-URL check above.
155
+ // The licence and notice carry URLs by design, so they are copied verbatim after the no-URL check above.
155
156
  writeFileSync(path.join(out, "LICENSE"), readFileSync(licensePath));
157
+ writeFileSync(path.join(out, "NOTICE"), readFileSync(noticePath));
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // agentvfx (agentvfx licence, see LICENSE). Generates the original 10 s, 132 BPM demo drum loop (test-media/beat-132.mp3).
2
+ // agentvfx (Apache-2.0, see LICENSE). Generates the original 10 s, 132 BPM demo drum loop (test-media/beat-132.mp3).
3
3
  // Everything is synthesised here from sines and seeded noise: a kick on every beat, a snare on
4
4
  // beats 2 and 4, closed hats on the 8ths, starting a quarter beat in, over a faint noise bed so the
5
5
  // waveform never goes flat between hits. Nothing is sampled or downloaded.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // agentvfx (agentvfx licence, see LICENSE). Command-line entry: `vfx.mjs <subcommand> ...`.
2
+ // agentvfx (Apache-2.0, see LICENSE). Command-line entry: `vfx.mjs <subcommand> ...`.
3
3
  import { spawnSync } from "node:child_process";
4
4
  import { existsSync, mkdtempSync, readFileSync } from "node:fs";
5
5
  import { tmpdir } from "node:os";
@@ -5,7 +5,7 @@
5
5
  "INPUTS": [{ "NAME": "inc", "TYPE": "float", "MIN": 0, "MAX": 1, "DEFAULT": 0.00392156862745098 }],
6
6
  "PASSES": [{ "TARGET": "acc", "PERSISTENT": true, "FLOAT": true }, {}],
7
7
  "X_AGENTVFX": {
8
- "id": "test-feedback-counter", "family": "_test", "input": "generative", "spdx": "LicenseRef-agentvfx", "flash": "none",
8
+ "id": "test-feedback-counter", "family": "_test", "input": "generative", "spdx": "Apache-2.0", "flash": "none",
9
9
  "presets": { "one": { "inc": 0.00392156862745098 }, "two": { "inc": 0.00784313725490196 }, "zero": { "inc": 0 } }
10
10
  }
11
11
  }
@@ -11,7 +11,7 @@
11
11
  "id": "test-gradient",
12
12
  "family": "_test",
13
13
  "input": "generative",
14
- "spdx": "LicenseRef-agentvfx",
14
+ "spdx": "Apache-2.0",
15
15
  "flash": "none",
16
16
  "presets": {
17
17
  "slow": { "speed": 0.25 },
@@ -4,7 +4,7 @@
4
4
  "CATEGORIES": ["test"],
5
5
  "INPUTS": [{ "NAME": "gain", "TYPE": "float", "MIN": 0, "MAX": 2, "DEFAULT": 1 }],
6
6
  "X_AGENTVFX": {
7
- "id": "test-identity", "family": "_test", "input": "either", "spdx": "LicenseRef-agentvfx", "flash": "none",
7
+ "id": "test-identity", "family": "_test", "input": "either", "spdx": "Apache-2.0", "flash": "none",
8
8
  "presets": { "unity": { "gain": 1 }, "half": { "gain": 0.5 }, "double": { "gain": 2 } }
9
9
  }
10
10
  }
@@ -7,7 +7,7 @@
7
7
  { "NAME": "red", "TYPE": "bool", "DEFAULT": false }
8
8
  ],
9
9
  "X_AGENTVFX": {
10
- "id": "test-strobe", "family": "_test", "input": "generative", "spdx": "LicenseRef-agentvfx", "flash": "strobe",
10
+ "id": "test-strobe", "family": "_test", "input": "generative", "spdx": "Apache-2.0", "flash": "strobe",
11
11
  "presets": { "hold": { "rate": 0 }, "slow": { "rate": 2 }, "fast": { "rate": 12 } },
12
12
  "safeSubstitute": { "template": "test-identity", "params": { "rate": 1 } }
13
13
  }
@@ -4,7 +4,7 @@
4
4
  "CATEGORIES": ["test"],
5
5
  "INPUTS": [{ "NAME": "gain", "TYPE": "float", "MIN": 0, "MAX": 1, "DEFAULT": 1 }],
6
6
  "X_AGENTVFX": {
7
- "id": "test-text-probe", "family": "_test", "input": "generative", "spdx": "LicenseRef-agentvfx", "flash": "none",
7
+ "id": "test-text-probe", "family": "_test", "input": "generative", "spdx": "Apache-2.0", "flash": "none",
8
8
  "presets": { "a": { "gain": 1 }, "b": { "gain": 0.5 }, "c": { "gain": 0.8 } },
9
9
  "text": [
10
10
  { "key": "title", "default": "TRACK TITLE", "x": 0.06, "y": 0.1, "size": 0.16, "font": "display", "style": "outline", "box": "tab" },
@@ -35,7 +35,7 @@ const fx = {
35
35
  CATEGORIES: ["brutal", "terminal", "audio"],
36
36
  INPUTS,
37
37
  X_AGENTVFX: {
38
- id: "boot-log", family: "brutal", input: "generative", spdx: "LicenseRef-agentvfx", flash: "possible", fps: 30, palette: false,
38
+ id: "boot-log", family: "brutal", input: "generative", spdx: "Apache-2.0", flash: "possible", fps: 30, palette: false,
39
39
  presets: { phosphor: PHOSPHOR, acid: ACID, ultramarine: ULTRA, amber: AMBER },
40
40
  audioBind: { tearAmount: "beat" },
41
41
  safeSubstitute: { params: { tearAmount: 0, flickerAmount: 0 } },
@@ -47,7 +47,7 @@ const fx = {
47
47
  CATEGORIES: ["brutal", "halftone", "audio"],
48
48
  INPUTS,
49
49
  X_AGENTVFX: {
50
- id: "halftone-field", family: "brutal", input: "either", spdx: "LicenseRef-agentvfx", flash: "possible", fps: 30, palette: false,
50
+ id: "halftone-field", family: "brutal", input: "either", spdx: "Apache-2.0", flash: "possible", fps: 30, palette: false,
51
51
  presets: { ultramarine: ULTRA, "ink-blue": INK_BLUE, acid: ACID, orange: ORANGE, phosphor: PHOSPHOR, dither: DITHER, ascii: ASCII },
52
52
  audioBind: { dotGain: "bass", barAmount: "bands" },
53
53
  safeSubstitute: { params: { tearAmount: 0, kickGain: 0 } },
@@ -58,7 +58,7 @@ const fx = {
58
58
  INPUTS,
59
59
  PASSES: [{ TARGET: "specState", PERSISTENT: true, FLOAT: true }, {}],
60
60
  X_AGENTVFX: {
61
- id: "hud-deck", family: "brutal", input: "either", spdx: "LicenseRef-agentvfx", flash: "possible", fps: 30, palette: false,
61
+ id: "hud-deck", family: "brutal", input: "either", spdx: "Apache-2.0", flash: "possible", fps: 30, palette: false,
62
62
  presets: { night: NIGHT, ultramarine: ULTRA, acid: ACID, octagon: OCTAGON, "orange-mono": ORANGE },
63
63
  audioBind: { spectrumGain: "bands", flare: "beat" },
64
64
  safeSubstitute: { params: { flare: 0, tearAmount: 0 } },
@@ -113,7 +113,7 @@
113
113
  "id": "boot-log",
114
114
  "family": "brutal",
115
115
  "input": "generative",
116
- "spdx": "LicenseRef-agentvfx",
116
+ "spdx": "Apache-2.0",
117
117
  "flash": "possible",
118
118
  "fps": 30,
119
119
  "palette": false,
@@ -636,7 +636,7 @@
636
636
  "id": "collage",
637
637
  "family": "brutal",
638
638
  "input": "either",
639
- "spdx": "LicenseRef-agentvfx",
639
+ "spdx": "Apache-2.0",
640
640
  "flash": "possible",
641
641
  "fps": 30,
642
642
  "palette": false,
@@ -1,4 +1,4 @@
1
- // agentvfx (agentvfx licence, see LICENSE). Collage layout as data: up to 16 cells on a 32 x 18 grid, validated here and packed
1
+ // agentvfx (Apache-2.0, see LICENSE). Collage layout as data: up to 16 cells on a 32 x 18 grid, validated here and packed
2
2
  // into the template's integer inputs. Three ints per cell:
3
3
  // cellN = role * 1e8 + x * 1e6 + y * 1e4 + w * 100 + h (RRXXYYWWHH, plain decimal)
4
4
  // styleN = variant * 1e4 + tone * 1e3 + fill * 100 + frame * 10 + rot
@@ -219,7 +219,7 @@
219
219
  "id": "halftone-field",
220
220
  "family": "brutal",
221
221
  "input": "either",
222
- "spdx": "LicenseRef-agentvfx",
222
+ "spdx": "Apache-2.0",
223
223
  "flash": "possible",
224
224
  "fps": 30,
225
225
  "palette": false,
@@ -334,7 +334,7 @@
334
334
  "id": "hud-deck",
335
335
  "family": "brutal",
336
336
  "input": "either",
337
- "spdx": "LicenseRef-agentvfx",
337
+ "spdx": "Apache-2.0",
338
338
  "flash": "possible",
339
339
  "fps": 30,
340
340
  "palette": false,
@@ -39,7 +39,7 @@
39
39
  "id": "lattice",
40
40
  "family": "brutal",
41
41
  "input": "either",
42
- "spdx": "LicenseRef-agentvfx",
42
+ "spdx": "Apache-2.0",
43
43
  "flash": "possible",
44
44
  "fps": 30,
45
45
  "palette": false,
@@ -34,7 +34,7 @@
34
34
  "id": "block-glitch",
35
35
  "family": "glitch",
36
36
  "input": "footage",
37
- "spdx": "LicenseRef-agentvfx",
37
+ "spdx": "Apache-2.0",
38
38
  "flash": "strobe",
39
39
  "fps": 30,
40
40
  "palette": true,
@@ -39,7 +39,7 @@
39
39
  "id": "pixel-sort",
40
40
  "family": "glitch",
41
41
  "input": "footage",
42
- "spdx": "LicenseRef-agentvfx",
42
+ "spdx": "Apache-2.0",
43
43
  "flash": "possible",
44
44
  "fps": 30,
45
45
  "palette": true,
@@ -26,7 +26,7 @@
26
26
  "id": "rgb-split",
27
27
  "family": "glitch",
28
28
  "input": "footage",
29
- "spdx": "LicenseRef-agentvfx",
29
+ "spdx": "Apache-2.0",
30
30
  "flash": "possible",
31
31
  "fps": 30,
32
32
  "palette": false,
@@ -26,7 +26,7 @@
26
26
  "id": "vhs",
27
27
  "family": "glitch",
28
28
  "input": "footage",
29
- "spdx": "LicenseRef-agentvfx",
29
+ "spdx": "Apache-2.0",
30
30
  "flash": "possible",
31
31
  "fps": 30,
32
32
  "palette": false,
@@ -24,7 +24,7 @@
24
24
  "id": "impact-1bit",
25
25
  "family": "impact",
26
26
  "input": "either",
27
- "spdx": "LicenseRef-agentvfx",
27
+ "spdx": "Apache-2.0",
28
28
  "flash": "possible",
29
29
  "fps": 30,
30
30
  "palette": true,
@@ -17,7 +17,7 @@
17
17
  "id": "impact-invert",
18
18
  "family": "impact",
19
19
  "input": "either",
20
- "spdx": "LicenseRef-agentvfx",
20
+ "spdx": "Apache-2.0",
21
21
  "flash": "possible",
22
22
  "fps": 30,
23
23
  "palette": true,
@@ -18,7 +18,7 @@
18
18
  "id": "punch-shake",
19
19
  "family": "impact",
20
20
  "input": "either",
21
- "spdx": "LicenseRef-agentvfx",
21
+ "spdx": "Apache-2.0",
22
22
  "flash": "none",
23
23
  "fps": 30,
24
24
  "presets": {
@@ -21,7 +21,7 @@
21
21
  "id": "rgb-hit",
22
22
  "family": "impact",
23
23
  "input": "either",
24
- "spdx": "LicenseRef-agentvfx",
24
+ "spdx": "Apache-2.0",
25
25
  "flash": "none",
26
26
  "fps": 30,
27
27
  "presets": {
@@ -41,7 +41,7 @@
41
41
  "id": "signal-cut",
42
42
  "family": "impact",
43
43
  "input": "footage",
44
- "spdx": "LicenseRef-agentvfx",
44
+ "spdx": "Apache-2.0",
45
45
  "flash": "strobe",
46
46
  "fps": 30,
47
47
  "palette": false,
@@ -24,7 +24,7 @@
24
24
  "id": "speedline-burst",
25
25
  "family": "impact",
26
26
  "input": "either",
27
- "spdx": "LicenseRef-agentvfx",
27
+ "spdx": "Apache-2.0",
28
28
  "flash": "possible",
29
29
  "fps": 30,
30
30
  "palette": true,
@@ -21,7 +21,7 @@
21
21
  "id": "strobe-burst",
22
22
  "family": "impact",
23
23
  "input": "either",
24
- "spdx": "LicenseRef-agentvfx",
24
+ "spdx": "Apache-2.0",
25
25
  "flash": "strobe",
26
26
  "fps": 30,
27
27
  "palette": true,
@@ -27,7 +27,7 @@
27
27
  "id": "anamorphic-streak",
28
28
  "family": "light",
29
29
  "input": "either",
30
- "spdx": "LicenseRef-agentvfx",
30
+ "spdx": "Apache-2.0",
31
31
  "flash": "none",
32
32
  "fps": 30,
33
33
  "palette": true,
@@ -31,7 +31,7 @@
31
31
  "id": "bloom-glow",
32
32
  "family": "light",
33
33
  "input": "either",
34
- "spdx": "LicenseRef-agentvfx",
34
+ "spdx": "Apache-2.0",
35
35
  "flash": "none",
36
36
  "fps": 30,
37
37
  "palette": true,
@@ -19,7 +19,7 @@
19
19
  "id": "god-rays",
20
20
  "family": "light",
21
21
  "input": "either",
22
- "spdx": "LicenseRef-agentvfx",
22
+ "spdx": "Apache-2.0",
23
23
  "flash": "none",
24
24
  "fps": 30,
25
25
  "palette": true,
@@ -30,7 +30,7 @@
30
30
  "id": "lens-flare",
31
31
  "family": "light",
32
32
  "input": "either",
33
- "spdx": "LicenseRef-agentvfx",
33
+ "spdx": "Apache-2.0",
34
34
  "flash": "none",
35
35
  "fps": 30,
36
36
  "palette": true,
@@ -20,7 +20,7 @@
20
20
  "id": "light-leak",
21
21
  "family": "light",
22
22
  "input": "either",
23
- "spdx": "LicenseRef-agentvfx",
23
+ "spdx": "Apache-2.0",
24
24
  "flash": "possible",
25
25
  "fps": 30,
26
26
  "palette": true,
@@ -13,7 +13,7 @@
13
13
  "id": "light-stage",
14
14
  "family": "light",
15
15
  "input": "generative",
16
- "spdx": "LicenseRef-agentvfx",
16
+ "spdx": "Apache-2.0",
17
17
  "flash": "none",
18
18
  "fps": 30,
19
19
  "palette": false,
@@ -24,7 +24,7 @@
24
24
  "id": "light-sweep",
25
25
  "family": "light",
26
26
  "input": "either",
27
- "spdx": "LicenseRef-agentvfx",
27
+ "spdx": "Apache-2.0",
28
28
  "flash": "possible",
29
29
  "fps": 30,
30
30
  "palette": true,
@@ -27,7 +27,7 @@
27
27
  "id": "neon-saber",
28
28
  "family": "light",
29
29
  "input": "either",
30
- "spdx": "LicenseRef-agentvfx",
30
+ "spdx": "Apache-2.0",
31
31
  "flash": "possible",
32
32
  "fps": 30,
33
33
  "palette": true,
@@ -22,7 +22,7 @@
22
22
  "id": "echo-flow",
23
23
  "family": "psychedelic",
24
24
  "input": "footage",
25
- "spdx": "LicenseRef-agentvfx",
25
+ "spdx": "Apache-2.0",
26
26
  "flash": "none",
27
27
  "fps": 30,
28
28
  "palette": true,
@@ -19,7 +19,7 @@
19
19
  "id": "hologram-scan",
20
20
  "family": "psychedelic",
21
21
  "input": "footage",
22
- "spdx": "LicenseRef-agentvfx",
22
+ "spdx": "Apache-2.0",
23
23
  "flash": "possible",
24
24
  "fps": 30,
25
25
  "palette": true,
@@ -20,7 +20,7 @@
20
20
  "id": "kaleido-fold",
21
21
  "family": "psychedelic",
22
22
  "input": "either",
23
- "spdx": "LicenseRef-agentvfx",
23
+ "spdx": "Apache-2.0",
24
24
  "flash": "none",
25
25
  "fps": 30,
26
26
  "palette": true,
@@ -21,7 +21,7 @@
21
21
  "id": "mosh-melt",
22
22
  "family": "psychedelic",
23
23
  "input": "footage",
24
- "spdx": "LicenseRef-agentvfx",
24
+ "spdx": "Apache-2.0",
25
25
  "flash": "possible",
26
26
  "fps": 30,
27
27
  "palette": true,
@@ -189,7 +189,7 @@
189
189
  "id": "sacred",
190
190
  "family": "psychedelic",
191
191
  "input": "either",
192
- "spdx": "LicenseRef-agentvfx",
192
+ "spdx": "Apache-2.0",
193
193
  "flash": "none",
194
194
  "fps": 30,
195
195
  "palette": true,
@@ -19,7 +19,7 @@
19
19
  "id": "tidal-bands",
20
20
  "family": "psychedelic",
21
21
  "input": "either",
22
- "spdx": "LicenseRef-agentvfx",
22
+ "spdx": "Apache-2.0",
23
23
  "flash": "possible",
24
24
  "fps": 30,
25
25
  "palette": true,
@@ -235,7 +235,7 @@
235
235
  "id": "goniometer",
236
236
  "family": "scope",
237
237
  "input": "generative",
238
- "spdx": "LicenseRef-agentvfx",
238
+ "spdx": "Apache-2.0",
239
239
  "flash": "none",
240
240
  "fps": 60,
241
241
  "palette": false,
@@ -265,7 +265,7 @@
265
265
  "id": "scope-polar",
266
266
  "family": "scope",
267
267
  "input": "either",
268
- "spdx": "LicenseRef-agentvfx",
268
+ "spdx": "Apache-2.0",
269
269
  "flash": "possible",
270
270
  "safeSubstitute": {
271
271
  "params": {
@@ -220,7 +220,7 @@
220
220
  "id": "scope-triggered",
221
221
  "family": "scope",
222
222
  "input": "either",
223
- "spdx": "LicenseRef-agentvfx",
223
+ "spdx": "Apache-2.0",
224
224
  "flash": "possible",
225
225
  "safeSubstitute": {
226
226
  "params": {
@@ -202,7 +202,7 @@
202
202
  "id": "spectrogram-scroll",
203
203
  "family": "scope",
204
204
  "input": "either",
205
- "spdx": "LicenseRef-agentvfx",
205
+ "spdx": "Apache-2.0",
206
206
  "flash": "none",
207
207
  "fps": 60,
208
208
  "palette": false,
@@ -236,7 +236,7 @@
236
236
  "id": "xy-phosphor",
237
237
  "family": "scope",
238
238
  "input": "generative",
239
- "spdx": "LicenseRef-agentvfx",
239
+ "spdx": "Apache-2.0",
240
240
  "flash": "none",
241
241
  "fps": 60,
242
242
  "palette": false,
@@ -20,7 +20,7 @@
20
20
  "id": "bars-linear",
21
21
  "family": "spectrum",
22
22
  "input": "either",
23
- "spdx": "LicenseRef-agentvfx",
23
+ "spdx": "Apache-2.0",
24
24
  "flash": "possible",
25
25
  "fps": 30,
26
26
  "palette": true,
@@ -24,7 +24,7 @@
24
24
  "id": "bars-mirror",
25
25
  "family": "spectrum",
26
26
  "input": "either",
27
- "spdx": "LicenseRef-agentvfx",
27
+ "spdx": "Apache-2.0",
28
28
  "flash": "strobe",
29
29
  "fps": 30,
30
30
  "palette": true,
@@ -29,7 +29,7 @@
29
29
  "id": "bass-circle",
30
30
  "family": "spectrum",
31
31
  "input": "either",
32
- "spdx": "LicenseRef-agentvfx",
32
+ "spdx": "Apache-2.0",
33
33
  "flash": "none",
34
34
  "fps": 30,
35
35
  "palette": true,
@@ -19,7 +19,7 @@
19
19
  "id": "label-bars",
20
20
  "family": "spectrum",
21
21
  "input": "either",
22
- "spdx": "LicenseRef-agentvfx",
22
+ "spdx": "Apache-2.0",
23
23
  "flash": "none",
24
24
  "fps": 30,
25
25
  "palette": true,
@@ -25,7 +25,7 @@
25
25
  "id": "spectrum-particles",
26
26
  "family": "spectrum",
27
27
  "input": "either",
28
- "spdx": "LicenseRef-agentvfx",
28
+ "spdx": "Apache-2.0",
29
29
  "flash": "none",
30
30
  "fps": 30,
31
31
  "palette": true,
@@ -28,7 +28,7 @@
28
28
  "id": "spectrum-radial",
29
29
  "family": "spectrum",
30
30
  "input": "either",
31
- "spdx": "LicenseRef-agentvfx",
31
+ "spdx": "Apache-2.0",
32
32
  "flash": "possible",
33
33
  "fps": 30,
34
34
  "palette": true,
@@ -26,7 +26,7 @@
26
26
  "id": "waveform-line",
27
27
  "family": "spectrum",
28
28
  "input": "either",
29
- "spdx": "LicenseRef-agentvfx",
29
+ "spdx": "Apache-2.0",
30
30
  "flash": "none",
31
31
  "fps": 30,
32
32
  "palette": true,
@@ -364,7 +364,7 @@
364
364
  "id": "bars-linear",
365
365
  "family": "spectrum",
366
366
  "input": "either",
367
- "spdx": "LicenseRef-agentvfx",
367
+ "spdx": "Apache-2.0",
368
368
  "flash": "possible",
369
369
  "fps": 30,
370
370
  "palette": true,
@@ -390,7 +390,7 @@
390
390
  "id": "bars-mirror",
391
391
  "family": "spectrum",
392
392
  "input": "either",
393
- "spdx": "LicenseRef-agentvfx",
393
+ "spdx": "Apache-2.0",
394
394
  "flash": "strobe",
395
395
  "fps": 30,
396
396
  "palette": true,
@@ -417,7 +417,7 @@
417
417
  "id": "bass-circle",
418
418
  "family": "spectrum",
419
419
  "input": "either",
420
- "spdx": "LicenseRef-agentvfx",
420
+ "spdx": "Apache-2.0",
421
421
  "flash": "none",
422
422
  "fps": 30,
423
423
  "palette": true,