@hyperframes/core 0.8.70 → 0.8.72

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 (35) hide show
  1. package/dist/generated/runtime-inline.js +1 -1
  2. package/dist/generated/runtime-inline.js.map +1 -1
  3. package/dist/hyperframe.runtime.iife.js +143 -39
  4. package/dist/runtime/adapters/seek-dispatch.d.ts +32 -0
  5. package/dist/runtime/adapters/seek-dispatch.d.ts.map +1 -0
  6. package/dist/runtime/adapters/seek-dispatch.js +129 -0
  7. package/dist/runtime/adapters/seek-dispatch.js.map +1 -0
  8. package/dist/runtime/media.d.ts.map +1 -1
  9. package/dist/runtime/media.js +17 -0
  10. package/dist/runtime/media.js.map +1 -1
  11. package/dist/vfx/displacementMap.frag.d.ts +10 -7
  12. package/dist/vfx/displacementMap.frag.d.ts.map +1 -1
  13. package/dist/vfx/displacementMap.frag.js +15 -8
  14. package/dist/vfx/displacementMap.frag.js.map +1 -1
  15. package/dist/vfx/lumaMatte.frag.d.ts +43 -0
  16. package/dist/vfx/lumaMatte.frag.d.ts.map +1 -0
  17. package/dist/vfx/lumaMatte.frag.js +73 -0
  18. package/dist/vfx/lumaMatte.frag.js.map +1 -0
  19. package/dist/vfx/noise.frag.d.ts +96 -0
  20. package/dist/vfx/noise.frag.d.ts.map +1 -0
  21. package/dist/vfx/noise.frag.js +169 -0
  22. package/dist/vfx/noise.frag.js.map +1 -0
  23. package/dist/vfx/refs/lumaMatte.d.ts +24 -0
  24. package/dist/vfx/refs/lumaMatte.d.ts.map +1 -0
  25. package/dist/vfx/refs/lumaMatte.js +33 -0
  26. package/dist/vfx/refs/lumaMatte.js.map +1 -0
  27. package/dist/vfx/refs/noise.d.ts +33 -0
  28. package/dist/vfx/refs/noise.d.ts.map +1 -0
  29. package/dist/vfx/refs/noise.js +67 -0
  30. package/dist/vfx/refs/noise.js.map +1 -0
  31. package/dist/vfx.d.ts +8 -0
  32. package/dist/vfx.d.ts.map +1 -1
  33. package/dist/vfx.js +71 -0
  34. package/dist/vfx.js.map +1 -1
  35. package/package.json +4 -4
@@ -0,0 +1,32 @@
1
+ export interface HfSeekEventDetail {
2
+ time: number;
3
+ waitUntil: (promise: PromiseLike<unknown>) => void;
4
+ }
5
+ /**
6
+ * Join `promise` to the seek-completion barrier: `waitForSeekCompletion` will
7
+ * not resolve until it settles, and its rejection (the first one) becomes the
8
+ * barrier's.
9
+ *
10
+ * Exported because the `"hf-seek"` event's synchronous `waitUntil()` is not
11
+ * the only asynchronous seek work a frame can owe. `runtime/vfx.ts` registers
12
+ * its preview-side capture here, so the CLI seek paths that already await this
13
+ * barrier wait for a `self` chain's paint instead of racing it.
14
+ */
15
+ export declare function registerSeekCompletion(promise: Promise<unknown>): void;
16
+ export declare function dispatchSeekEvent(time: number): void;
17
+ /**
18
+ * Force-dispatch a `"hf-seek"` event even if `time` equals the last dispatched
19
+ * time, bypassing the dedup guard.
20
+ *
21
+ * Needed for the post-video-injection GPU re-render: the engine seeks to time
22
+ * T (GPU adapters render once, before video frames are injected), then injects
23
+ * the decoded `__render_frame__` images, then must re-render GPU compositions
24
+ * at the *same* T so they re-upload textures from the now-present frames. The
25
+ * normal dedup would swallow that second dispatch.
26
+ */
27
+ export declare function forceDispatchSeekEvent(time: number): void;
28
+ export declare function isSeekCompletionBarrierActive(): boolean;
29
+ export declare function waitForSeekCompletion(): Promise<void>;
30
+ /** Reset internal state — used in tests to prevent cross-test contamination. */
31
+ export declare function resetSeekDispatchState(): void;
32
+ //# sourceMappingURL=seek-dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seek-dispatch.d.ts","sourceRoot":"","sources":["../../../src/runtime/adapters/seek-dispatch.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CACpD;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAWtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAIpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGzD;AAED,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyB3D;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
@@ -0,0 +1,129 @@
1
+ import { swallow } from "../diagnostics.js";
2
+ /**
3
+ * Shared, deduplicated `"hf-seek"` CustomEvent dispatcher for GPU adapters.
4
+ *
5
+ * Both the Three.js and TypeGPU adapters dispatch the same `"hf-seek"` event
6
+ * so that compositions need not know which GPU library they're paired with.
7
+ * Without deduplication, a seek to time T would fire two events (one from each
8
+ * adapter), doubling per-scrub work in any composition that has both present.
9
+ *
10
+ * This module deduplicates by tracking the last dispatched time. If the same
11
+ * time value is dispatched twice in the same synchronous call stack (e.g. two
12
+ * adapters both calling `dispatchSeekEvent(5.0)` without yielding), only the
13
+ * first call fires the event.
14
+ *
15
+ * The deduplication is intentionally coarse (exact float equality). Adapter
16
+ * seek paths clamp and normalise time before calling this function, so the
17
+ * values that arrive here are already stable.
18
+ */
19
+ let _lastDispatchedTime = -1;
20
+ let _pendingCompletions = new Set();
21
+ let _pendingFailure;
22
+ let _activeCompletionBarriers = 0;
23
+ function dispatch(time) {
24
+ const pending = [];
25
+ let accepting = true;
26
+ const detail = {
27
+ time,
28
+ waitUntil: (promise) => {
29
+ if (!accepting) {
30
+ throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");
31
+ }
32
+ pending.push(promise);
33
+ },
34
+ };
35
+ try {
36
+ window.dispatchEvent(new CustomEvent("hf-seek", { detail }));
37
+ }
38
+ catch (err) {
39
+ swallow("runtime.adapters.seek-dispatch.site1", err);
40
+ }
41
+ finally {
42
+ accepting = false;
43
+ }
44
+ if (pending.length === 0)
45
+ return;
46
+ registerSeekCompletion(Promise.all(pending));
47
+ }
48
+ /**
49
+ * Join `promise` to the seek-completion barrier: `waitForSeekCompletion` will
50
+ * not resolve until it settles, and its rejection (the first one) becomes the
51
+ * barrier's.
52
+ *
53
+ * Exported because the `"hf-seek"` event's synchronous `waitUntil()` is not
54
+ * the only asynchronous seek work a frame can owe. `runtime/vfx.ts` registers
55
+ * its preview-side capture here, so the CLI seek paths that already await this
56
+ * barrier wait for a `self` chain's paint instead of racing it.
57
+ */
58
+ export function registerSeekCompletion(promise) {
59
+ const completion = promise
60
+ .then(() => ({ status: "fulfilled" }))
61
+ .catch((reason) => ({ status: "rejected", reason }));
62
+ _pendingCompletions.add(completion);
63
+ void completion.then((result) => {
64
+ if (!_pendingCompletions.delete(completion))
65
+ return;
66
+ if (result.status === "rejected" && _pendingFailure === undefined) {
67
+ _pendingFailure = { reason: result.reason };
68
+ }
69
+ });
70
+ }
71
+ export function dispatchSeekEvent(time) {
72
+ if (time === _lastDispatchedTime)
73
+ return;
74
+ _lastDispatchedTime = time;
75
+ dispatch(time);
76
+ }
77
+ /**
78
+ * Force-dispatch a `"hf-seek"` event even if `time` equals the last dispatched
79
+ * time, bypassing the dedup guard.
80
+ *
81
+ * Needed for the post-video-injection GPU re-render: the engine seeks to time
82
+ * T (GPU adapters render once, before video frames are injected), then injects
83
+ * the decoded `__render_frame__` images, then must re-render GPU compositions
84
+ * at the *same* T so they re-upload textures from the now-present frames. The
85
+ * normal dedup would swallow that second dispatch.
86
+ */
87
+ export function forceDispatchSeekEvent(time) {
88
+ _lastDispatchedTime = time;
89
+ dispatch(time);
90
+ }
91
+ export function isSeekCompletionBarrierActive() {
92
+ return _activeCompletionBarriers > 0;
93
+ }
94
+ export async function waitForSeekCompletion() {
95
+ _activeCompletionBarriers += 1;
96
+ let failed = _pendingFailure;
97
+ try {
98
+ // Let concurrently started barriers snapshot the same retained failure
99
+ // before either one consumes it.
100
+ await Promise.resolve();
101
+ while (_pendingCompletions.size > 0) {
102
+ const results = await Promise.all([..._pendingCompletions]);
103
+ const rejected = results.find((result) => result.status === "rejected");
104
+ if (failed === undefined && rejected?.status === "rejected") {
105
+ failed = { reason: rejected.reason };
106
+ }
107
+ }
108
+ const retainedFailure = _pendingFailure;
109
+ if (failed === undefined) {
110
+ failed = retainedFailure;
111
+ }
112
+ if (_pendingFailure === retainedFailure) {
113
+ _pendingFailure = undefined;
114
+ }
115
+ if (failed)
116
+ throw failed.reason;
117
+ }
118
+ finally {
119
+ _activeCompletionBarriers -= 1;
120
+ }
121
+ }
122
+ /** Reset internal state — used in tests to prevent cross-test contamination. */
123
+ export function resetSeekDispatchState() {
124
+ _lastDispatchedTime = -1;
125
+ _pendingCompletions = new Set();
126
+ _pendingFailure = undefined;
127
+ _activeCompletionBarriers = 0;
128
+ }
129
+ //# sourceMappingURL=seek-dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seek-dispatch.js","sourceRoot":"","sources":["../../../src/runtime/adapters/seek-dispatch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,26 @@ import { rateAt, sourceTimeAt, timeAtSourceTime } from "../speedRamp.js";
8
8
  import { clampAudioGain } from "../audioGain.js";
9
9
  import { isMemberGroupHidden } from "../audioGroups.js";
10
10
  import { findInjectedRenderFrame } from "./renderFrameSibling.js";
11
+ import { registerSeekCompletion } from "./adapters/seek-dispatch.js";
11
12
  export { readElementPlaybackRate, readElementRateSpec, resolveNaturalMediaTimelineDuration, } from "./playbackRate.js";
12
13
  export function readElementPlaybackStart(el) {
13
14
  return readMediaStart(el);
14
15
  }
16
+ const SEEK_END_EVENTS = ["seeked", "error", "emptied", "abort"];
17
+ // A seeking video still paints its previous frame; frame captures wait on the seek barrier until it lands.
18
+ function holdSeekBarrierUntilVideoLands(el) {
19
+ if (el.tagName !== "VIDEO" || !el.seeking)
20
+ return;
21
+ registerSeekCompletion(new Promise((resolve) => {
22
+ const done = () => {
23
+ for (const type of SEEK_END_EVENTS)
24
+ el.removeEventListener(type, done);
25
+ resolve();
26
+ };
27
+ for (const type of SEEK_END_EVENTS)
28
+ el.addEventListener(type, done);
29
+ }));
30
+ }
15
31
  /**
16
32
  * Resolve a media element's timeline window without conflating a video's
17
33
  * authored display slot with the amount of source left to decode.
@@ -392,6 +408,7 @@ export function syncRuntimeMedia(params) {
392
408
  swallow("runtime.media.site3", err);
393
409
  }
394
410
  }
411
+ holdSeekBarrierUntilVideoLands(el);
395
412
  }
396
413
  playRequested.delete(el);
397
414
  }
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/runtime/media.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
1
  /**
2
2
  * `displacement-map` kernel — GLSL ES 3.00, capture `self`.
3
3
  *
4
- * **Scope (v1, recorded rather than implied):** every corpus instance points
5
- * its Displacement Map Layer at **the layer itself** (retro-wave `Main/Text`
6
- * → idx 5 = Text; `Logo Anim/Text Site` and `Logo Anim/Logo` likewise), so
7
- * `u_src` is both the source and the map and no second capture is needed. A
8
- * map that is a *different* layer is out of v1 — it needs a second source,
9
- * which is Phase 2b's `ref`-param shape; the exporter emits a structural
10
- * capability for it instead.
4
+ * **The map layer.** Every corpus instance points its Displacement Map Layer
5
+ * at **the layer itself** (retro-wave `Main/Text` → idx 5 = Text; `Logo Anim/
6
+ * Text Site` and `Logo Anim/Logo` likewise), so `u_src` is both the source and
7
+ * the map and no second capture is needed — that is what the `map` ref param
8
+ * being EMPTY means, and it stays the default. An external map layer is the
9
+ * same kernel reading `u_src2`: the exporter names that element in `map` and
10
+ * wraps it in its own `.hf-vfx-src` capture, and `u_hasSrc2` switches the
11
+ * sampler. The two inputs are read at the same `v_uv`, so an external map is
12
+ * scaled into the host's box (see `captureSource`), not placed in composition
13
+ * space.
11
14
  *
12
15
  * Per axis: `d = (channel(map) − 0.5) · 2 · max`, then sample `u_src` at
13
16
  * `uv + d/u_size` with **clamp-to-transparent** edges (Edge = Off, the only
@@ -1 +1 @@
1
- {"version":3,"file":"displacementMap.frag.d.ts","sourceRoot":"","sources":["../../src/vfx/displacementMap.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAIX,eAAO,MAAM,qBAAqB,QA2CjC,CAAC"}
1
+ {"version":3,"file":"displacementMap.frag.d.ts","sourceRoot":"","sources":["../../src/vfx/displacementMap.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAIX,eAAO,MAAM,qBAAqB,QA+CjC,CAAC"}
@@ -1,13 +1,16 @@
1
1
  /**
2
2
  * `displacement-map` kernel — GLSL ES 3.00, capture `self`.
3
3
  *
4
- * **Scope (v1, recorded rather than implied):** every corpus instance points
5
- * its Displacement Map Layer at **the layer itself** (retro-wave `Main/Text`
6
- * → idx 5 = Text; `Logo Anim/Text Site` and `Logo Anim/Logo` likewise), so
7
- * `u_src` is both the source and the map and no second capture is needed. A
8
- * map that is a *different* layer is out of v1 — it needs a second source,
9
- * which is Phase 2b's `ref`-param shape; the exporter emits a structural
10
- * capability for it instead.
4
+ * **The map layer.** Every corpus instance points its Displacement Map Layer
5
+ * at **the layer itself** (retro-wave `Main/Text` → idx 5 = Text; `Logo Anim/
6
+ * Text Site` and `Logo Anim/Logo` likewise), so `u_src` is both the source and
7
+ * the map and no second capture is needed — that is what the `map` ref param
8
+ * being EMPTY means, and it stays the default. An external map layer is the
9
+ * same kernel reading `u_src2`: the exporter names that element in `map` and
10
+ * wraps it in its own `.hf-vfx-src` capture, and `u_hasSrc2` switches the
11
+ * sampler. The two inputs are read at the same `v_uv`, so an external map is
12
+ * scaled into the host's box (see `captureSource`), not placed in composition
13
+ * space.
11
14
  *
12
15
  * Per axis: `d = (channel(map) − 0.5) · 2 · max`, then sample `u_src` at
13
16
  * `uv + d/u_size` with **clamp-to-transparent** edges (Edge = Off, the only
@@ -48,6 +51,10 @@ uniform vec2 u_size;
48
51
  uniform float u_t;
49
52
  uniform float u_fps;
50
53
  uniform sampler2D u_src;
54
+ uniform sampler2D u_src2;
55
+ // 1 when the map ref named another element, 0 when the map is the layer
56
+ // itself. Set by the runtime for every pass, from whether a ref resolved.
57
+ uniform float u_hasSrc2;
51
58
  uniform float u_useH;
52
59
  uniform float u_maxH;
53
60
  uniform float u_useV;
@@ -75,7 +82,7 @@ float hfMapChannel(vec4 premultiplied, float selector) {
75
82
  }
76
83
 
77
84
  void main() {
78
- vec4 mapTexel = texture(u_src, v_uv);
85
+ vec4 mapTexel = u_hasSrc2 > 0.5 ? texture(u_src2, v_uv) : texture(u_src, v_uv);
79
86
  float h = hfMapChannel(mapTexel, u_useH);
80
87
  float v = hfMapChannel(mapTexel, u_useV);
81
88
  vec2 d = vec2((h - 0.5) * 2.0 * u_maxH, (v - 0.5) * 2.0 * u_maxV);
@@ -1 +1 @@
1
- {"version":3,"file":"displacementMap.frag.js","sourceRoot":"","sources":["../../src/vfx/displacementMap.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;CACJ,CAAC;AAEX,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,0BAA0B,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CA+BQ,KAAK,KAAK,KAAK,KAAK,KAAK;;;;;;;;;;;;CAYrE,CAAC"}
1
+ {"version":3,"file":"displacementMap.frag.js","sourceRoot":"","sources":["../../src/vfx/displacementMap.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;CACJ,CAAC;AAEX,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,0BAA0B,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAmCQ,KAAK,KAAK,KAAK,KAAK,KAAK;;;;;;;;;;;;CAYrE,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * `luma-matte` kernel — GLSL ES 3.00, capture `self` plus a `ref` second
3
+ * source.
4
+ *
5
+ * **What it ports.** Not a single After Effects effect: this is the runtime
6
+ * form of every matte the exporter cannot express as CSS — a track matte whose
7
+ * source layer is unsupported (`matte-source-unsupported:*`), a stencil or
8
+ * silhouette (`stencil-*`), and Set Matte. All of them are the same
9
+ * per-pixel operation, `out = src · coverage(matte)`, differing only in which
10
+ * element is the source and which is the matte. The exporter decides that by
11
+ * choosing which element the host wraps and which the `matte` ref names; a
12
+ * stencil is this kernel with the host's own content as the matte.
13
+ *
14
+ * **Coverage.** `src` arrives premultiplied, so scaling all four channels by a
15
+ * single coverage value is the whole operation — no unpremultiply/repremultiply
16
+ * round trip, and a coverage of 0 yields a genuinely empty pixel rather than a
17
+ * black one.
18
+ *
19
+ * - Alpha (1) / Alpha Inverted (2): the matte's alpha.
20
+ * - Luma (3) / Luma Inverted (4): the matte's luminance **composited over
21
+ * black**, which is what the premultiplied texel already holds — a matte that
22
+ * is 50 % grey at 50 % opacity reads as 0.25, matching After Effects, where a
23
+ * luma matte's transparent regions are black rather than ignored.
24
+ *
25
+ * Rec.601 weights, shared with `displacement-map`'s Luminance channel selector
26
+ * so the two agree on what "luminance" means.
27
+ *
28
+ * **Out of scope in v1, recorded rather than implied:** the matte is sampled at
29
+ * the host's own `v_uv`, so the runtime captures it into the host's box (see
30
+ * `captureSource`). After Effects places a matte layer in composition space
31
+ * with its own transform; a matte whose box differs from the layer's is
32
+ * therefore stretched here, not positioned. Every corpus matte is a
33
+ * full-frame sibling of its layer, where the two agree.
34
+ */
35
+ /** The `mode` enum, named once so the def, the shader and the reference agree. */
36
+ export declare const LUMA_MATTE_MODES: {
37
+ readonly alpha: 1;
38
+ readonly alphaInverted: 2;
39
+ readonly luma: 3;
40
+ readonly lumaInverted: 4;
41
+ };
42
+ export declare const LUMA_MATTE_FRAG: string;
43
+ //# sourceMappingURL=lumaMatte.frag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lumaMatte.frag.d.ts","sourceRoot":"","sources":["../../src/vfx/lumaMatte.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH,kFAAkF;AAClF,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AAEX,eAAO,MAAM,eAAe,QA4B3B,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * `luma-matte` kernel — GLSL ES 3.00, capture `self` plus a `ref` second
3
+ * source.
4
+ *
5
+ * **What it ports.** Not a single After Effects effect: this is the runtime
6
+ * form of every matte the exporter cannot express as CSS — a track matte whose
7
+ * source layer is unsupported (`matte-source-unsupported:*`), a stencil or
8
+ * silhouette (`stencil-*`), and Set Matte. All of them are the same
9
+ * per-pixel operation, `out = src · coverage(matte)`, differing only in which
10
+ * element is the source and which is the matte. The exporter decides that by
11
+ * choosing which element the host wraps and which the `matte` ref names; a
12
+ * stencil is this kernel with the host's own content as the matte.
13
+ *
14
+ * **Coverage.** `src` arrives premultiplied, so scaling all four channels by a
15
+ * single coverage value is the whole operation — no unpremultiply/repremultiply
16
+ * round trip, and a coverage of 0 yields a genuinely empty pixel rather than a
17
+ * black one.
18
+ *
19
+ * - Alpha (1) / Alpha Inverted (2): the matte's alpha.
20
+ * - Luma (3) / Luma Inverted (4): the matte's luminance **composited over
21
+ * black**, which is what the premultiplied texel already holds — a matte that
22
+ * is 50 % grey at 50 % opacity reads as 0.25, matching After Effects, where a
23
+ * luma matte's transparent regions are black rather than ignored.
24
+ *
25
+ * Rec.601 weights, shared with `displacement-map`'s Luminance channel selector
26
+ * so the two agree on what "luminance" means.
27
+ *
28
+ * **Out of scope in v1, recorded rather than implied:** the matte is sampled at
29
+ * the host's own `v_uv`, so the runtime captures it into the host's box (see
30
+ * `captureSource`). After Effects places a matte layer in composition space
31
+ * with its own transform; a matte whose box differs from the layer's is
32
+ * therefore stretched here, not positioned. Every corpus matte is a
33
+ * full-frame sibling of its layer, where the two agree.
34
+ */
35
+ import { DISPLACEMENT_MAP_CONSTANTS } from "./displacementMap.frag.js";
36
+ const { lumaR, lumaG, lumaB } = DISPLACEMENT_MAP_CONSTANTS;
37
+ /** The `mode` enum, named once so the def, the shader and the reference agree. */
38
+ export const LUMA_MATTE_MODES = {
39
+ alpha: 1,
40
+ alphaInverted: 2,
41
+ luma: 3,
42
+ lumaInverted: 4,
43
+ };
44
+ export const LUMA_MATTE_FRAG = `#version 300 es
45
+ precision highp float;
46
+
47
+ in vec2 v_uv;
48
+ out vec4 fragColor;
49
+
50
+ uniform vec2 u_size;
51
+ uniform float u_t;
52
+ uniform float u_fps;
53
+ uniform sampler2D u_src;
54
+ uniform sampler2D u_src2;
55
+ uniform float u_mode;
56
+
57
+ // The matte texel is premultiplied, so its rgb is already "over black" — the
58
+ // composite After Effects reads a luma matte through.
59
+ float hfCoverage(vec4 matte, float mode) {
60
+ if (mode < 1.5) return matte.a;
61
+ if (mode < 2.5) return 1.0 - matte.a;
62
+ float luma = dot(matte.rgb, vec3(${lumaR}, ${lumaG}, ${lumaB}));
63
+ if (mode < 3.5) return luma;
64
+ return 1.0 - luma;
65
+ }
66
+
67
+ void main() {
68
+ vec4 src = texture(u_src, v_uv);
69
+ vec4 matte = texture(u_src2, v_uv);
70
+ fragColor = src * clamp(hfCoverage(matte, u_mode), 0.0, 1.0);
71
+ }
72
+ `;
73
+ //# sourceMappingURL=lumaMatte.frag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lumaMatte.frag.js","sourceRoot":"","sources":["../../src/vfx/lumaMatte.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,0BAA0B,CAAC;AAE3D,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,CAAC;IACR,aAAa,EAAE,CAAC;IAChB,IAAI,EAAE,CAAC;IACP,YAAY,EAAE,CAAC;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;qCAkBM,KAAK,KAAK,KAAK,KAAK,KAAK;;;;;;;;;;CAU7D,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * `noise` kernel — GLSL ES 3.00, capture `self`.
3
+ *
4
+ * A port of After Effects' `ADBE Noise`, decoded from `AEFX_Noise.metallib`
5
+ * (`docs/superpowers/specs/ae-metal-ir/AEFX_Noise.metallib.ll` in the exporter
6
+ * repo, helper `_Z5Noise8PixelRGBiifiiff`). The kernel is a pure integer hash of
7
+ * `(x, y, seed)` — no lookup table, no state between frames — so it ports
8
+ * exactly and stays seek-safe by construction.
9
+ *
10
+ * **What the IR says, read from the struct metadata rather than from prose.**
11
+ * `NoiseKernelValues` is `{ inDeviceFormat, inNoiseAmount, inUseColorNoise,
12
+ * inClipNoiseOutput, inRandomSeed_High, inRandomSeed_Low, inNoiseOffsetX,
13
+ * inNoiseOffsetY, … }`. So `ADBE Noise-0002` is **Use Color Noise**, a
14
+ * checkbox — not the "Noise Type (Uniform / Gaussian)" popup the deep dive
15
+ * guessed — and the two mystery seed floats are the halves of one 32-bit
16
+ * random seed. Both params are named here the way the metadata names them.
17
+ *
18
+ * Per channel:
19
+ *
20
+ * seed32 = (uint(seedHigh) << 16) | (uint(seedLow) & 0xFFFF)
21
+ * h = jenkinsMix(a, y, seed32) // Bob Jenkins' 1997 mix, verbatim
22
+ * t2 = h * 1103515245 + 12345
23
+ * t4 = t2 * 12996205 + 12345
24
+ * byte = ((t4 >> 16) & 0xFF) ^ ((t2 >> 9) & 0x7F80)
25
+ * noise = amount · (byte / 32704 − 0.5)
26
+ *
27
+ * with `a = x` for monochrome noise and `a = 3x + channel` (R, G, B) for colour
28
+ * noise — four separate hash blocks in the IR, three of them consecutive in
29
+ * `3x`. `32704` is the reciprocal constant `0x3F00002000000000` spelled as a
30
+ * fraction. The noise is ADDED to the buffer's colour and, when Clip Result
31
+ * Values is on, all four channels are clamped to [0, 1] — alpha is clamped but
32
+ * never noised.
33
+ *
34
+ * **Interim seed (plan Task 2.7, pending the Task 4.3 probe).** What the CPU
35
+ * puts in `inRandomSeed_High`/`inRandomSeed_Low` per frame is still unknown —
36
+ * it is the effect's Random Seed combined with something frame-derived, which
37
+ * is why the noise animates with no keyframed property. Until the probe pins
38
+ * it, this kernel seeds the low half with the frame index and leaves the high
39
+ * half at zero, so the pattern is deterministic per frame and different between
40
+ * frames. Switching to the decoded packing is a change to two lines here and
41
+ * two in the reference; nothing else depends on it, and the tests assert the
42
+ * byte distribution and determinism rather than After Effects parity.
43
+ *
44
+ * **Pixel space.** `x` and `y` are integer pixel coordinates with y measured
45
+ * from the TOP, which is how After Effects indexes the buffer — the shader's
46
+ * `v_uv` is y-up, so the row is flipped back here. `inNoiseOffsetX/Y` (the
47
+ * layer's origin inside the source buffer) are not modelled: a HyperFrames host
48
+ * always captures its own box, so its origin is (0, 0).
49
+ *
50
+ * **Premultiplication.** The noise is added to the captured texel as it is,
51
+ * which is premultiplied — the literal port, and After Effects' own buffers are
52
+ * premultiplied too. The consequence is worth stating: on a layer with
53
+ * transparency the noise lands in the transparent region as well, exactly as
54
+ * the effect does in After Effects.
55
+ *
56
+ * **`rgb ≤ a` is enforced regardless of `Clip Result Values`, and that is a
57
+ * deliberate DEPARTURE from AE, not a port of it.** A valid premultiplied
58
+ * colour always has `rgb ≤ a` component-wise (it is `straightRgb · a`); adding
59
+ * noise to `src.rgb` can push it above `src.a` on a near-transparent texel,
60
+ * and `clamp(out4, 0, 1)` alone does not fix that — it clamps each channel to
61
+ * [0, 1] independently, never rgb to a. After Effects can carry that
62
+ * transient state through its float pipeline because everything downstream of
63
+ * it is float too; every render target this runtime writes is 8-bit RGBA
64
+ * (`GL_ATTRS`, `makePingTarget`), and an invalid premultiplied texel read back
65
+ * later (e.g. straight-alpha `rgb / a` for display) reads as a blown-out
66
+ * bright fringe rather than the visible defect After Effects itself never
67
+ * produces. So the clamp to `a` runs unconditionally, on both the `Clip
68
+ * Result Values` on and off paths.
69
+ *
70
+ * **`Clip Result Values` off is otherwise inert here, and that is a real,
71
+ * currently permanent limitation, not a bug to fix in this file.** Every
72
+ * render target in this runtime — the visible `.hf-vfx-out` canvas AND the
73
+ * ping-pong intermediates a multi-node chain reads between passes — is 8-bit
74
+ * `UNSIGNED_BYTE` RGBA, and the GL spec clamps a float fragment output to
75
+ * [0, 1] on conversion to a normalized integer target regardless of what the
76
+ * shader computes. `u_clipping = 0` therefore cannot produce an unclamped
77
+ * value anywhere in this pipeline today; it would take a floating-point
78
+ * render target (a real infrastructure change, not a one-line fix) to give it
79
+ * one. Recorded rather than silently accepted: a reviewer who mutates this
80
+ * shader and finds `u_clipping` untestable is finding a known limitation, not
81
+ * a fresh bug.
82
+ */
83
+ /**
84
+ * The constants the reference has to agree with, named once. `byteScale` is
85
+ * `0x3F00002000000000` from the IR — (1 + 2⁻⁹) · 2⁻¹⁵, i.e. 1/32704.
86
+ */
87
+ export declare const NOISE_CONSTANTS: {
88
+ readonly lcgMulA: 1103515245;
89
+ readonly lcgMulB: 12996205;
90
+ readonly lcgAdd: 12345;
91
+ readonly highMask: 32640;
92
+ readonly lowMask: 255;
93
+ readonly byteScale: 32704;
94
+ };
95
+ export declare const NOISE_FRAG: string;
96
+ //# sourceMappingURL=noise.frag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noise.frag.d.ts","sourceRoot":"","sources":["../../src/vfx/noise.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAIX,eAAO,MAAM,UAAU,QAwEtB,CAAC"}