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