The Cluster

Artificial Noodles ·

Inspired by Texas sharpshooter fallacy on Wikipedia

Built with Canvas 2D · Bridson’s algorithm · rejection sampling

Techniques Poisson disk sampling · grid-snap blending · radial density gradients · staggered dot choreography

Direction Your brain is a pattern-completion engine that can’t be turned off

Result A 5-round game where you consistently identify the wrong field as “patterned” — because truly random data clusters more than you expect

The Story

In 1977, epidemiologist Seymour Grufferman coined a name for something humans do involuntarily: the Texas sharpshooter fallacy. A cowboy fires randomly at a barn wall, then paints the bullseye around the tightest cluster of holes. It’s not stupidity — it’s the fundamental architecture of human perception. We see the cluster first, then construct the narrative of intention around it.

The deeper problem is the clustering illusion. When asked to generate or identify “random” data, humans consistently produce and expect even spacing — a Poisson disk distribution. But true randomness is clumpy. It has voids and clusters. And when we see those natural clusters, our brains scream “pattern!” even when there’s nothing there.


The Take

The Cluster makes you experience this fallacy in real time, five rounds in a row. Two fields of dots. One has a genuine structural pattern — a subtle grid, a density gradient, evenly spaced Poisson disk sampling. The other is purely random. Your job: find the pattern.

The trap is that the random field almost always looks more patterned than the actually-patterned field. Random clusters look intentional. Random voids look structured. And the patterned field, with its gentle regularity, looks more like what people expect randomness to be.

Each round reveals the truth with structural overlays — grid lines, density contours, or highlighted circles drawn onto the canvas. The insight hits not when you read the explanation, but when you see the grid materialized over the field you dismissed as random.


The Tech

Dot Generation Algorithms

Five rounds, five different generation strategies — each designed to exploit a specific perceptual bias:

Round 1 — Grid Snap: Start with pure Math.random() positions, then blend each dot 35% toward the nearest intersection of an 8x8 grid. The result is subtle regularity that reads as “more random” than actual randomness, because the spacing becomes more even. The blend factor is critical — too high and the grid is visible, too low and it’s indistinguishable from random.

Round 2 — Radial Gradient: 70% of dots use a center-biased distribution (Math.pow(Math.random(), 0.7) for the radius), 30% are fully random to fill the edges. The density gradient is gentle enough that the random field’s natural clustering still looks more “patterned.”

Round 3 — Poisson Disk (The Inversion): Bridson’s algorithm generates blue noise — points with a minimum distance guarantee. The result is an unnervingly even distribution that most people identify as “the pattern” because it looks artificial. But the other field is pure Math.random(), which IS the pattern. This round inverts the intuition built in rounds 1-2.

Round 4 — The Void: Math.random() with rejection sampling to exclude one randomly-chosen quadrant. The empty region screams “someone removed these dots deliberately.” It’s just chance. The other field is full uniform random, which IS the pattern (full coverage).

Round 5 — Hidden Circle: 108 random dots plus 12 dots placed on a circle with slight angular jitter. Can you find the needle in the haystack? Most people are still looking at clusters in the random field.

Scatter Choreography

Dots don’t appear simultaneously. Each dot gets a random stagger order — a shuffled index that determines when it fades in. At 25ms intervals with 200ms fade duration, 120 dots take about 3.2 seconds to fully populate, creating a gentle rain effect. Each dot eases in with a scale-up from 0.5x to 1.0x, giving it a subtle “landing” quality.

Reveal Overlays

When you choose, the pattern is revealed by drawing structural overlays directly onto the Canvas 2D context — grid lines, concentric circles, dashed circle outlines, or quadrant highlights. The overlay draws on top of the existing dots, making the hidden structure suddenly visible. The round 5 circle reveal is the most satisfying: a dashed circle connects 12 dots you probably never noticed as related.

The Finale Illustration

The barn wall visualization generates 40 random bullet holes, finds the densest cluster via brute-force neighbor counting within a radius, then draws concentric bullseye rings around it with staggered timing. The bullseye appears to “paint itself” around the cluster — the Texas sharpshooter in action.


Experience: The Cluster


This blog post was AI generated with Claude Code. Authored by Artificial Noodles.