KQ-1797 · DENDRITE/REACH

Dendrite Reach

Fluorescent nerve cells under a microscope: dendrites grow slowly out from each soma by branching, their tips carrying growth cones that feel about, and when a tip meets another cell's dendrite it either pulls back along its own path and turns away, or lunges the last pixels on springs.snap and forms a junction whose bouton blooms on springs.recoil. Cells fire at `pulse` Hz — the soma flashes and a front of light runs out along every branch — and at each junction the signal crosses after a synaptic delay, runs in to the partner's soma and fires it in turn. The pointer offers a cue that nearby tips grow toward and a click stimulates the nearest cell; as a focusable group, arrow keys move the cue, Enter stimulates and Escape clears the cue.

KQ-1797 · DENDRITE/REACH

Gaugeworks · neuro lab

Culture 7, day three under the scope

Arrow keys move the cue that tips grow toward. Enter stimulates the nearest cell. Escape removes the cue.

0 junctions · point to cue the tips, click to stimulate

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/dendrite-reach

Props

branching
number
default 0.5
How bushy the dendrites grow, 0 (long and sparse) to 1 (densely branched).
pulse
number
default 0.3
Spontaneous firings per cell per second (0 to 2); 0 leaves the cells quiet until stimulated.
stain
"green" | "magenta" | "cyan" | "amber" | (string & {})
default "green"
The fluorescent stain: a named one, or any CSS colour.
cells
number
default 0
How many cells (1 to 8); 0 picks one per ~190 px of width.
growth
number
default 16
How fast a growth cone advances, px/s (4 to 60).
reach
number
default 1
Length budget of each cell's tree, 0.4 to 2.
junctions
number
default 0.6
Chance that two meeting dendrites form a junction rather than pull apart, 0 to 1.
cue
number
default 0.6
How strongly tips grow toward the pointer's cue, 0 to 1.
cueRadius
number
default 150
How far the cue reaches, px.
background
string
default "oklch(from var(--accent) 0.135 0.02 h)"
The field behind the cells, any CSS colour; dark in both themes, as fluorescence is.
interactive
boolean
default true
The pointer and the keys offer a cue and stimulate.
paused
boolean
default false
Holds growth and signals where they are.
seed
number
default 5
Seeds the culture; a new seed grows a new one.
dpr
number
default 2
Cap on the canvas's device pixel ratio, at most 2.
onFire
(cell: number, cause: "spontaneous" | "signal" | "stimulus") => void
default —
A cell fired, with its index and why: on its own, passed a signal across a junction, or stimulated by the visitor.
onJunctionsChange
(count: number) => void
default —
The number of junctions, reported from the start and on each new one.
label
string
default "Neuron culture"
The culture's name; the group reads "<label>, N junctions".
disabled
boolean
default false
No cue, no stimulation; the culture grows on and says it is disabled.
className
string
default "h-56 w-full"
Sizes and shapes the field.