Visual thinking begins before conscious reasoning does: the eye organizes raw dots and edges into wholes using a small set of rules the Gestalt psychologists (Wertheimer, Koffka, Köhler) catalogued in the 1920s. Each mode here renders those rules as an actual algorithm on real particle data, not a static illustration:
Proximity — union–find over pairs with |pᵢ − pⱼ| < r_perceptual
Similarity — union–find restricted to same-category neighbors
Closure — coverage = (arc points drawn) / (total ring points)
Common Fate— count { i : v̂ᵢ · d̂ > cos 28° } (velocity-direction match)
- Proximity — the gap slider moves six clusters apart on a ring; a graph edge connects any two particles closer than the perceptual radius, and the number of surviving connected components is the "perceived groups" readout — exactly the neighborhood step inside density clustering algorithms like DBSCAN.
- Similarity — a grid is painted in contiguous color bands; the slider sets how many bands exist, and connectivity is computed only between same-color grid neighbors, so the readout reflects grouping by category, not distance.
- Closure — a dashed ring is drawn from evenly spaced points; the slider controls what fraction of the ring is actually rendered. Human perception reliably completes the missing arcs into a full circle once coverage passes roughly half.
- Common Fate — a subset of particles shares one drift vector while the rest wander independently; each frame, every particle's current velocity direction is dot-producted against the shared vector, and anything within 28° counts as "moving together," even though no particle is labeled in advance.
This is the same computational leap a sketch, a diagram, or a data visualization asks of a viewer: turning discrete marks into an inferred structure — the core move of visual thinking.