A public beacon, pulsing every two seconds.
Each pulse is a hash of the current plasma simulation state, chained to the previous pulse. Walk the chain yourself and catch any in-flight tampering — the verifier is one shell line and you trust no one to read the result.
Emitted by one node today · multi-witness Ed25519 cosignature on the way
Every two seconds, the Ledatic MHD solver runs one more step. The resulting plasma state is hashed, concatenated with the previous pulse hash, and posted to a public store. Anyone can walk the chain. Today the chain is produced by a single node; external Ed25519 cosignatures from independent witnesses will land in v2.
The 128² MHD grid advances one timestep. Real physics, conservation-checked.
SHA-256 of the plasma state. Then SHA-256 of prev_hash || state_hash.
Pushed to Cloudflare KV as a new pulse row. Visible to the world on this page.
An Orszag-Tang vortex on a 128² periodic grid. Ideal-MHD, Lax-Friedrichs, conservation to machine precision (Δm/m < 10-15, ΔE/E < 10-15, ∇·B at 10-15 by construction). The frame you're looking at is the same frame that just got SHA-256'd into the chain row above. Plasma is chaotic — small perturbations blow up fast — which is exactly the property an honest entropy beacon needs.
Live density field (ρ) sampled from /entropy/frame/current — the 128×128
solver grid on a 2π periodic domain, min-max normalized and color-mapped in your GPU. A new
attested frame lands ~every 2 s — one per beacon pulse — and the display
cross-dissolves between them for smooth motion. Every keyframe has been hashed and signed into the
entropy chain. Deeper write-up on the plasma page.
Last 50 pulses. Refresh to see new ones, or watch the ticker in the nav. Each hash is clickable — copy and feed it to the verifier below.
No Ledatic trust required. Each pulse carries the previous
pulse's hash in prev_value_hex. Fetch two pulses
a few seconds apart and confirm they chain. Curl and jq are
all you need.
curl -s https://ledatic.org/entropy/pulse/log | jq -e '. as $l | all(range(1; length); $l[.].prev_value_hex == $l[.-1].value_hex)' && echo "chain OK"
Fetches the last 50 pulses and confirms each one's
prev_value_hex matches the previous pulse's
value_hex. If anyone rewrote history mid-chain,
the link breaks and you'll see chain BROKEN.