Pixelize the Earth

Final project (WIP)

Say a place and a table of 400 pins rises into its shape.

01 · Concept

Pixelize the Earth

Say a place, like MIT, Taipei or the Alps, and a table of pins rebuilds it in front of you. Terrain, buildings and photographs all reduce to the same thing, a grid of heights, and turning a place into that grid is what I mean by pixelizing it. A pixel is the smallest thing on a screen. Here it is a pin you can put your hand on.

The table has 20 × 20 pins. Instead of one motor per pin, a row of 20 actuators rides on a carriage and sets the pins one row at a time, the way a 3D printer builds a layer. A pin stays where it was pushed. To change the picture I press every pin flat and push the rows up again.

Hand-drawn sketch of a flat table with a grid of pins, some raised in blue, and a row of red actuators underneath with an arrow along the side
My sketch of the table: pins (blue) rising from the grid, and a row of actuators (red) underneath.

A language model sits in the middle. It decides what to frame, how much to exaggerate height and what to leave out, because 400 numbers cannot hold a city.

The whole path, from voice to pins:

  1. Say it

    "Show me MIT."

    → audio
  2. Transcribe

    Speech to text, on a computer.

    → text
  3. Interpret

    A language model picks the place, the window, the pixel size and how much to exaggerate height.

    → place, window, scale
  4. Fetch

    Building footprints and heights, or elevation tiles, from open data.

    → footprints or elevation
  5. Pixelize

    Sample the window at 20 × 20, one height per pixel. Tested in Grasshopper below.

    → 400 heights
  6. Send

    The computer passes the 400 numbers to the table's microcontroller, over USB or Wi-Fi.

    → 20 rows of 20
  7. Build

    A plate presses the pins flat, then the carriage sets them row by row.

    → the pins
  8. Reply

    The model says what it chose and waits for the next request, like "zoom out".

    → back to 3

02 · Mechanism

How the pins move

A pin is a rod that stays where it was pushed, so everything that moves lives under the table. A carriage holds one row of 20 actuators, one per column, and slides along a single axis. At each stop the actuators push their 20 pins to height and retract, then the carriage steps to the next row.

This is how a printer lays down lines. Twenty columns are set in parallel and twenty rows in sequence, and a height is just the stroke of an actuator, so the carriage is the only axis that has to travel. Before every new picture a plate presses all the pins flat.

How the carriage builds a picture Four side views. A plate presses the pins flat; a carriage with a row of actuators stops under one row of pins and pushes it up; it moves on row by row; at the end the pins hold the shape. 1 Press flat Carriage waits at home 2 Push a row 20 actuators set one row 3 Move on One axis, row by row 4 Done Actuators retract
Side view, one pin drawn per row. 1 A plate presses every pin flat. 2 The carriage stops under a row and its 20 actuators push that row to height. 3 It moves on, one row at a time. 4 After the last row the table holds the shape, here the skyline of the MIT model. The gray bars are the two guide plates the pins slide through, and the orange pin is the row being pushed.

You could also do the opposite: keep the row of actuators fixed and slide the whole pin tray over it, like the bed of some 3D printers. I chose to move the actuators instead. That way the table itself never moves, and the only thing you see is the pins rising.

03 · First test

MIT at 20 × 20

To see whether 400 pixels are enough, I built the smallest version in Grasshopper. The definition takes 262 MIT building footprints with their heights, lays a 20 × 20 grid over a 400 m window and samples each 20 m pixel at 121 points. A pin is 2 mm plus 0.5 mm for every metre of building. Each pixel takes the tallest and the average height, weighted 60:40, so a tower still shows in a pixel that is mostly courtyard. The window is turned 24° to line up with the Main Group.

The result is a 200 × 200 mm model with pins from 2 to 31 mm, at 1:2000 both horizontally and vertically.

Four steps: MIT building footprints with a rotated sampling window, the window upright with its 20 by 20 grid, a grey height map of the 400 pixels, and the finished pin model
One pass through the Grasshopper definition. 1 The 262 footprints, darker where taller, with the sampling window in orange. 2 The window turned upright with its 20 × 20 grid. 3 One height per pixel. 4 The 400 pins.

04 · Scale

Same pins, different scale

The number of pins never changes, only the size of a pixel does. Asking for a wider place makes each pin cover more ground, so "show me MIT" and "show me Cambridge" are the same 400 pins with different answers. Choosing the window and the height exaggeration for each request is the job I want the language model to do.

The same 20 by 20 grid at 100, 40 and 20 metres per pixel, each with its pin model below; at 100 metres the campus fills a corner of the grid, at 20 metres it fills the grid
The same definition at 100, 40 and 20 m per pixel. Pin height is 0.5 mm per metre in all three, which is true scale at 20 m per pixel and exaggerates height ×2 and ×5 at 40 and 100 m. The data only has MIT's buildings, so the surroundings stay flat.

05 · Prior art

What already exists

  • inFORM (MIT Tangible Media, 2013): 900 pins with a motor each. It follows hands and moves objects, and it does not show places.
  • Relief (MIT Tangible Media, 2010): 120 pins showing terrain, the closest ancestor.
  • SHAPE-IT (UIST 2024): a text prompt becomes shape-changing behaviour on a 24 × 24 pin display. It authors abstract shapes and motion, not real places.
  • Speech To Reality (Alexander Htet Kyaw, HTMAA 2023): speech to a 3D object assembled by a robot arm.
  • Mechanically multiplexed flip-dot (James Bruton): one row of servos on a moving carriage sets the dots, which is the mechanism I plan to borrow. PinThing has a motor per pin, and its write-up names the carriage as the cheaper way to scale.

What I add is real places and real data, with a language model choosing the scale and the exaggeration.

06

AI usage

Claude helped me test the idea, find the prior art above and export the figures on this page from my Grasshopper definition: data extraction, Rhino renders and layout.