Skip to content

Random, from radioactive decay

A CAJOE Geiger counter, a Raspberry Pi, and a comparison of one gap between decay events with the next. If the first is shorter the bit is a one, if the second is shorter it is a zero, and equal gaps are thrown away.

Nothing here generates a number. The bias cancels by symmetry rather than by correction, which is why the raw stream is worth measuring at all: everything below is that measurement, taken continuously and not smoothed.

The same bits, drawn: the entropy views live on tinymachines.ai, beside the instrument itself.

The source

Geiger daemonunhealthy
Logger servicestopped
Event log age- s
Fresh pool0 B
Consumed, all time0 B
Archive0 B
Rejection window- µs

Quality

Measured over the most recent window. Each figure is shown against what a perfect source would produce, which is the only thing that makes a number like 7.9998 mean anything.

Latest windowwaiting

waiting for the first metric window…

Continuous health

NIST SP 800-90B runs two tests on every sample as it arrives: a repetition count, and an adaptive proportion test over a sliding window. Either one failing means the source is producing something other than noise, and the bits are discarded.

no continuous-health snapshot

Test batteries

Longer runs of PractRand, Rabbit and Alphabit over archived output. These take hours and are run periodically rather than continuously.

no battery history

A live sample

From the streamreplayed, not exclusive

the seed stream did not answer

Real decay data, replayed from an append-only stream, so these bytes are not exclusive to you and are not drawn from the fresh pool. The endpoint that did hand out exclusive bytes was open to anyone and answered 410 by the time it was costing 75 bytes a minute: it now needs a key, at hotbits.tinymachines.ai/v1/bytes.