TITLE Strange Attractors — A Collection of Orbits PROMPT A generative-art gallery of chaotic dynamical systems, each rendered in WebGL as hundreds of thousands of luminous points tracing a strange attractor in three dimensions, slowly rotating like a specimen of gold dust suspended in a dark green vitrine. The viewer turns each one by hand, changes its parameters, and watches trajectories diverge. Concept: equations as sculpture: fine-grained, additive, jewel-like: not the usual particle network. Mood: contemplative, precious, scientific-romantic. Palette: deep viridian black #06110D background (dark green, not navy or black-purple), gold dust #D9B45B, pale champagne #F5E9C8 for the densest/brightest regions and type, and a muted jade #2E6F5E for axes, annotation lines and secondary type (small jade labels use a lighter tint of the same hue for legibility). Dark page (the additive point rendering requires it), restrained: two hues only, with brightness carrying the form. Rendering: for each attractor, integrate the ODE on the CPU with RK4 at load (and whenever parameters change) for 480,000 steps (220,000 on phones), store positions in a Float32Array vertex buffer (each point jittered a random fraction of a step along its segment so the dust has no beaded pattern), and draw as GL_POINTS with additive blending and tiny point size (about 1.2px, with perspective attenuation) and very low per-point weight so density builds luminance: sparse outer loops are dim gold threads, dense cores glow champagne. The additive accumulation happens in a half-float off-screen target (8-bit where unavailable) and is then developed through a narrow gold–champagne ramp, so density never clips to white. Colour is also steered by a per-point local-speed attribute (slow regions warmer and paler). Depth cue: fog toward jade-black with distance. A second pass draws 30 "live" tracer particles as slightly larger bright points with short fading trails moving along the attractor in real time, so the flow direction is visible; they start as one tight cluster and separate: sensitivity made visible. Thin jade axes with tick marks, a graduated floor ring, projected x/y/z labels, and a ground-plane shadow projection (the attractor's flattened density rendered dimly in jade beneath it, like a shadow on the vitrine floor). Collection (seven systems with their standard equations and parameters): Lorenz (σ = 10, ρ = 28, β = 8/3); Rössler (a = 0.2, b = 0.2, c = 5.7); Aizawa (a = 0.95, b = 0.7, c = 0.6, d = 3.5, e = 0.25, f = 0.1); Thomas' cyclically symmetric attractor (b = 0.208186); Halvorsen (a = 1.89); Dadras (a = 3, b = 2.7, c = 1.7, d = 2, e = 9); Chen–Lee (a = 5, b = −10, c = −3.8). Every displayed formula matches what is actually integrated. Each has: its name in large type, the author as commonly credited (dates only for Lorenz 1963 and Rössler 1976), its equations typeset properly with italic variables, aligned equals signs, stacked fractions and dotted derivatives, the parameter values as adjustable controls, and a two-sentence note. If a parameter choice makes the orbit escape to infinity, a quiet notice says so and the last bounded form stays on show. Layout: the attractor fills the viewport; text is typeset at the margins like a museum label on glass inside a hairline frame with corner ticks: top-left the plate number, name, credit and a live point count; bottom-left the note and the equations in a refined serif italic with the parameters as live numbers that can be dragged horizontally to change (number scrubbing), stepped with small drawn minus/plus glyphs, or reset by double-click; hovering a parameter lights its occurrences in the equations. Bottom-right a slim horizontal index of the seven plates as tiny thumbnails integrated and drawn in the page, with roman numerals, under a one-line interaction hint that fades after first use; top-right minimal controls: tracers on/off, shadow on/off, "new initial condition", "butterfly effect". No audio. Typography: names in a light Didone display (Didot/"Bodoni MT"/Georgia) large; equations in italic serif (Palatino/"Times New Roman" italic) with care for sub/superscripts and dots for time derivatives (ẋ, ẏ, ż); labels in tracked small caps sans in jade. Interaction: drag to rotate (yaw/pitch with inertia; touch supported), wheel/pinch to zoom within limits, double-click/tap to reset; idle auto-rotation resumes after a few seconds. Changing a parameter re-integrates (debounced, computed in time-sliced chunks so the UI stays responsive) and the cloud morphs: the signature moment: when switching plates or parameters, points do not pop: each point interpolates from its old position to its new one over about 1.6–1.8 seconds in the vertex shader (two position attributes and a mix uniform with an eased curve, staggered per point with a small drift and sag mid-flight), so the Lorenz butterfly visibly melts and re-condenses into the Rössler band or a Thomas loop, like gold dust re-settling; interrupted morphs continue from where the dust is. "New initial condition" restarts the orbit from another point so every grain moves yet the same form returns. A "butterfly effect" control launches two tracers 10⁻⁵ apart with a readout of their separation growing exponentially on a tiny log plot, a live least-squares estimate of the Lyapunov exponent λ, and the time at which they have fully parted. Entrance: black-green; then the first attractor is drawn progressively in time order (a draw-range sweep from 0 to N over about 3 seconds, the point count ticking up with it), so the viewer sees the trajectory lay itself down loop by loop into the finished form. Keyboard: left/right arrows or 1–7 change plate; +/− zoom; 0 resets the view; arrow keys on a focused parameter step it. Fallback without WebGL: Canvas 2D rendering of a projected density image accumulated over a few frames into ImageData with the same palette, rotating slowly in steps. Performance: static buffers, uniforms only per frame; DPR capped at 2; point count adapted to device; paused when hidden. Reduced motion: no auto-rotation, entrance sweep or tracers; morphs replaced by cross-fades. DESCRIPTION A dark viridian vitrine holds one strange attractor at a time, built from up to 480,000 points of gold dust whose overlapping density, not any drawn line, makes the form: thin outer loops are faint threads, the folded cores glow champagne, and a jade shadow of the same density lies on a graduated floor ring beneath. The page is composed like a museum label on glass: a large Didone name and plate number at top left, the governing equations set in italic serif with live, draggable constants at bottom left, a row of seven miniature specimens at bottom right. The experience is slow and tactile: the specimen turns on its own until taken in hand, a swarm of bright tracers shows which way the flow runs and how quickly neighbours part, and every change of plate or constant makes the whole cloud dissolve and re-settle into its new shape rather than cut. VISUAL TECHNIQUES - WebGL point cloud of 220,000–480,000 RK4-integrated samples, additively accumulated in a half-float framebuffer and tone-mapped through a gold-to-champagne ramp - Vertex-shader morphing between two position buffers with per-point staggered easing, drift and sag, so shapes melt and re-condense - Per-point speed attribute steering warmth, depth fog toward jade, perspective-attenuated point size with sub-pixel energy compensation - Flattened jade shadow pass of the same buffer on the vitrine floor, with thin tick-marked axes, a graduated ring and projected axis letters - Real-time tracer particles with fading trails integrated live from the same equations, seeded as a tight cluster - Time-ordered draw-range sweep for the entrance, with a counting point total - Sub-step jitter along each trajectory segment to remove sampling beads and give a dust grain - Butterfly-effect instrument: SVG log plot of separation with live least-squares Lyapunov estimate - Equations typeset in HTML with italic variables, aligned equals signs, stacked fractions, superscripts and dotted derivatives; parameters highlighted in gold - Procedurally drawn thumbnail index, hairline frame with corner ticks, SVG grain and vignette over the canvas - Canvas 2D density-accumulation fallback with the same palette when WebGL is unavailable - Staggered Didone letter entrances and custom cubic-bezier easing throughout INTERACTION MODEL Drag anywhere on the specimen to turn it (with inertia); scroll or pinch to zoom; double-click or double-tap to return to the resting view, after which slow rotation resumes. Choose a plate from the thumbnail index, with the left/right arrow keys or keys 1–7, and the dust flows from the old attractor into the new one while the title, note and equations change. Drag any constant sideways (Shift for fine control), press its minus/plus glyphs, or use arrow keys when it is focused; the orbit is re-integrated and the cloud re-settles, and a notice appears if the orbit escapes to infinity. Double-click a constant to restore its standard value. The top-right controls toggle the tracers and the floor shadow, restart the orbit from a new initial condition, and launch the butterfly-effect pair, whose separation is plotted on a logarithmic scale with a running estimate of the exponent until the two have parted. Plus and minus keys zoom; 0 resets the view. With reduced motion requested, the specimen stays still, tracers are off and changes cross-fade.