This dashboard visualises the Bloom-filter exchange between every station in the Macula mesh. Each station maintains a 1024-byte (8192-bit) filter representing every topic it knows someone is subscribed to. Every 30 seconds — or within 2 seconds of any local or peer change — each station rebuilds its filter and broadcasts it to peers; receivers OR the new filter into their own, so subscription interest propagates across the whole mesh within seconds.
Three filters per station are cached here: local = topics this station's own pubsub_server has subscribers for, per-station and dynamic; outgoing = local OR every peer's filter, the transitive merge that drives cross-station routing and converges to the mesh-wide union; diff = bits in the union that this station's outgoing is missing, quiet at convergence and red while a cascade is in flight.
The view toggle switches between four perspectives. strips shows per-station local/outgoing/diff. sharedness shows the mesh-wide bit-cardinality histogram (how many bits are set on N stations); converged meshes have a single dominant "in N" bar. matrix is the pairwise Jaccard similarity grid — partitions show up as coloured bands. sparklines shows per-station popcount-over-time so you can see motion directly.
Hit sub on any row in the strips view to subscribe this browser to a fresh throwaway topic on that station — its local strip lights up first, the outgoing strip catches up within ~2s, and peers' diffs redden briefly until the cascade reaches them.
local = topics
this station's pubsub_server has subscribers
for. Per-station, varies with local activity.
outgoing = local
OR every peer's filter, the transitive merge that drives
cross-station routing. At full convergence every station's
outgoing equals the mesh-wide union (199 bits).
diff = bits in the
union this station's outgoing is missing — quiet at
convergence, red while a cascade is in flight.
Hit sub on
a row to subscribe this browser to a fresh
diag.bloom.demo.<N> topic on that
station. Its local strip lights up first; the
outgoing strip picks up the bit within ~2s; other rows'
diffs turn red briefly until the cascade reaches them.
Subscriptions die with the browser tab.