intora.net

SIGNAL ANALYSIS: INT/001 — DRIFT

═══════════════════════════════════════════
CLASSIFICATION: OPEN · DATE: 2026-02-15
ANALYST: INTORA SYSTEMS
VERSION: 1.0

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

Noise Field

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.

Character Mapping

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.

Colour Mapping

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
Performance

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.

EMERGENCE0–5sScattered noise coheres into flow patterns
FLOW5–25sStable currents evolve slowly through z-axis
TURBULENCE25–35sNoise frequency increases, patterns fragment
DISSOLUTION35–38sProgressive character dropout, signal degrades
TERMINAL38–40sNear-empty grid — SIGNAL LOST
REACQUISITION40–42sNew seed, field rebuilds — REACQUIRING · · ·

04 — ITERATIONS

v1 — Initial render

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.

v2 — Flow refinement

Four targeted corrections applied simultaneously:

NOISE SCALE 0.03 → 0.015 — Halved base scale, added 3-octave fractal noise. Flow lines now extend 15–20+ cells before curving. Visible directional bands at arm's length.
NEGATIVE SPACE threshold 0.15 → 0.30 — Aggressive empty-cell threshold. ~30% of the grid is now dark background. Currents have banks.
BLOCK REMOVAL ░▒ removed from flow phase — Block elements confined to emergence and dissolution only. During main flow: only directional characters, ghost dots, and empty space.
COLOUR DISTRIBUTION accent threshold 0.80 → 0.92 — Initially pushed too high for fractal noise's compressed output range.
v3 — Colour correction

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.

v4 — Warmth and flow polish
COLOUR WARMTH amber 0.70 → 0.60, amber_light 0.55 → 0.45 — Widened the warm colour bands so amber tones dominate the visible flow. Canvas impression shifted from grey-brown to warm amber-brown.
FLOW LENGTH noise scale 0.015 → 0.011, lacunarity 2.0 → 1.8 — Broader sweeping currents with smoother internal transitions. Flow lines now extend 15–20+ cells before curving. Directional bands clearly visible at arm's length.

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