Project 02 Los Angeles, 2025

Panel Mirror

Type Kinetic Installation
Class VS Offline
Instructor Kristy Balliet
Partner Sam Kim
Medium 64 panels, steppers, camera
Scroll to explore

Overview

A kinetic self-portrait machine. A camera reads the viewer's face in real time, collapses it to an 8 × 8 binary grid, and hands each of the 64 values to a stepper motor hidden behind a panel.

Array
8 × 8: 64 mechanically actuated panels
Actuation
One independent stepper motor per panel
Surface
Lenticular lenses shifting white ↔ black
Controller
4 Arduino boards networked to a Raspberry Pi
Input
Onboard micro-camera, live feed
Frame
Steel, hand-built

Interactive Simulation

The Wall
Watches Back

Live demo: move your cursor across the panel field

This is a browser simulation of the built machine. Each of the 64 panels tilts on its horizontal axis, catching light exactly the way the lenticular tiles do on the physical mirror. Where the real installation tracks a face through its onboard camera, this simulation tracks your cursor: the panels nearest to you rotate open, and the red service light behind the array leaks through the seams.

The result is the same argument at a different scale: a reflection that is abstracted, delayed, and mechanical rather than optical.

Optics Lenticular Tile

How The
Tile Turns Black

Each tile is a row of small parallel lenses laid over a pattern of thin black and white strips, interlaced. A lens bends light so that, from one angle, the eye sees only the single strip beneath it, and every lens on the tile shows the same strip at once, so the whole tile reads as one tone. Seen flat and straight on, the lenses show white; when a stepper rotates the tile, the same eye meets each lens at a new angle, sees the black strip instead, and the tile turns black, with greys in between.

How a lenticular tile turns from white to black Cross section of a tile in two positions. A row of small cylindrical lenses sits over a layer of interlaced black and white strips. With the tile flat, the eye looks through each lens at a white strip. With the tile rotated, the same eye looks through each lens at a black strip. 1 TILE FLAT 2 TILE ROTATED LENS RIDGES WHITE STRIP BLACK STRIP EYE SEESWHITE AXIS TURNS EYE SEESBLACK
Cross section of one tile, simplified: lens count and size are not to scale

Film The Mirror In Motion

The Machine
Responding

The built machine tracking a viewer in real time: the camera reads the figure, the controller distributes the frame, and 64 stepper motors rotate the lenticular tiles into a moving, mechanical reflection.

The steppers are audible: every update to the reflection is also a sound event, a shutter-click of the wall recomposing itself.

On View Visitors Meet The Mirror

People,
Reflected

Visitors wave, step closer, hold still, and the wall answers a half-beat later, panel by panel. The delay is the point: you watch the machine deciding what you look like.

Installed SCI-Arc gallery Fig. 02

Diagram Abstracted Reflection

Waving At
The Wall

A viewer waves; the camera reads the gesture; a half-beat later, 64 panels answer. The reflection is never smooth: it snaps from state to state at the speed of the motors, always one step behind the body it mirrors.

01 SENSING 02 DECISION 03 ACTUATION CAMERA VIEWER 8 × 8 MECHANICAL REFLECTION

Concept Mechanical Reflection

"The result is a living, mechanical reflection: abstracted, delayed, and entirely built by hand."

The project asks what a mirror is when its resolution collapses to an 8 × 8 grid. The viewer is present in the surface, but only as a coarse, shifting figure: recognition happens through movement rather than likeness. The machine's latency, the audible steppers, and the visible seams are not defects; they are the subject.

System

Sensing,
Decision,
Actuation

A camera feed is downsampled to an 8 × 8 binary image. A Raspberry Pi distributes the frame to four networked Arduino boards, each managing sixteen independent stepper channels. Every panel then rotates to its commanded state, and the lenticular surface shifts between white and black as it turns.

01 Sensing: onboard micro-camera reads the viewer in real time
02 Decision: the frame is reduced to a 64-pixel binary grid
03 Actuation: 64 stepper motors rotate the panels to match
04 Response, the viewer adjusts, and the loop begins again
Controller array diagram: four Arduino boards networked to a Raspberry Pi, each managing 16 stepper motor outputs

Diagram System Loop

The Loop,
Drawn Out

The camera on top of the frame sends a live image to the Raspberry Pi, which reduces it to 8 × 8, one value per tile. Four Arduino boards, one for each 4 × 4 group of tiles, drive the 64 stepper motors. A 5 V supply feeds the boards, and the face on the tiles returns to the viewer.

System diagram in black line on white: a camera on top of the frame sends a live image to a Raspberry Pi that reduces it to an 8 by 8 grid, the Pi sends data to four Arduino boards, each driving a 4 by 4 group of 16 stepper motors, a 5 volt supply feeds the boards, and the face on the tiles returns to the viewer
System diagram, sensing, decision, actuation

The Machine

Offline
State

The mirror at rest, panels in neutral position, awaiting viewer proximity. Behind the tile field, the drive electronics sit in a red-lit service bay: 64 motor channels wired by hand across the steel frame.

Every component is visible from the side: the machine does not hide that it is a machine.

Mechanical Mirror front view, offline state: 64 lenticular tile panels in a steel frame with red-lit electronics bay behind
Panel field axonometric 8 × 8 actuated grid Fig. 01

Drawing Sheared Sectional Axonometric

Cut Through
Column Eight

The whole 8 × 8 piece, cut vertically through column 8, with the side plane in true shape and the face receding up and to the left. The cut parts are solid black and the wall is grey. Tiles turned to their stop read black, partly turned tiles grey, flat tiles white.

Sheared sectional axonometric of the mechanical mirror in black line on white, cut through column 8: the 8 by 8 tile field recedes up and to the left, the cut shows the tile, hinge knuckle, stepper motor, MDF motor plate, adapter plate and three CNC-cut frame rings in solid black, the wall is grey, and seven labelled leaders name the parts
Sheared sectional axonometric, cut through column 8, 1:4

Drawing Exploded Module

One Pixel,
Taken Apart

One module, column 7 and row 4, drawn in the same projection as the section. Six parts on one axis: the 60 × 60 × 3 mm lenticular tile, the hinge knuckle, the 28BYJ-48 stepper motor, the printed cradle with two pins, the MDF motor plate and the adapter plate.

Exploded axonometric of one module of the mechanical mirror in black line on white, six parts in a row on one axis: lenticular tile, hinge knuckle, stepper motor, printed cradle and two pins, MDF motor plate and adapter plate, each labelled
Exploded module, one tile and its motor, 1:1

Drawing Plan Through The Frame

Held Off
The Wall

The mirror is a shallow box held 48 mm off the wall on four rods. A horizontal cut through the seventh row, looking down, shows the frame rings, the motors with their knuckles and shafts, and the rods to the wall. The tilt of each tile is written under it: four flat, one at 7 degrees, three at 20.

Plan of the mechanical mirror cut horizontally through the seventh row, looking down, in black and white: a grey wall at the top, two rods running down to the frame, eight motors in section in a row, and under each tile its tilt, four at 0 degrees, one at 7 degrees and three at 20 degrees
Plan through the frame, cut through row 7, 1:4

Drawing Front Elevation

At The Height
Of A Face

The mirror is small: a 584 mm face at the height of a face. Its 64 tiles are drawn in the state that was photographed, 10 black, 8 grey and the rest flat white, with a figure 1.67 m tall at true scale beside it.

Front elevation of the mechanical mirror in black line on white: the 8 by 8 tile field, 584 millimetres wide, shows ten black tiles and eight grey tiles clustered at the lower right, hung above a floor line at the height of a face, beside a standing line-drawn figure of 1.67 metres with a scale bar
Front elevation with a figure, state as photographed, 1:10

Process PCB Assembly

Built
By Hand

Manual wiring of the stepper driver modules across the 64-channel grid. Four driver boards, one power supply, and several hundred hand-routed connections.

The full 64-channel stepper array wired on the bench
Hand-wiring the driver boards behind the panel field
The controller layer: four driver boards, power supply, and several hundred routed connections
The finished panel field with the onboard camera mounted top center

Precedents

Reflection,
Fragmented

Precedent: reflective glass cladding acting as an urban mirror

Reflective cladding as an urban mirror: the building as a surface of return.

Precedent: cubist fragmentation as a model for pixelated representation

Cubist fragmentation as a model for pixelated, abstracted representation.

VS Offline Kinetic Physical Computing Arduino Fabrication Interactive

Next Project 03

Spiral
Staircase

↗