Living data
components.

Ring gauges, VU meters, heartbeat monitors, spectrum analyzers, radar sweeps, thermometers, compass dials. One canvas per component, 60fps interpolation, two props.

GitHub →
132
Modes
60
FPS
25
Categories
2
Props
0
Deps

Two props. That's it.

import { Pulse } from 'usepulsekit'
<Pulse value={cpu} mode="ring" />   // value + mode. done.

Feed it data however you like. WebSocket, polling, random walk. PulseKit lerps between updates so even infrequent data looks smooth.

132 modes, all alive.

Every canvas below runs live with simulated data. Nothing is static. Scroll to explore all 25 categories.

Core 30

Shape 6

Pattern 4

Waveform 6

Audio 4

Instrument 4

Time 4

System 6

Health 4

Weather 4

Financial 4

Rating 4

Loading 4

Status 4

Spatial 4

Digital 4

Chart 4

Radial 4

Gauge Variants 4

Ring Variants 4

Wave Variants 4

Meter Variants 4

Spark Variants 4

Alert 4

Fill 4

Vanilla JS too.

import { PulseEngine } from 'usepulsekit'
const engine = new PulseEngine({ value: 50, mode: 'gauge' })
engine.mount(document.querySelector('canvas'))
engine.start()
setInterval(() => engine.setValue(Math.random() * 100), 1000)

How it works.

One canvas, one requestAnimationFrame loop. When a new value arrives, nothing jumps. The display lerps toward the target at 8% per frame. History, momentum, and color all follow the same interpolation. That's why every mode feels like one thing breathing rather than parts updating independently.

Experimental software. DYOR. Built by 0xDragoon.