SIGNAL ANALYSIS: INT/001 — DRIFT
01 — CONCEPT
An invisible force field made visible through characters. A 2D Perlin noise field maps flow angles and magnitudes to oriented text characters across a monospace grid. The result reads as flowing currents — rivers of box-drawing characters streaming across a dark amber field.
DRIFT is the “hello world” of the INT Series: the simplest possible expression of the series constraints. One noise field. One character set. One palette. The constraint is the point — the narrow medium forces compositional decisions that richer tools would let you avoid.
02 — TECHNIQUE
3D simplex noise sampled at each grid cell. The third dimension (z-axis) advances with time, creating slow evolution without abrupt changes. Three octaves of fractal noise are layered — the first octave creates broad sweeping currents, higher octaves add subtle turbulence within them, preventing the flow from looking too smooth or mechanical.
The noise angle at each cell maps to one of 8 directional characters:
─ ╲ │ ╱ ─ ╲ │ ╱
Lighter dashed variants (╌ ╎) are scattered at ~12% probability for visual texture within currents. Low-magnitude cells render as ghost characters (· ∙ : ∶) or empty space. Block elements (░ ▒) are reserved exclusively for the emergence and dissolution phases — never during the main flow.
Magnitude maps to the Amber Schematic palette as a heat gradient. The highest-magnitude cells — thin concentrated streaks in the fastest-flowing channels — glow in accent orange. The majority of the field stays in warm amber and muted tones. The target: standing back from the screen, the impression is warm amber-brown with occasional bright orange veins.
████ ████ ████ ████ ████
ghost muted medium strong hot
At ~7,000 cells per frame, rendering is colour-batched: cells are grouped by colour, fillStyle is set once per colour per frame, then all cells of that colour are drawn. This reduces canvas state changes from ~7,000 to ~5–6 per frame.
03 — CYCLE BEHAVIOUR
Each cycle runs approximately 42 seconds and transitions through six phases. The reset/reacquisition moment is in-universe — not a loading state but part of the narrative. Each new cycle generates a fresh noise seed, so repeat viewers see different flow patterns.
04 — ITERATIONS
Dense character texture with single-sample noise, block elements filling low-magnitude areas, and uniform colour distribution. The canvas read as a quilted patchwork of oriented blocks rather than flowing currents. Accent orange appeared everywhere, diluting its impact.
Four targeted corrections applied simultaneously:
Fractal noise with 3 octaves practically maxes out around ~0.85–0.88, meaning the 0.92 accent threshold never triggered. Lowered to 0.82 to account for compressed distribution. Orange veins now appear as thin concentrated streaks in the fastest-flowing channels.
05 — CURRENT PARAMETERS
GRID cell_width ····· 14px cell_height ···· 20px font_size ······ 14px target_density · ~130 cols × 55 rows @ 1080p NOISE (flow phase) scale ·········· 0.011 z_speed ········ 0.0004 octaves ········ 3 persistence ···· 0.5 lacunarity ····· 1.8 CHARACTER THRESHOLDS empty ·········· magnitude < 0.30 ghost ·········· magnitude < 0.40 flow ··········· magnitude ≥ 0.40 light_variant ·· 12% probability COLOUR THRESHOLDS accent (orange) · magnitude > 0.82 amber ··········· magnitude > 0.60 amber_light ····· magnitude > 0.45 muted ··········· magnitude > 0.38 subtle ·········· magnitude ≤ 0.38
06 — DEPENDENCIES
simplex-noise ··· 3D noise field generation mulberry32 ······ seeded PRNG for reproducible cycles (inline) canvas 2d ······· browser-native rendering geist mono ······ monospace typeface