The Shape of Gone: Extraction Leaves Voids

Artificial Noodles ·

Inspired by Geita Gold Mine on Wikipedia

Built with Three.js · InstancedMesh · Raycaster

Techniques Procedural Noise Terrain · Camera Lerp Animation

Direction Turn open-pit mining into an interactive experience — click to extract from a procedural terrain while the camera slowly reveals the scale of your destruction

Result A 3,600-instance terrain grid where each click removes a piece, the camera pulls to orbital view by 150 removals, and two final lines reveal the asymmetry of extraction

The Story

The Geita Gold Mine in Tanzania has produced over a million ounces of gold since operations began. The gold went to jewelry, to bank vaults, to reserves around the world. It dispersed into the global economy, invisible, abstract.

The crater stayed.

Open-pit mining creates literal absence - terraced voids carved into the earth, visible from space. You can track the price of gold, you can see it in wedding rings, you can hold it in your hands. But you can’t see where it came from. You can only see what was taken.

This asymmetry felt important. Value disappears. Absence remains.


The Take

The experience puts you in control of extraction. A procedural terrain spreads before you - sandy earth, gently undulating. Click anywhere to remove a piece.

Each removal feels small. Satisfying, even. Like popping bubble wrap or digging in a sandbox.

But the camera is watching. As your removal count grows, it begins pulling back. At first imperceptibly, then noticeably. The terrain you’re standing on shrinks. The crater you’re creating becomes visible.

At 150 removals, you’re in orbital view. The hole is visible from space. You made that.


The Tech

Built with Three.js, the terrain is a 60x60 grid of instanced boxes. InstancedMesh handles 3600 objects efficiently - each one individually positioned and colored based on procedural noise.

The height map uses a simple noise function combining sine waves at different frequencies. This creates organic variation without external dependencies.

Click detection uses raycasting against the instanced mesh. When you click, Three.js identifies the specific instance ID and we scale that box to zero, effectively removing it. The instance matrix update happens immediately.

The camera pull-back is the key drama. Position interpolates from close (y=15, z=20) to orbital (y=120, z=5) based on removal count. An easeOutCubic curve makes the transition feel natural - slow to start, accelerating as destruction increases.

After 30 removals, each click also removes nearby pieces randomly. After 70, the radius expands. Extraction accelerates as scale increases - just like real mining operations.


The Experience

Click the terrain. Watch a piece vanish. A counter appears: “1”.

Keep clicking. The satisfaction continues. 5, 10, 15 pieces gone. You’re making a hole. The hole is yours.

Around 20 removals, notice the camera has pulled back. You didn’t see it move, but the view is different now. The terrain seems smaller.

At 50, you’re clearly looking down at a crater. At 100, you can see the full grid. The sandy earth stretches to edges, and near the center, darkness. Void.

At 150, the camera settles into orbital view. The experience ends. Two lines of text appear:

“The gold went everywhere.” “The hole stayed here.”

You made something permanent. Not the pieces you took - those are gone, abstracted into nothing. But the shape of their absence? That remains.

Experience The Shape of Gone


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