intora.net

LIGHT STUDY: SOL/001 — THRESHOLD

═══════════════════════════════════════════
CLASSIFICATION: OPEN · DATE: 2026-03-04
ANALYST: INTORA SYSTEMS
VERSION: 1.0

01 — CONCEPT

Light arriving at structure and transforming it without changing it. A warm canvas breathes. Traces of darkness appear and fade — not threatening, just present. A brutalist structure materialises from the warmth — it was always there, hidden by fog. Orange hues begin arriving from the right — light, not applied colour. The grays of the structure become interspersed with oranges. Not replacing. Coexisting.

THRESHOLD is the SOL series thesis rendered as a single piece. Where INT pieces emerge from darkness, SOL pieces begin in warmth and introduce structure into it. The darkness is not defeated — it is still there, interspersed. The light does not replace the gray; it reveals what was already there. This maps directly to the series philosophy: you did not become someone different. You finally saw what was always there.

The title refers to the moment between states — the threshold between darkness and light, between seeing and not seeing, between the structure as it was and what it becomes when light finds it.

02 — VISUAL LANGUAGE

Monospace Brutalism

The piece operates within the same monospace character-rendering constraint as the INT series — all visuals are constructed from Unicode characters rendered via canvas fillText() on a 14px grid. The brutalist structure is built from block elements (█ ▓ ▒ ░), with a heavy solid perimeter (█) defining the architectural silhouette. The interior is raw mass and void.

Silhouette-First Architecture

The building is defined as stepped sections sharing a common ground line — a tower, a main mass, a plinth, and a cantilever — creating a dramatic asymmetric skyline. The silhouette is the primary architectural statement. Interior detail follows: solid mass zones (heavy block characters) alternate with void bands (recessed windows, rendered as subtle dots). A weight gradient makes the base heavier than the top.

Fog Reveal

The structure does not enter the frame — it was always there. During the ground phase the building is invisible, rendered in colours identical to the warm cream background. During memory, the faintest traces emerge. During approach, the structure materialises through a noise-modulated colour transition: cream → brown → gray. Each cell has its own reveal threshold derived from simplex noise, creating an organic, fog-lifting effect rather than a uniform fade. The building emerges from obscurity rather than arriving from elsewhere. This maps to the series thesis: you did not become someone different. You finally saw what was always there.

Light as Gradient Front

The illumination is not applied uniformly. A gradient front sweeps from right to left during the illumination phase, its edge made organic by simplex noise. Structure characters in the lit zone shift colour from warm gray to a mix of international orange, gold, and persistent gray — the coexistence effect. Not every cell turns orange. Some remain gray. Light and shadow share the same form. Void cells in the lit zone may catch reflected gold light, adding depth to the recesses.

Found Affirmations

During the presence phase, text fragments emerge half-visible from the structure — "still here", "it worked eventually", "you will always begin again". They are not displayed prominently. They are discovered, like something left where you would find it. The quality of a note someone placed knowing you would eventually see it.

03 — CYCLE BEHAVIOUR

Each cycle runs approximately 42 seconds — matching the INT series cadence — and transitions through six phases. A new seed generates a fresh building configuration and fragment selection per cycle. The phase system is time-driven. Unlike INT, where you observe a system that does not know you are watching, SOL pieces know you are there. The piece accompanies you.

GROUND0–5sWarm cream canvas, subtle breathing characters pulsing with noise
MEMORY5–10sDark spots appear and fade — traces of shadow, faintest hints of structure
APPROACH10–18sStructure emerges from fog — colours shift from cream through brown to gray
ILLUMINATION18–30sOrange light sweeps right to left, transforming the structure
PRESENCE30–38sScene holds, text fragments emerge half-visible from texture
FADE38–42sStructure fades back into fog, colours return to cream, cycle resets

04 — ITERATIONS

v1 — Overlapping rectangles with interior grid

Initial implementation defined the building as overlapping rectangles with a uniform floor/column grid throughout the interior. Floor lines (─) and column lines (│) created a repeating grid pattern with noise-driven block characters between them. The result read as a data table or MSX game sprite rather than architecture — too uniform, too regular. The structure lacked silhouette, weight hierarchy, and the interplay of mass and void that defines brutalism. However, the colour work was correct from the start: the orange/gold/gray coexistence through the light front created the right emotional effect.

v2 — Silhouette-first with mass and void

Redesigned the building system entirely. Replaced overlapping rectangles with stepped sections sharing a common ground line — tower, main mass, plinth, cantilever — creating a dramatic asymmetric skyline. Removed interior grid lines entirely. Added mass/void interior pattern: concrete floor slabs alternate with recessed void bands (windows). Perimeter uses heavy solid characters (█) to define the silhouette. Weight gradient makes the base heavier. The structure now reads as architecture.

v3 — Fog reveal (replacing camera pan)

The camera pan from v2 created a jarring scrolling effect — the building entering from off-screen felt like a game sprite rather than architecture being revealed. Replaced the pan with a fog-reveal: the building occupies its final position in all phases but is invisible during ground (rendered in background-matching cream). During approach, per-cell noise thresholds drive an organic colour transition from cream → brown → gray. The structure materialises from obscurity rather than arriving from elsewhere. This better serves the series thesis and removes the last vestige of the MSX aesthetic from v1.

CURRENT — This is the active rendering approach. Silhouette, mass/void, perimeter-only edges, fog reveal.

05 — CURRENT PARAMETERS

GRID
  cell_width ········· 14px
  cell_height ········ 20px
  font_size ·········· 14px

TIMING
  ground ············· 5,000ms
  memory ············· 5,000ms
  approach ··········· 8,000ms
  illumination ······· 12,000ms
  presence ··········· 8,000ms
  fade ··············· 4,000ms
  total_cycle ········ ~42s

STRUCTURE
  type ··············· stepped sections (tower, mass, plinth, cantilever)
  perimeter ·········· heavy solid border (█)
  interior ··········· mass/void alternation
  floor_slab_height ·· 2 rows
  void_band_height ··· 3–4 rows (seeded)
  pier_width ········· 2–3 cells (seeded)
  void_width ········· 3–5 cells (seeded)
  weight_gradient ···· heavier at base (+0.25 density bias)

REVEAL
  method ············· fog reveal (no camera pan)
  approach_easing ···· cubic ease-out
  cell_threshold ····· per-cell noise (simplex 0.05 freq)
  colour_transition ·· bg → lerpColor → fullStructureColour

LIGHT
  direction ·········· right to left
  front_shape ········ noise-modulated (±6 cells)
  lit_colours ········ accent (#E86A3A), gold (#D4A56A), gray (coexistence)
  void_lit ··········· gold reflection or shadow

FRAGMENTS (per cycle, seeded)
  pool ··············· "still here", "it worked eventually",
                       "you will always begin again", "this world is malleable"
  emergence ·········· character-by-character during presence phase
  visibility ········· half-visible (textMuted / textSubtle alternation)

06 — AUDIO

THRESHOLD is the first SOL piece with audio. Where INT/002 STATION used shortwave radio synthesis — cold, mechanical, indifferent — THRESHOLD uses warm generative tones in G Mixolydian. Mixolydian is a major scale with a flat seventh: bright but with a bittersweet undertone. Joy that knows sadness.

The audio accompanies rather than surveils. INT audio feels like a system that does not know or care that you are listening. SOL audio feels like it knows you are there — present with you rather than indifferent to you.

Architecture
Master Gain → Destination
├── Pad: 2× sine oscillators → lowpass filter → master
│   Sustained chords (root+5th, root+3rd)
│   Long ramp times for gentle evolution
├── Arpeggio: triangle oscillator → lowpass filter → master
│   Steps through G Mixolydian scale
│   Tempo slows/quickens with phase
└── Texture: pink noise → bandpass filter → master
    Warm atmospheric presence
Phase Synchronisation
GROUND — Quiet. Soft pink noise texture fading in. A single pad note.
MEMORY — Pad swells gently. Second voice enters. Filter opens slowly.
APPROACH — Arpeggio begins. Slow, sparse notes stepping through scale degrees with ascending tendency.
ILLUMINATION — Warmest moment. Arpeggio becomes fuller, pad filter opens wide. Chord shifts from root+5th to root+3rd.
PRESENCE — Full but gentle. All channels present. Arpeggio stabilises into a repeating figure.
FADE — Everything recedes. Filters close, volumes drop, arpeggio slows.

07 — RELATIONSHIP TO INT

SOL/001 shares the same technical foundation as INT — canvas character rendering, colour-batched fillText, phase-driven animation cycles, Tone.js audio. The palette uses the same hex values as INT's Amber Schematic, inverted: what was background becomes ground, what was accent becomes the colour of structure being revealed. International orange remains the shared constant — but its register shifts entirely. In INT: warning flash in darkness. In SOL: warmth, sunrise, hearth.

The same code, entirely different meaning depending on context.

08 — DEPENDENCIES

simplex-noise ··· 3D noise field (ground breathing, structure density, light front)
tone ············ generative audio synthesis (Tone.js)
mulberry32 ······ seeded PRNG for reproducible cycles (inline)
canvas 2d ······· browser-native rendering
geist mono ······ monospace typeface