@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,169 @@
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 const NOISE_CONSTANTS = {
88
+ lcgMulA: 1103515245,
89
+ lcgMulB: 12996205,
90
+ lcgAdd: 12345,
91
+ highMask: 0x7f80,
92
+ lowMask: 0xff,
93
+ byteScale: 32704,
94
+ };
95
+ const { lcgMulA, lcgMulB, lcgAdd, highMask, lowMask, byteScale } = NOISE_CONSTANTS;
96
+ export const NOISE_FRAG = `#version 300 es
97
+ precision highp float;
98
+ // NOT decoration: a fragment shader's default integer precision is mediump,
99
+ // and a mediump uint is only guaranteed 16 bits (ESSL 3.00 §4.5.2). Every step
100
+ // below — the Jenkins mix, both LCG rounds — is defined by 32-bit wraparound,
101
+ // so without this the hash is a different function on any implementation that
102
+ // honours the minimum. ANGLE and SwiftShader both use 32-bit ints, which is
103
+ // exactly why no test on this machine would catch it.
104
+ precision highp int;
105
+
106
+ in vec2 v_uv;
107
+ out vec4 fragColor;
108
+
109
+ uniform vec2 u_size;
110
+ uniform float u_t;
111
+ uniform float u_fps;
112
+ uniform sampler2D u_src;
113
+ uniform float u_amount;
114
+ uniform float u_useColorNoise;
115
+ uniform float u_clipping;
116
+
117
+ // Bob Jenkins' 1997 integer mix, the six-round shift/xor/subtract sequence the
118
+ // metallib runs verbatim. uint arithmetic wraps in GLSL ES 3.00, which is what
119
+ // makes this bit-identical to the C original.
120
+ uint hfJenkinsMix(uint a, uint b, uint c) {
121
+ a -= b; a -= c; a ^= (c >> 13u);
122
+ b -= c; b -= a; b ^= (a << 8u);
123
+ c -= a; c -= b; c ^= (b >> 13u);
124
+ a -= b; a -= c; a ^= (c >> 12u);
125
+ b -= c; b -= a; b ^= (a << 16u);
126
+ c -= a; c -= b; c ^= (b >> 5u);
127
+ a -= b; a -= c; a ^= (c >> 3u);
128
+ b -= c; b -= a; b ^= (a << 10u);
129
+ c -= a; c -= b; c ^= (b >> 15u);
130
+ return c;
131
+ }
132
+
133
+ // The hash's 15-bit output byte for one channel.
134
+ float hfNoiseByte(uint a, uint y, uint seed) {
135
+ uint h = hfJenkinsMix(a, y, seed);
136
+ uint t2 = h * ${lcgMulA}u + ${lcgAdd}u;
137
+ uint t4 = t2 * ${lcgMulB}u + ${lcgAdd}u;
138
+ return float(((t4 >> 16u) & ${lowMask}u) ^ ((t2 >> 9u) & ${highMask}u));
139
+ }
140
+
141
+ void main() {
142
+ vec4 src = texture(u_src, v_uv);
143
+ vec2 px = floor(v_uv * u_size);
144
+ uint x = uint(max(px.x, 0.0));
145
+ // After Effects indexes rows from the top; v_uv is y-up.
146
+ uint y = uint(max(u_size.y - 1.0 - px.y, 0.0));
147
+ float frame = floor(u_t * u_fps + 0.5);
148
+ uint seed = uint(max(frame, 0.0)) & 0xFFFFu;
149
+
150
+ float amount = u_amount * 0.01;
151
+ vec3 nz;
152
+ if (u_useColorNoise > 0.5) {
153
+ uint a = x * 3u;
154
+ nz = vec3(hfNoiseByte(a, y, seed), hfNoiseByte(a + 1u, y, seed), hfNoiseByte(a + 2u, y, seed));
155
+ } else {
156
+ nz = vec3(hfNoiseByte(x, y, seed));
157
+ }
158
+ nz = amount * (nz / ${byteScale}.0 - 0.5);
159
+
160
+ vec4 out4 = vec4(src.rgb + nz, src.a);
161
+ // A valid premultiplied colour needs rgb <= a component-wise; noise on a
162
+ // near-transparent texel can push rgb above it, which our fixed 8-bit RGBA
163
+ // storage cannot carry safely the way AE's float pipeline can (see the doc
164
+ // comment above). This runs before, and independently of, u_clipping.
165
+ out4.rgb = min(out4.rgb, out4.a);
166
+ fragColor = u_clipping > 0.5 ? clamp(out4, 0.0, 1.0) : out4;
167
+ }
168
+ `;
169
+ //# sourceMappingURL=noise.frag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noise.frag.js","sourceRoot":"","sources":["../../src/vfx/noise.frag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,KAAK;CACR,CAAC;AAEX,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;AAEnF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwCR,OAAO,OAAO,MAAM;mBACnB,OAAO,OAAO,MAAM;gCACP,OAAO,sBAAsB,QAAQ;;;;;;;;;;;;;;;;;;;;wBAoB7C,SAAS;;;;;;;;;;CAUhC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * CPU reference for the `luma-matte` kernel. Unlike `wave-warp`'s and
3
+ * `displacement-map`'s, which return the coordinate they sample, this one
4
+ * returns the colour: the kernel's whole decision is a per-pixel scale, and a
5
+ * caller with both texels can check it exactly.
6
+ *
7
+ * Both texels are **premultiplied**, matching the textures the runtime uploads.
8
+ */
9
+ import { type HfVfxParamValues } from "../../vfx";
10
+ export interface Rgba {
11
+ r: number;
12
+ g: number;
13
+ b: number;
14
+ a: number;
15
+ }
16
+ /** The shader's `hfCoverage`. */
17
+ export declare function lumaMatteCoverageRef(matte: Rgba, mode: number): number;
18
+ /**
19
+ * The colour the kernel paints. `t` is part of the call shape every kernel
20
+ * reference shares; a matte is time-invariant — its animation arrives as
21
+ * movement in the matte element itself.
22
+ */
23
+ export declare function lumaMatteSampleRef(src: Rgba, matte: Rgba, t: number, params: HfVfxParamValues): Rgba;
24
+ //# sourceMappingURL=lumaMatte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lumaMatte.d.ts","sourceRoot":"","sources":["../../../src/vfx/refs/lumaMatte.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAMtE,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,iCAAiC;AACjC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,IAAI,EACX,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,gBAAgB,GACvB,IAAI,CAKN"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * CPU reference for the `luma-matte` kernel. Unlike `wave-warp`'s and
3
+ * `displacement-map`'s, which return the coordinate they sample, this one
4
+ * returns the colour: the kernel's whole decision is a per-pixel scale, and a
5
+ * caller with both texels can check it exactly.
6
+ *
7
+ * Both texels are **premultiplied**, matching the textures the runtime uploads.
8
+ */
9
+ import { normalizeVfxParams } from "../../vfx.js";
10
+ import { DISPLACEMENT_MAP_CONSTANTS } from "../displacementMap.frag.js";
11
+ import { LUMA_MATTE_MODES } from "../lumaMatte.frag.js";
12
+ const { lumaR, lumaG, lumaB } = DISPLACEMENT_MAP_CONSTANTS;
13
+ /** The shader's `hfCoverage`. */
14
+ export function lumaMatteCoverageRef(matte, mode) {
15
+ if (mode < LUMA_MATTE_MODES.alphaInverted)
16
+ return matte.a;
17
+ if (mode < LUMA_MATTE_MODES.luma)
18
+ return 1 - matte.a;
19
+ const luma = matte.r * lumaR + matte.g * lumaG + matte.b * lumaB;
20
+ return mode < LUMA_MATTE_MODES.lumaInverted ? luma : 1 - luma;
21
+ }
22
+ /**
23
+ * The colour the kernel paints. `t` is part of the call shape every kernel
24
+ * reference shares; a matte is time-invariant — its animation arrives as
25
+ * movement in the matte element itself.
26
+ */
27
+ export function lumaMatteSampleRef(src, matte, t, params) {
28
+ void t;
29
+ const n = normalizeVfxParams("luma-matte", params);
30
+ const coverage = Math.min(1, Math.max(0, lumaMatteCoverageRef(matte, Number(n["mode"]))));
31
+ return { r: src.r * coverage, g: src.g * coverage, b: src.b * coverage, a: src.a * coverage };
32
+ }
33
+ //# sourceMappingURL=lumaMatte.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lumaMatte.js","sourceRoot":"","sources":["../../../src/vfx/refs/lumaMatte.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAyB,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,0BAA0B,CAAC;AAS3D,iCAAiC;AACjC,MAAM,UAAU,oBAAoB,CAAC,KAAW,EAAE,IAAY;IAC5D,IAAI,IAAI,GAAG,gBAAgB,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC;IAC1D,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IACjE,OAAO,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAS,EACT,KAAW,EACX,CAAS,EACT,MAAwB;IAExB,KAAK,CAAC,CAAC;IACP,MAAM,CAAC,GAAG,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC;AAChG,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * CPU reference for the `noise` kernel — the same integer hash the shader
3
+ * runs, in 32-bit wrapping arithmetic. JavaScript's `>>> 0` and `Math.imul`
4
+ * reproduce C's `unsigned int` overflow exactly, which is the property the
5
+ * whole port rests on.
6
+ *
7
+ * Returns the noise OFFSET applied to a pixel, not the colour: the offset is
8
+ * the entirety of what the kernel computes, and the add-and-clip around it is
9
+ * two lines a caller can apply itself.
10
+ */
11
+ import { type HfVfxParamValues } from "../../vfx";
12
+ /** The hash's 15-bit output byte for one channel index `a`. */
13
+ export declare function noiseByteRef(a: number, y: number, seed: number): number;
14
+ /**
15
+ * The 32-bit seed the kernel hashes with. Interim, pending the Task 4.3 probe:
16
+ * the frame index goes in the low half and the high half is zero. The packing
17
+ * itself is the metallib's (`inRandomSeed_High` << 16 | `inRandomSeed_Low`), so
18
+ * the probe's answer replaces the arguments, not the shape.
19
+ */
20
+ export declare function noiseSeedRef(t: number, fps: number): number;
21
+ /**
22
+ * The per-channel noise offset the kernel adds at pixel `(x, y)` — `y` counted
23
+ * from the TOP of the layer, as After Effects indexes its buffer.
24
+ */
25
+ export declare function noiseOffsetRef(p: {
26
+ x: number;
27
+ y: number;
28
+ }, t: number, fps: number, params: HfVfxParamValues): {
29
+ r: number;
30
+ g: number;
31
+ b: number;
32
+ };
33
+ //# sourceMappingURL=noise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noise.d.ts","sourceRoot":"","sources":["../../../src/vfx/refs/noise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAsBtE,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3B,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,GACvB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAerC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * CPU reference for the `noise` kernel — the same integer hash the shader
3
+ * runs, in 32-bit wrapping arithmetic. JavaScript's `>>> 0` and `Math.imul`
4
+ * reproduce C's `unsigned int` overflow exactly, which is the property the
5
+ * whole port rests on.
6
+ *
7
+ * Returns the noise OFFSET applied to a pixel, not the colour: the offset is
8
+ * the entirety of what the kernel computes, and the add-and-clip around it is
9
+ * two lines a caller can apply itself.
10
+ */
11
+ import { normalizeVfxParams } from "../../vfx.js";
12
+ import { NOISE_CONSTANTS } from "../noise.frag.js";
13
+ const { lcgMulA, lcgMulB, lcgAdd, highMask, lowMask, byteScale } = NOISE_CONSTANTS;
14
+ /** Bob Jenkins' 1997 integer mix, the metallib's sequence verbatim. */
15
+ function jenkinsMix(a0, b0, c0) {
16
+ let a = a0 >>> 0;
17
+ let b = b0 >>> 0;
18
+ let c = c0 >>> 0;
19
+ a = (a - b - c) ^ (c >>> 13);
20
+ b = (b - c - a) ^ (a << 8);
21
+ c = (c - a - b) ^ (b >>> 13);
22
+ a = (a - b - c) ^ (c >>> 12);
23
+ b = (b - c - a) ^ (a << 16);
24
+ c = (c - a - b) ^ (b >>> 5);
25
+ a = (a - b - c) ^ (c >>> 3);
26
+ b = (b - c - a) ^ (a << 10);
27
+ c = (c - a - b) ^ (b >>> 15);
28
+ return c >>> 0;
29
+ }
30
+ /** The hash's 15-bit output byte for one channel index `a`. */
31
+ export function noiseByteRef(a, y, seed) {
32
+ const h = jenkinsMix(a, y, seed);
33
+ const t2 = (Math.imul(h, lcgMulA) + lcgAdd) >>> 0;
34
+ const t4 = (Math.imul(t2, lcgMulB) + lcgAdd) >>> 0;
35
+ return (((t4 >>> 16) & lowMask) ^ ((t2 >>> 9) & highMask)) >>> 0;
36
+ }
37
+ /**
38
+ * The 32-bit seed the kernel hashes with. Interim, pending the Task 4.3 probe:
39
+ * the frame index goes in the low half and the high half is zero. The packing
40
+ * itself is the metallib's (`inRandomSeed_High` << 16 | `inRandomSeed_Low`), so
41
+ * the probe's answer replaces the arguments, not the shape.
42
+ */
43
+ export function noiseSeedRef(t, fps) {
44
+ const frame = Math.floor(t * fps + 0.5);
45
+ return Math.max(frame, 0) & 0xffff;
46
+ }
47
+ /**
48
+ * The per-channel noise offset the kernel adds at pixel `(x, y)` — `y` counted
49
+ * from the TOP of the layer, as After Effects indexes its buffer.
50
+ */
51
+ export function noiseOffsetRef(p, t, fps, params) {
52
+ const n = normalizeVfxParams("noise", params);
53
+ const amount = Number(n["amount"]) * 0.01;
54
+ const seed = noiseSeedRef(t, fps);
55
+ const x = Math.max(Math.floor(p.x), 0);
56
+ const y = Math.max(Math.floor(p.y), 0);
57
+ const bytes = n["useColorNoise"]
58
+ ? [
59
+ noiseByteRef(x * 3, y, seed),
60
+ noiseByteRef(x * 3 + 1, y, seed),
61
+ noiseByteRef(x * 3 + 2, y, seed),
62
+ ]
63
+ : Array(3).fill(noiseByteRef(x, y, seed));
64
+ const [r, g, b] = bytes.map((byte) => amount * (byte / byteScale - 0.5));
65
+ return { r: r, g: g, b: b };
66
+ }
67
+ //# sourceMappingURL=noise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noise.js","sourceRoot":"","sources":["../../../src/vfx/refs/noise.ts"],"names":[],"mappings":"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"}
package/dist/vfx.d.ts CHANGED
@@ -58,6 +58,14 @@ export interface HfVfxRefParam {
58
58
  kind: "ref";
59
59
  key: string;
60
60
  label: string;
61
+ /**
62
+ * The kernel works without it. `displacement-map` reads its own pixels as
63
+ * the map when `map` is empty (every corpus instance is self-referential),
64
+ * while `luma-matte` without a matte has nothing to do, so a missing id
65
+ * there is a loud failure. Spec amendment to v1.1, which had no optional
66
+ * refs because its only ref was required.
67
+ */
68
+ optional?: boolean;
61
69
  }
62
70
  export type HfVfxParam = HfVfxNumberParam | HfVfxEnumParam | HfVfxBoolParam | HfVfxRefParam;
63
71
  /** `string` values only occur for `ref` params (element ids). */
package/dist/vfx.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vfx.d.ts","sourceRoot":"","sources":["../src/vfx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vfx.d.ts","sourceRoot":"","sources":["../src/vfx.ts"],"names":[],"mappings":"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"}
package/dist/vfx.js CHANGED
@@ -9,6 +9,8 @@
9
9
  */
10
10
  import { FRACTAL_NOISE_FRAG } from "./vfx/fractalNoise.frag.js";
11
11
  import { DISPLACEMENT_MAP_FRAG } from "./vfx/displacementMap.frag.js";
12
+ import { LUMA_MATTE_FRAG } from "./vfx/lumaMatte.frag.js";
13
+ import { NOISE_FRAG } from "./vfx/noise.frag.js";
12
14
  import { WAVE_WARP_FRAG } from "./vfx/waveWarp.frag.js";
13
15
  export const HF_VFX_ATTR = "data-vfx-chain";
14
16
  /**
@@ -254,6 +256,14 @@ export const HF_VFX = [
254
256
  capture: "self",
255
257
  frag: DISPLACEMENT_MAP_FRAG,
256
258
  params: [
259
+ {
260
+ kind: "ref",
261
+ key: "map",
262
+ label: "Displacement Map Layer",
263
+ // Optional: empty means the AE default the corpus uses, a map layer
264
+ // pointing at the layer itself, which `u_src` already holds.
265
+ optional: true,
266
+ },
257
267
  {
258
268
  kind: "enum",
259
269
  key: "useH",
@@ -316,6 +326,67 @@ export const HF_VFX = [
316
326
  },
317
327
  ],
318
328
  },
329
+ {
330
+ id: "luma-matte",
331
+ label: "Matte",
332
+ // Not one AE effect: the runtime form of every matte the exporter cannot
333
+ // express as CSS — unsupported track-matte sources, stencils and
334
+ // silhouettes, Set Matte. Which element is the source and which the matte
335
+ // is the exporter's choice of what to wrap and what to name in `matte`.
336
+ capture: "self",
337
+ frag: LUMA_MATTE_FRAG,
338
+ params: [
339
+ { kind: "ref", key: "matte", label: "Matte Layer" },
340
+ {
341
+ kind: "enum",
342
+ key: "mode",
343
+ label: "Matte Mode",
344
+ options: [
345
+ { value: 1, label: "Alpha" },
346
+ { value: 2, label: "Alpha Inverted" },
347
+ { value: 3, label: "Luma" },
348
+ { value: 4, label: "Luma Inverted" },
349
+ ],
350
+ default: 1,
351
+ },
352
+ ],
353
+ },
354
+ {
355
+ id: "noise",
356
+ label: "Noise",
357
+ ae: "ADBE Noise",
358
+ // `self` on a content layer and `backdrop` on an adjustment layer are the
359
+ // same kernel reading the same `u_src`; the runtime resolves which from
360
+ // the DOM (a `data-vfx-for` wrapper), so the def declares only that a
361
+ // texture is needed.
362
+ capture: "self",
363
+ frag: NOISE_FRAG,
364
+ params: [
365
+ {
366
+ kind: "number",
367
+ key: "amount",
368
+ label: "Amount of Noise",
369
+ unit: "%",
370
+ min: 0,
371
+ max: 400,
372
+ step: 0.1,
373
+ default: 0,
374
+ animatable: true,
375
+ },
376
+ {
377
+ kind: "bool",
378
+ key: "useColorNoise",
379
+ label: "Use Color Noise",
380
+ default: false,
381
+ },
382
+ {
383
+ kind: "bool",
384
+ key: "clipping",
385
+ label: "Clip Result Values",
386
+ default: true,
387
+ },
388
+ ],
389
+ },
319
390
  ];
320
391
  const BY_ID = new Map(HF_VFX.map((d) => [d.id, d]));
321
392
  export function getVfxDef(id) {
package/dist/vfx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vfx.js","sourceRoot":"","sources":["../src/vfx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vfx.js","sourceRoot":"","sources":["../src/vfx.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/core",
3
- "version": "0.8.70",
3
+ "version": "0.8.72",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -306,9 +306,9 @@
306
306
  "bpm-detective": "^2.0.5",
307
307
  "linkedom": "^0.18.12",
308
308
  "postcss": "^8.5.8",
309
- "@hyperframes/lint": "0.8.70",
310
- "@hyperframes/studio-server": "0.8.70",
311
- "@hyperframes/parsers": "0.8.70"
309
+ "@hyperframes/lint": "0.8.72",
310
+ "@hyperframes/parsers": "0.8.72",
311
+ "@hyperframes/studio-server": "0.8.72"
312
312
  },
313
313
  "devDependencies": {
314
314
  "@types/jsdom": "^28.0.0",