A growing catalog of GPU shader components built on React Three Fiber.
Interactive smoke/fluid simulation driven by GPU texture feedback: ping-pong advection, a Jacobi pressure solver, and incompressibility via gradient subtraction. Fully still at rest — move the mouse to inject velocity and density, which trails and dissipates naturally.
The same GPU fluid velocity sim as Fluid Simulation, but the smoke itself is colored — each splat picks up whatever hue is currently rotating through the palette, so a sweeping gesture leaves a trail that shifts through color as it flows and blends. Fully still at rest.
The same GPU fluid velocity sim as Fluid Simulation, rendered as a dithered grain of pixels instead of smooth smoke — density controls how many dots twinkle into existence at a given point, colored by a palette that shifts along the trail. Fully still at rest.
The same GPU fluid velocity sim as Fluid Simulation, rendered as a grid of squares whose size follows local density — a splat reads as colored blocks expanding outward from wherever you move, cycling through a palette so different gestures trigger a different color to expand. Fully still at rest.
The same GPU fluid velocity sim, but rendered as the raw vector field itself instead of a transported dye — a grid of short strokes that orient and lengthen along local flow direction, collapsing to nothing wherever the field is at rest.
The same GPU fluid sim as Fluid Simulation, shaded like mercury instead of smoke: the density field's local gradient is treated as a fake surface normal and lit with diffuse, specular, and fresnel terms, giving the trail a shiny liquid-chrome look. Fully still at rest.
The same GPU fluid sim as Fluid Simulation, rendered edges-only: a Sobel gradient of the density field traces a glowing neon contour around the moving mass instead of filling it in, cycling through a palette so the outline color shifts as you move. Fully still at rest.
The same GPU fluid sim as Fluid Simulation, but every splat carries a constant upward buoyancy force and density is mapped through a classic fire color ramp (black to red to orange to yellow to white) — the trail behaves and reads like rising flame instead of neutral smoke. Fully still at rest.
The same GPU fluid sim as Fluid Simulation, rendered as a deterministic grid of circles whose radius grows continuously with local density — a classic newsprint halftone screen, cycling through a palette. No randomness, unlike Pixel Ink's dither grain. Fully still at rest.
Driven by the same GPU fluid velocity sim, but rendered as thousands of discrete GPGPU particles instead of a continuous field — each one a texel in a ping-ponged position/life texture that drifts along local velocity and brightens only where the flow is actually moving. Fully still at rest.
The same GPU fluid sim, heavily blurred into a soft featureless glow and rendered at low peak opacity on a transparent canvas — a barely-there translucent bloom meant to sit over real page content rather than an opaque shape on black. Fully still at rest.
The same GPU fluid sim at full turbulent detail, but pushed through a narrow output curve and low alpha on a transparent canvas so it reads as faint, natural wisps rather than opaque smoke — unlike Soft Spread, no blur is applied, so fine curls stay visible even at low opacity. Fully still at rest.
The same GPU fluid sim as Fluid Simulation, shaded like ink bleeding into wet paper: pigment pools and darkens at the boundary of the moving mass instead of fading out evenly, rendered on a transparent canvas and cycling through a palette. Fully still at rest.
A gentler tuning of the same GPGPU particle technique as Particle Flow — motes with a wide soft splat, reading as floating dust stirred by a passing current rather than an energetic burst. Each mote also remembers its original position and drifts back to it once undisturbed, instead of wandering away forever, and stays faintly visible at rest rather than fading to nothing.
Dust Drift's homing mechanic aimed at a purpose: each particle's fixed "home" position is sampled from the ink pixels of rendered text (a Canvas2D-built lookup, not random noise), so the particles settle into the shape of a word instead of scattering randomly. Swipe through it to blow the text apart into chaos, then watch it reassemble on its own once you stop.
A different particle technique from Dust Drift's: no fluid velocity field, just literal per-particle position+velocity physics — gravity and drag. Reaching the bottom doesn't rest a flake there forever; it respawns at the top with a fresh random position, so snow keeps falling continuously instead of settling into a static pile. The cursor doesn't push a shared current, it injects a direct outward-and-up kick scaled by how fast it moves, so waving through the flecks reads as shaking the globe.
Standalone: no simulation buffers, not even a ping-pong texture - each firefly's position is a closed-form function of a fixed home point, a per-particle phase, and time, computed fresh every frame directly in the vertex shader. Each one idles in a slow elliptical orbit and pulses its own glow, reading as living things rather than settling debris. Fireflies near the cursor drift gently toward it, like moths to light.
The same GPU fluid sim as Fluid Simulation, quantized into hard discrete bands and mapped through a NEXRAD-style reflectivity color ramp (green to yellow to orange to red to magenta) instead of a smooth gradient — reads like a live storm-system radar map. Fully still at rest.
The same GPU fluid sim as Fluid Simulation, mapped through a classic infrared-camera "IronBow" palette (black through purple, red, orange, to white) with a scanline and vignette overlay — reads like a heat-camera viewfinder watching an invisible thermal plume. Fully still at rest.
The same GPU fluid sim as Fluid Simulation, colored through a terrain elevation ramp (water to lowland to highland to snow peak) with thin contour isolines drawn at regular intervals — reads like a topographic or pressure map instead of smoke. Fully still at rest.
The same GPU fluid sim, rendered as green phosphor returns on a classic circular radar scope — range rings, a crosshair, and a continuously rotating sweep beam with a fading trail, the way real aviation/maritime radar displays scan for contacts. Fully still at rest.
The same GPU fluid sim, but instead of rendering the 2D field it samples density along one horizontal scanline and plots it as a live glowing waveform over a CRT graticule — turning the fluid into a 1D signal reading, like an oscilloscope or seismograph trace. Fully still at rest.
A denser, thinner, monochrome variant of Flow Field's velocity-stroke technique over a faint reference grid — reads like a physics textbook diagram of iron filings tracing field lines around a magnet rather than a rendered vector field. Fully still at rest.
The same GPU fluid sim as Fluid Simulation, edge-detected and drawn as white contour lines over a solid blueprint-blue backdrop with a technical grid and tick marks — reads like a hand-drafted engineering schematic instead of rendered smoke. Fully still at rest.
The same GPU fluid sim as City Grid, but instead of filled squares each active cell draws a small pad connected by thin right-angle traces to whichever neighbor cells are also active — snapping the flow onto a PCB circuit-board layout instead of a smooth blob or independent squares. Fully still at rest.
A genuinely different simulation model from this library's fluid family: Gray-Scott reaction-diffusion, where two chemicals diffuse and react via a cheap 9-tap Laplacian (no per-pixel iteration counts) to self-organize into coral-like branching growth. Drag to seed a reaction site — once started, the pattern keeps growing and stabilizing on its own, it doesn't need continuous input like this library's fluid-family siblings.
The same Gray-Scott reaction-diffusion engine as Coral Growth, but a different feed/kill preset produces a thinner, continuously winding maze-like growth instead of coral's thicker branching, colored as pale membranes on dark cytoplasm. Drag to seed a reaction site; once started, it keeps extending and stabilizing on its own.
The same GPU fluid sim as Fluid Simulation, rendered as a grid of monospace characters instead of a continuous field — each cell samples local density, buckets it into one of a fixed number of brightness levels, and looks up the matching glyph from a Canvas2D-rendered texture atlas built once at mount. A classic terminal ASCII-art look, fully still at rest.
The same GPU fluid sim as Fluid Simulation, rendered as a procedural grid of braille-style dot cells instead of glyphs from a font atlas — each cell is split into a 2x4 sub-grid of 8 dots, and every dot independently samples the density field at its own sub-cell position, giving 8x finer effective resolution than ASCII Fluid's one-sample-per-cell lookup. Fully still at rest.
The same ASCII-bucket-to-glyph-atlas technique as ASCII Fluid, with an old-monitor overlay stacked on top: per-channel atlas sampling offset for chromatic aberration fringing, a moving scanline darken, a radial vignette, and a slow phosphor flicker. The underlying smoke settles at rest, but the scanline/flicker overlay keeps animating continuously.
Standalone: a domain-warped FBM turbulence field is rendered entirely as ASCII glyphs from a texture atlas. Purely time-driven, not cursor-reactive - a slow drifting offset keeps the pattern continuously flowing and reorganizing on its own.
The same GPU fluid sim as Fluid Simulation, rendered on a transparent canvas as a drifting cloud of letters instead of a brightness-mapped ASCII picture: each cell gets a fixed random letter (hashed once from its grid coordinate, never changing), and only that letter's opacity tracks local density. Fully still at rest.