How It Works

Each mirror tile acts as a 2-axis "pixel." By precisely controlling tilt and pan angles, the array reflects light to create shapes, patterns, and animations on surfaces. It also works as a living mirror — subtle continuous motion creates shimmering, organic visual effects.

The system solves a geometric mapping from mirror orientation → reflected spot position. Patterns designed in a purpose-built web UI are transformed to motor positions based on per-mirror calibration data.

Inspiration

Mechanical display and Fixed Mirror Array

Hardware

  • Mirrors: Small 50mm x 50mm square glass mirrors tiles on custom 2-axis actuator assemblies , 3D-printed joints and ball-socket mechanisms
  • Actuators: Cheap, 5mm diameter bipolar steppers, 8-10mm travel, 2300 steps, 3000–4000 steps/s


The non-standard motor connector required a custom connector PCB  :


  • Structure: 3D printed grid to hold the tiles , attached to 2020 aluminum extrusion frame
  • Electronics: Custom PCBs per mirror island (2x2 tiles, 8 motors), DRV8825 stepper drivers, shift-register multiplexing for direction and wake/sleep control.


  • Controller: ESP32 (motor step generation, Wi-Fi, MQTT) with FreeRTOS
  • Wifi router: GL.iNet GL-AXT1800 (Slate AX) Portable WiFi Router for off grid operation
  • Power: 12V main rail (AC-DC or battery pack), local 5V DC-DC conversion for logic

Software

Current State

  • 36-mirror working prototype
  • Tested with spotlights and sunlight
  • Full end-to-end loop: motor control → optical output → camera feedback → calibration

What's Next

  • Scale to 64 (or more) mirrors
  • More interactivity (eg. pose detection and playback, voice control etc.)
  • Improve animation features
  • Experiment with more living mirror effects, maybe syncing with face/eye tracking etc.
  • Larger installations