KQ-1851 · CORE/PLANE
Core Plane
A plane of ferrite memory cores strung on fine wires, drawn on a canvas: eight columns from bit 7 to bit 0 and as many rows as fit, each core a small ring at ±45° threaded by its row, column and sense wires, lit when it holds a 1, and each row labelled with its character and hex. Typing writes each character's UTF-8 bytes into the next row the way the real thing does: a spark runs along the row wire while sparks run down the column wire of every bit that changes, and where each pair meets the core flips with a stutter scaled by flicker and a tiny burst, a bit every few milliseconds left to right; Backspace erases the last row, older rows fade, and an idle job reads random cores with a faint blink. The writing happens in a real text input, so the keyboard is simply typing; reduced motion swaps the sparks for a short cross-fade timed on durations.base.
Gaugeworks Core Store
Type to write, a byte to a row
Each character you type is written to the next row of cores, one bit per column; Backspace erases the last row.
e · 0x65 · 01100101 · 4 bits set
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/core-plane
Props
- value / defaultValue
- string
- default ""
- The text written to the plane; controlled or initial.
- onValueChange
- (text: string) => void
- default —
- Fires as the visitor types, with the new text.
- cores
- number
- default 10
- Diameter of a core, px, 6 to 18: finer cores fit more rows.
- flicker
- number
- default 0.6
- How hard a core stutters as it flips, 0 (a clean flip) to 1.
- wire
- "copper" | "brass" | "silver" | string
- default "copper"
- The wires' colour: a preset, or any CSS colour.
- fade
- number
- default 0.6
- How much older rows fade as new ones are written, 0 (none) to 1.
- idle
- boolean
- default true
- Let a background job read random cores when the plane is idle.
- readRate
- number
- default 1.2
- How many cores the idle job reads a second.
- bitDelay
- number
- default 26
- Time between bits of a write, ms.
- maxLength
- number
- default 64
- Most characters the input takes.
- placeholder
- string
- default "Type to write"
- Shown in the empty input.
- label
- string
- default "Write to core memory"
- The input's accessible name.
- height
- number
- default 176
- Height of the plane, px.
- sound
- boolean
- default false
- Play a tick for every core that flips while you type. Off unless asked for.
- paused
- boolean
- default false
- Hold the plane still: writes land without sparks and the idle job rests.
- dpr
- number
- default 2
- Cap on the canvas's device pixel ratio, at most 2.
- disabled
- boolean
- default false
- No typing; the plane dims.
- className
- string
- default —
- Classes for the wrapper.
| Prop | Type | Default | Description |
|---|---|---|---|
| value / defaultValue | string | "" | The text written to the plane; controlled or initial. |
| onValueChange | (text: string) => void | — | Fires as the visitor types, with the new text. |
| cores | number | 10 | Diameter of a core, px, 6 to 18: finer cores fit more rows. |
| flicker | number | 0.6 | How hard a core stutters as it flips, 0 (a clean flip) to 1. |
| wire | "copper" | "brass" | "silver" | string | "copper" | The wires' colour: a preset, or any CSS colour. |
| fade | number | 0.6 | How much older rows fade as new ones are written, 0 (none) to 1. |
| idle | boolean | true | Let a background job read random cores when the plane is idle. |
| readRate | number | 1.2 | How many cores the idle job reads a second. |
| bitDelay | number | 26 | Time between bits of a write, ms. |
| maxLength | number | 64 | Most characters the input takes. |
| placeholder | string | "Type to write" | Shown in the empty input. |
| label | string | "Write to core memory" | The input's accessible name. |
| height | number | 176 | Height of the plane, px. |
| sound | boolean | false | Play a tick for every core that flips while you type. Off unless asked for. |
| paused | boolean | false | Hold the plane still: writes land without sparks and the idle job rests. |
| dpr | number | 2 | Cap on the canvas's device pixel ratio, at most 2. |
| disabled | boolean | false | No typing; the plane dims. |
| className | string | — | Classes for the wrapper. |