TITLE Aurora over Skjervøy Sound PROMPT An ambient, full-bleed night scene: aurora borealis over an invented northern fjord, rendered with a hand-written WebGL fragment shader. Watch-only by default, quietly interactive. Concept: light that hangs like curtains: the shader must capture the real structure of aurora: tall vertical rays, folding curtain ribbons seen in perspective, a sharp bright lower edge fading upward, slow drift with sudden brightening surges. Mood: awe, cold, silence. Palette: sky near-black blue #030B14 deepening to #01040A, dark spruce-teal #0B3B3C in the glow haze, aurora green #39E6A0, pale core #A6F0C6, occasional magenta-violet upper fringe #C04BD9; snow on the mountains a dim blue-grey #2B3B4A; one warm point: a tiny cabin window #F2B56B. Dark page (this concept requires it). Shader design: for each pixel above the horizon, accumulate three curtain layers. Each curtain is a thin luminous sheet standing on a ribbon defined in a ground-plane coordinate, displaced by layered noise so it folds; the view ray is walked along the ground and every crossing of the sheet is located exactly (grazing passes along a fold are caught as near misses and glow as bright fold edges), so overlapping folds stack up in perspective. Intensity along the vertical falls off with a sharp lower edge and a long exponential upper tail whose length varies along the ribbon; fine vertical rays come from high-frequency 1D noise along the ribbon; colours shift from green at the base to violet at the top, with a pale core where the light is strongest; the layers sit at different depths and angles and animate at different speeds, and a slow global "substorm" envelope periodically makes them surge and ripple faster. Add stars (hashed points with twinkle, dimmed behind bright aurora), a faint Milky-Way band, thin high haze. Below the horizon: mountain silhouettes on both sides of the fjord (ridge noise, four depth layers with snow caps and gullies catching green light) and the water: a mirrored sample of the sky, taken three times with small moving ripple offsets and averaged, stretched vertically so the reflection becomes long shimmering streaks. A tiny cabin with a lit window and a thread of chimney smoke sits on the snowy, spruce-lined right shore, with its own warm reflection; a small boat rests at a jetty. Interaction: moving the pointer/finger horizontally (or the left/right arrow keys) acts as the solar wind: it bends and pulls the curtains toward it and locally brightens them (with slow easing, so it feels like stirring something vast); click/tap (or Space/Enter) triggers a substorm surge that sweeps outward across the sky over several seconds: the signature moment, when the whole fjord flushes green, violet fringes flare, the snow lights up and the reflection ignites. Rarely, a meteor streaks. If idle, everything continues on its own, including an occasional natural substorm. Typography: almost none: bottom-left, tiny wide-tracked small caps in pale green-white at 70% opacity: "SKJERVØY SOUND · 69°N" and a line that updates slowly with invented, time-stamped observer notes in italic serif ("23:41 — the dog has stopped barking"); after a surge the next note reacts to it. A one-line interaction hint in the same small caps appears after a few seconds and fades once the viewer has stirred the sky. A minimal designed toggle for optional sound (off by default): low wind and a faint high crackle from filtered noise, both swelling during a surge. A "hide text" key (H), also available as a small key-cap button that stays faintly visible so touch users can bring the text back. Technical: full-screen triangle, uniforms for time, resolution, pointer, surge, entrance and meteor; render at an adaptive internal resolution (start at DPR-capped 1.5, drop resolution and then sample count if frame time exceeds ~22ms) and upscale; pause when hidden; handle context loss. Fallback without WebGL: a layered CSS/SVG scene with animated gradient curtains (blurred vertical gradient bands with ray masks and slow keyframes, mirrored into the water) over SVG mountains, cabin, jetty and boat; pointer and click still lean and brighten the curtains. Reduced motion: time runs at one-fifth speed and surges and meteors are disabled. Entrance: starts with stars only; the first curtain unfurls from the left across the sky during the first three seconds, the second follows from the right, the distant third fades in. DESCRIPTION A silent winter night at 69°N, seen from the shore of an invented fjord. The page opens on stars, black mountains and one lit cabin window; then a green curtain of light unrolls from the left and the sky comes alive. Three aurora curtains hang in true perspective: folded ribbons with crisp, bright lower borders, tall rays that shimmer sideways, pale cores and violet upper fringes, the nearest arching overhead while the farthest lies low over the mouth of the sound. Snow on the peaks picks up the green, the water below breaks the whole sky into long trembling streaks, and a thread of smoke rises from the cabin beside a jetty and a moored boat. A small plate of type in the corner names the place and slowly turns the pages of an observer's notebook. The viewer can simply watch, or stir the solar wind and call down a substorm that floods the fjord with light. VISUAL TECHNIQUES - Hand-written WebGL fragment shader on a single full-screen triangle; the entire scene is procedural - Aurora as thin sheets on noise-folded ground-plane ribbons, found by walking each view ray and locating exact sheet crossings, with near-miss handling for folds seen edge-on - Vertical emission profile with a sharp lower border and a variable exponential tail; 1D ray noise at three scales; green-to-violet height colouring with a pale core and soft tone mapping - Hashed star field in three layers with twinkle and aurora dimming, Milky Way band, thin high haze, teal horizon glow, rare meteor with tapered tail - Ridged-noise mountains in four depth layers with snow caps, rock gullies, haze by distance and green rim light - Water built from three mirrored, ripple-displaced samples of the scene with perspective-scaled ripple frequencies, giving vertical glitter streaks - Signed-distance cabin with lit mullioned window, lamplight on snow, chimney smoke thread, warm streak reflection; jetty, moored boat and spruce silhouettes - Entrance choreography driven by per-curtain reveal uniforms; substorm front expanding from the click point - Adaptive internal resolution and sample count, film grain and lens falloff to keep dark gradients smooth - Web Audio wind and crackle synthesised from filtered noise - CSS/SVG fallback scene with masked, blurred gradient curtains and mirrored reflection INTERACTION MODEL Nothing is required: the aurora drifts, surges now and then, and the notebook line changes by itself. Moving the pointer or dragging a finger sideways (or pressing the left/right arrow keys) sets the direction of the solar wind; with heavy, slow easing the curtains bend toward that side of the sky and brighten there, then relax a few seconds after the pointer rests. A click or tap anywhere (or Space/Enter) starts a substorm at that point: a front of light sweeps outward across the sky for several seconds, rays lengthen and quicken, violet fringes appear, the snow and the water flush green, and the next notebook entry records it before everything settles. The sound control in the corner turns on a low wind and a faint crackle that swell with the surge; it is off until chosen. Pressing H, or the small key-cap button, hides all text and controls for an uninterrupted view, leaving a faint key-cap to bring them back. With reduced motion requested, time runs at one-fifth speed and surges and meteors are switched off.