KQ-1885 · THOUGHT/AVALANCHE

Thought Avalanche

A dark field of a few hundred nodes joined by faint, bowed filaments, where a click fires the nearest node and each firing sends glowing pulses on to its neighbours with a chance set by the branching ratio — counted over the neighbours that are not still resting — so an avalanche fizzles out below 1, swings between a handful and most of the field near it, and storms across everything above it. Pulses run along the curves at the conduction speed with short bright tails, the filaments they crossed keep an afterglow, fired nodes flash and then rest for the refractory time, and a ring blooms on the clicked node on the springs.snap constants. Arrow keys move a selection ring from node to node, Home returns it to the middle, and Enter or Space fires it.

KQ-1885 · THOUGHT/AVALANCHE

Gaugeworks Lab · Criticality

How far does one idea go?

A network of thoughts. Click a node, or move the selection with the arrow keys and press Enter, to fire it; each firing may set off its neighbours, and the avalanche spreads until it fizzles out or storms across the field. Branching ratio 1.1.

click a node to seed a thought · branching 1.10

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/thought-avalanche

Props

branching
number
default 1.1
How many neighbours a firing sets off on average, 0.5 (fizzles) to 2 (storms); about 1 is critical.
refractory
number
default 1600
How long a fired node rests before it can fire again, ms.
hue
number
default 195
The glow's hue, degrees 0–360; the dark field takes a trace of it.
density
number
default 14
Nodes per 100 × 100 px of field, 2 to 40.
connections
number
default 5
Each node's nearest neighbours it is joined to, 2 to 8.
conduction
number
default 240
How fast a pulse runs along a filament, px per second.
glow
number
default 0.7
How bright the pulses, afterglow and flashes are, 0 to 1.
intro
boolean
default true
The first time the field is in view, one avalanche starts by itself; it is silent and reports nothing.
spontaneous
number
default 0
Stray firings a minute while the field is in view, 0 for none.
paused
boolean
default false
Freeze every pulse where it is.
seed
number
default 3
Seeds the network's layout and the chances.
dpr
number
default 2
Cap on the canvas's device pixel ratio, at most 2.
onAvalanche
(stats: ThoughtAvalancheStats) => void
default —
Fires as a visitor's avalanche starts, at each new generation, and when it ends, with { size, reach, generations, active, phase: "spreading" | "fizzled" | "faded" | "storm" }.
label
string
default "Thought field"
The field's accessible name.
disabled
boolean
default false
No clicks or keys; the field dims.
className
string
default —
Sizes the field; it fills its parent by default.