TITLE Murmuration at Dusk PROMPT A full-bleed simulation of a starling murmuration over a reed marsh at dusk, on Canvas 2D. Concept: thousands of simple birds becoming one dark, folding fabric in the sky; the viewer is the falcon. Mood: awe, hush, the last ten minutes of light. Palette: sky as a tall vertical gradient from pale apricot #F6C9A8 at the horizon through coral #E58F7B and mauve #6B4E71 to deep plum-ink #2A2438 at the top; birds, reeds and far treeline in near-black #0D0B12; a low sun disc and its reflection in a thin strip of marsh water in a paler apricot. This dusk gradient is the concept, not a default; keep it painterly with faint horizontal washes, a faint grain and a few long thin horizontal clouds that drift very slowly. Simulation: 2,500–3,600 boids on desktop (scale down automatically on small or slow devices, never below 1,200), using a uniform spatial grid for neighbour lookup, classic separation / alignment / cohesion with topological-ish neighbour limits (nearest ~7 sampled from the surrounding cells), plus a wider neighbourhood term taken from per-cell sums (shared heading, a pull to the local centre of mass, and a soft pressure that pushes birds down the density gradient when a region gets too crowded) so the flock holds together as one fabric without collapsing into a ball. A soft roosting attractor orbits slowly above the reed bed so the flock stays on screen; it periodically splits into two lobes along a rotating axis so the flock stretches into ribbons and hourglasses and then rejoins. Add a little coherent noise turbulence. Add fake depth: each bird has a z value (part its own, part a slow sheet that drifts through the flock) that scales its size (roughly 1–3px strokes) and darkness, and a soft density haze under the flock, so it reads as a volume whose density makes darker folds where it overlaps itself. Draw birds as tiny oriented chevrons (two short strokes that flap by alternating length), not dots. "Waves of agitation": when birds turn sharply they briefly thicken and lengthen their strokes, and an excitable wave passes from bird to neighbour with a short delay and a refractory period, so alarms ripple visibly through the flock; now and then something unseen spooks one edge of it. Interaction: the pointer/finger is a peregrine: a small falcon silhouette glides toward the pointer position with inertia (a faint reticle marks the pointer itself, and the falcon circles it rather than stopping); birds within a radius flee and dodge sideways off its line of flight, so the flock splits, wraps and re-forms around it, the signature moment. A click/tap (or the space bar) makes the falcon stoop: wings tucked, a fast dive toward the pointer, or along its heading if the pointer is already beneath it, which punches a hole through the flock and leaves a thin streak and a faint ring. If the pointer is idle the falcon loiters high and makes occasional autonomous passes, some with a stoop, so the page is alive without input. Over about three minutes the light fades one step (sky darkens ~15%), then the flock gathers above the roost, funnels down through a narrow neck and pours into the reeds like liquid (the reeds shiver where birds land), the screen rests for a few seconds, and a new evening begins; a small control lets the viewer "call them down" or "send them up" at will, the latter erupting the whole flock out of the reed bed. Foreground: a reed bed silhouette along the bottom in two layers with individually swaying stems, drooping plumes, bulrush heads and leaves (sine sway with phase by x), a leaning fence post with sagging wire, two distant pylons with their wires and a clump of poplars on the far treeline for scale, and glints flickering in the sun's reflection. Typography: almost none. Bottom-left in tiny letterspaced Georgia italic, cream at 80%: "Murmuration at dusk" and a live, quietly updating count line "3,200 starlings · one falcon" (it counts birds in view, and reads "3,200 starlings in the reeds · one falcon, hungry" while the flock roosts); a designed hint with a small falcon glyph, "move to hunt · click to stoop" ("drag to hunt · tap to stoop" on touch), that fades after first interaction. Sound toggle bottom-right (off by default): a soft rush of wings via band-passed noise with a fast flutter, whose volume and filter follow the flock's average speed, its presence on screen, its proximity to the falcon and how many birds are fleeing. Entrance: the empty sky, then the flock streams in from the right as a long ribbon and balls up. Performance: typed arrays, batched paths per depth band, the static sky, the drifting clouds, the birds and the reeds on separate stacked layers, DPR capped at 2, pause when hidden, flock thinned automatically if frames run long. Reduced motion: 1,200 birds, everything at well under half speed, no stoop streak or ring and no autonomous attacks; a still composition with a gently drifting flock. DESCRIPTION A wide marsh sky in the last minutes of light: plum-ink overhead sinking through mauve and coral to a pale apricot horizon, a low sun and its broken reflection in a thin strip of water, pylons and poplars tiny on the far bank, and a black reed bed swaying along the bottom edge. Into the empty sky a long ribbon of starlings streams from the right and gathers into a single breathing shape made of thousands of tiny flapping chevrons, lighter where the birds are far and darker where the flock folds over itself, stretching into ribbons and hourglasses and rippling with sudden dark waves when it turns. The viewer's pointer is a peregrine; the flock parts around it, wraps behind it and closes again, and a click sends the falcon into a tucked dive that tears a hole straight through the birds. Left alone, the falcon hunts by itself, the light slowly fails, and the whole flock drains through a narrow neck into the reeds; after a few seconds of stillness a new evening begins. The only words are a tiny italic title, a live count of starlings, a hint that dissolves once the hunt starts, and two quiet controls. VISUAL TECHNIQUES - Boids simulation in typed arrays with a counting-sort uniform spatial grid; separation, alignment and cohesion limited to about seven sampled neighbours - Per-cell sums for a wider neighbourhood heading, centre-of-mass pull and a density-gradient pressure that keeps the flock a spread fabric rather than a clump - Twin roost attractors that drift on slow Lissajous paths and periodically separate, pulling the flock into ribbons and hourglasses - Excitable-medium agitation wave (delay, attenuation, refractory period) passed between neighbours, drawn as briefly thicker, longer strokes - Fake depth from a per-bird z blended with a moving sheet field; four depth bands by stroke width and opacity, each split into calm and agitated batches - Birds as two-stroke chevrons whose wings alternate in length to flap; batched Canvas 2D strokes - Low-resolution density buffer from the grid, bilinearly upscaled as a soft smoke-like shadow where the flock overlaps itself - Procedural dusk painting: four-stop sky gradient, translucent horizontal washes, sun bloom and disc, mirrored water gradient with a broken sun reflection and animated glints, value-noise treeline, lattice pylons with sagging wires, poplars, vignette and baked grain - Long thin clouds built from stretched radial gradients on their own layer, drifting by compositor transform - Two-layer reed bed with quadratic-curve stems, plumes, bulrush heads and leaves swaying on layered sine waves, stirred locally where birds land or erupt - Falcon silhouette drawn from quadratic curves with banking, wingbeat and a tucked stoop pose, plus stoop streak and expanding ring - Evening state machine: slow light fade, funnel descent with a fanning neck, rest, new evening - Adaptive quality (flock size, reed and haze refresh rate), DPR cap, pause when hidden, reduced-motion variant - Web Audio wing rush: looped noise through band-pass and high-pass filters with a flutter LFO, driven by flock speed and fear INTERACTION MODEL Moving the mouse, or dragging a finger, sets the quarry: a small reticle marks the pointer and the peregrine glides after it with inertia, circling when it arrives. Starlings within its radius flee and peel off either side of its flight line, so the flock splits, wraps around the falcon and re-forms behind it, with a dark wave of alarm running outward through the birds. A click, a tap or the space bar makes the falcon stoop: it tucks its wings and dives fast toward the pointer, punching a hole through the flock. If the pointer rests for a few seconds the falcon returns to hunting on its own, with occasional passes and dives. The hint "move to hunt · click to stoop" fades after the first interaction. Bottom-right, "call them down" gathers the flock above the roost and pours it into the reeds, after which the count line reports the birds in the reeds; the same control then reads "send them up" and flushes the whole flock back out of the reed bed in one eruption. Left untouched, the evening runs its own course in about three minutes: the light dims, the flock roosts, the screen rests, and a new ribbon of birds arrives from the right. The second control turns the sound of wings on and off (silent by default); it swells when the flock is fast, close to the falcon or fleeing. Both controls are real buttons, reachable and operable by keyboard with visible focus.