Vibrating Pixels, Mechanical Mirror




The following tutorial guides you through the basic steps in creating this vibrating-pixel-mirror (feel free to help me with a name), which uses tiny motors to vibrate an array of mirrored pixels and distort the image. The motors are individually addressable through an Arduino board, allowing simple animations to be created. I'm hoping to translate this prototype into a larger array with greater resolution and the possibility for more complex animations and interactions.

Step 1: Making the Face of the Thing

1. Figure out the size.
Again, you can make it as big as you want, but a grid of 9 pixels is pretty manageable for a first try:
Mine consists of an 8" square with nine 1" diameter circles arranged a grid at 1-1/8" from center to center.

Laser-cut your shape out of a sheet of mirrored acrylic.
The circles cut out of the center will be used as the face of the pixels. I used circles to avoid trouble later on in orienting and aligning them.

3. Put some rubber on the back.

The black rubber shown is 1/4" neoprene sheet. Cut out a 6"-7" square of it, at least big enough to cover all the holes. Super glue it onto the back of the panel. The neoprene is what the pixels will eventually be attached to, and seems to do a pretty good job of holding them firmly while not dampening the vibration.

4. Make a frame.

If the thing stands up on it's own, everything will be a little bit easier. To this end, I built a wooden frame for the panel to mount to . Make it deep enough to mount the Arduino uno board inside, around 3". For more details, maybe find a woodworking friend, or find a wooden box the right size, or make one out of cardboard, or macaroni.

Step 2: Pixel Parts

Here's what I used:

1. The nine mirrored acrylic shapes that were cut out of the panel

2. Nine pieces of .02" dia. x 1" long steel piano wire.

These will be cut a little shorter later on so it dosen't have to be too accurate. longer is better. The steel instrument wire compared to some other metals is pretty elastic - it doesn't tend to kink easily when bent which is important. It's sometimes sold at art supply stores as a model making material.

3. Nine m
ini vibrating motors.
As the name suggests, these are what do the vibrating. They're cheap and neat. I got them from adafruit ( You'll need to solder an extra length of wire to the leads of each one. 8" long is probably safe.

4. 1/8" thick x 1/2" square acrylic with a ~.025 hole drilled in the center (the red things)

These transition between the wire and the motor. I was able to laser cut these with the hole and all (not an accurate way to make a small hole but it worked). The hole is there to accommodate the piano wire and should be a fairly tight fit to make the assembly easier.

5. 1/8" thick x 1" dia. custom acrylic shape with a ~.025 hole drilled in the center (the yellow things)

These transition between the wire and the mirror. They're made just like the red parts. They are the same diameter as the pixels which makes centering them easy later on. They could be full circles but the extra weight might be an issue.

Step 3: Pixel Assembly

Here's how it all goes together:

1. Glue the yellow acrylic part to the back of the pixel face.
The super glue I used melted the backing very slightly which showed on the mirrored side, so you might try something different. Also, if the acrylic looks warped at all, you might need to clamp it to make sure its on there flat.

2. Attach the wire
Insert the wire into the hole in the yellow acrylic and glue it. Use pliers to press the wire in so as not to put the wire through your finger. Add a dab of glue where it connects and wait for it to dry.

3. Trim the wire.
Using calipers and diagonal cutter I trimmed the wires all equally to 11/16" above the back of the mirrored piece.

4. Pierce the rubber
The rest of the pixel assembly happens after they are inserted into the panel. To do this you need to pierce holes in the rubber that has been attached to the panel. In order to make these holes straight I used a sewing needle inserted into a drill press. To keep them centered in the opening I made a jig with laser cut acrylic.

5. Attach the square acrylic piece to the other end of the wire.
With all panel laying face down and the wire sticking up through the rubber, press the wire into the hole in the red acrylic square and add a dab of glue where they come together. Make sure the wire isn't sticking up past the surface of the acrylic square. let it dry.

6. Finally, Stick the a vibe motor to the center of each acrylic square
The pixels can still rotate at this point so orientation doesn't matter. The motors have their own sticky back, but since these are going to get warm and shake violently, some extra adhesive is recommended. I dabbed tiny amounts of regular gorilla glue around the edges of the motors. DO NOT USE SUPER GLUE. I did so on a previous prototype and, for reasons still unexplained, my motors ceased to pass voltage through them. (the multimeter read infinite resistance).

Step 4: Containing the Wires

The nest of wires created at this point is not healthy. One solution:

1. Make some custom laser cut wire corrals.
These were cut out of 1/4" stock and work pretty ok. I would tweak the shape a little if I did it again. They seem excessive but were actually kind of necessary in that I couldn't use staples in this situation. They glued down easily to the rubber and more or less hold the wires in.

2. Run the wires
Run the wires as shown so that they all exit on the same side of the panel. This will be the side that your breadboard is mounted on.

Step 5: Electronics

What I used:

An Arduino Uno
An adafruit perma-proto breadboard.
Two 75HC595 shift registers

What I did:

1. Prepare to mount the components
hold the Uno and Breadboard on the inside of the box against the wood and mark the mounting holes. pre drill these holes into the wood so that mounting will be easier later on

2. solder the shift registers onto the breadboard
The shift registers allow the Arduino to control all nine pixels through a single pin. Each shift register can control 8 elements. These two are linked in series, with the second one controlling only a single vibrating motor.

3. Read the
Arduino Shift Out Tutorial
These electronics are hooked up exactly according to the wiring diagrams here. I have simply substituted motors for LEDs.

4. Hook up everything but the pixels

I found it convenient to get everything on the breadboard set up and connected to the Arduino before dealing with the motor connections.

5. Connect the motors

Hook them up them according to the shift out tutorial and you should be done. That tutorial also has some code examples to use as a starting point in creating neat effects. Ideally you would connect the motors in some intuitive order (1-9 is counted right to left and up to down or something).

. Good Luck
I'd love to hear about any successes or failures you have. I'm open to questions, suggestions and commissions for massive, architectural-scale vibrating installations.



    • Stone Concrete and Cement Contest

      Stone Concrete and Cement Contest
    • Paint Challenge

      Paint Challenge
    • DIY Summer Camp Contest

      DIY Summer Camp Contest

    18 Discussions


    5 years ago on Introduction

    You're in the Ponoko blog:


    I've got a suggestion for this. if you want to go high resolution, buy a DLP projector with a dead bulb. (IE

    take a large lens and focus it on the DLP sensor, and have it reflect directly back out. A dlp sensor is nothing but a bunch of vibrating mirrors that each represent a pixel. You might be able to remove the unnecessary components and project a "picture" that makes the pixels vibrate like you want, achieving a high resolution version of this with pretty minor effort. The issue I see with this idea though is the lensing. It might be too difficult, but it could be worth a shot!

    Eh Lie Us!

    5 years ago on Introduction

    Very creative and looks like a lot of fun but I already don't like what I see in the mirror!


    5 years ago on Introduction

    Just had an idea with this. Using an entire, large mirror have a camera that would track to where people are walking and then only make the pixels right in front of them vibrate so that their reflection is blurred but nothing in the back ground is.

    For scaling this up, I'd suggest buying square mirrors in huge bulk and having the whole thing pieces together with no base mirror. Then see if this provides enough vibration to get a nice effect. If not, then this certainly would but in large scale art installations, price is the enemy.

    1 reply

    Thanks. As currently constructed, squares create an added difficulty because they have to be properly aligned (if circles rotate it dosen't matter).There might be a way around this. I agree that with a larger installation the back portion might not be entirely necessary. Also this one currently uses the flat button vibrating motors that you reference. They're plenty strong and surprisingly cheap


    Reply 5 years ago on Introduction

    It's ArT. Art is not required to be exclusively practical; that would be a tool. This piece invoked certain emotions; I was first perplexed, then curious, amused (after watching the video). I think this piece did its job. It's just f****ng cool.  I would love to see a large array and watch a video of people reacting to it. Maybe the large array would react to the motion of people walking by. I picture a wave washing through.

    Ya large scale is the dream. Just need a space and some funds! Proximity sensing would be super easy too. maybe coupled with sound sensing for when you feel like singing, or screaming.


    5 years ago on Introduction

    OK. Neat idea.

    If only there was some way to hide the seams in the little mirrors so that parts of the image would "soft focus" without you brain knowing why.

    1 reply

    5 years ago on Introduction

    I think of it as a kind of work of conceptual art, that has an electronic component.
    It becomes a portrait of who ever is looking at it.
    You can build it and put it on your wall, but you can't say you are the artist, that honor goes to wkahler.


    5 years ago on Introduction

    This is nice. I like what you have done here :-)

    It would be interesting if it were scaled up a lot or if the mirrors were arranged in a more arbitrary configuration.


    5 years ago on Introduction

    The video is private :(
    What does this thing do?

    looks like an interesting project, your video doesn't work for me it says its private. can you fix it?