Topology simulator
TopoScope
Persistent homology, live - computing the shape of data from a raw, noisy point cloud. Grow a ball of radius r around 24 scattered points and the connectivity keeps changing; TopoScope reports the Betti numbers at every step and catches the moment a genuine hole appears, then vanishes.
24 points jittered around a unit circle. The empty centre is a real topological feature, not a drawing choice - the library has to find it.
Verbatim console output of KullGames.TopoScope built on OnlyCSharp 1.8 (net10.0):
KULLGAMES TOPOSCOPE -- persistent homology via Vietoris-Rips filtration
powered by OnlyCSharp 1.8 -- Mathematics.Geometry.Topology (VietorisRips + Betti)
==============================================================================
Point cloud: 24 points jittered around a unit circle (seed=42, jitter=+/-0.12)
==============================================================================
Filtration built: 278 distinct radius steps from r=0 to r=2.3.
radius | V E F | b0 b1 | what's happening
--------+---------------+---------+-------------------------------------------------
0.05 | 24 0 0 | 24 0 | all alone: every point is its own island
0.20 | 24 4 0 | 20 0 | nearest neighbors link into short arcs
0.40 | 24 21 2 | 5 0 | arcs have merged into a few big clusters
0.55 | 24 38 14 | 1 1 | RING CLOSES: one component + one loop -> a hole is detected
1.20 | 24 108 193 | 1 1 | the hole survives as more (short) chords are added
1.80 | 24 197 750 | 1 0 | enough triangles now tile the interior -> the hole is gone
2.30 | 24 276 2024 | 1 0 | fully filled 2-skeleton: a topologically trivial blob
Automatic transition scan (every one of the filtration's own steps -- nothing hand-picked):
single connected component (b0=1) first at r = 0.4175
loop DETECTED (b1>=1) first at r = 0.4193
loop CLOSES back up (b1=0) first at r = 1.7003
The library detects the ring's hole (b1=1) once the balls
overlap into a single loop, and watches it close again (b1=0) as filled
triangles tile the interior - the persistent-homology story for a noisy ring, all computed, none assumed.