Mechanical Display

This is a mechanical display utilizing an array of pixel units driven by servos.

Similar projects worth following
In this project, we created a mechanical display by arranging pixel units driven by servos in a single-axis gimbal structure. By using various types of plates as elements of the pixels, we can add various effects.

I have received a comment pointing out that this device closely resembles the work of Daniel Rozin. While I don't necessarily feel that the starting point of the ideas is similar, it is true that the device itself has landed in a very close place. 

I sent an email to Daniel Rozin explaining the situation honestly, and I received the following respose: "I would be glad if you refernced my art as your inspiration in any publication"

At the time of conceiving this device, it was not the case, but now that I am aware of his great body of work, there is no doubt that I am influenced by his art. I express my respect for him and his work.


This display drew inspiration from various sources such as the Archimedes' mirror, mirror arrays used in solar power plants, the motion of water in rice fields, and the movement of swarm robots. Initially, the idea was to create various effects by manipulating mirror panels. However, through innovative panel structures, we realized that it is also possible to construct grayscale displays and pseudo-color displays. As a result, we have been developing several versions of the display.

This is a newly flooded rice field. The water surface reflects the sky like a mirror, creating a stunningly beautiful landscape. Just as multiple rice fields reflect beautiful scenery, we aim to capture various landscapes and colors using mirror arrays and display them on our device.

Naturally, this device does not possess the high performance found in displays like LCD or OLED. The purpose of creating this display is primarily to serve as an expressive device in the field of art. It involves constructing artworks utilizing the physical movements of the numerous arranged pixel unit arrays and various effects generated by pixel panels such as mirrors. The primary focus is on artistic expression rather than functioning as a hardware display device.

about Hackaday Prize:

Although this display is not intended as a gear for manufacturing, it is created as a device for artistic expression, so I have decided to enter it in the "Gearing Up" category. However, it may be more suitable for the "Wild Card" category, so I also plan to enter it as a wild card entry.

I haven't caught up with updating the log, but I have successfully conducted tests on the mechanical display. This display is a device that allows various visual effects and artistic expressions by swapping panels. In this test, I have attached a mirror panel.

In the video, I have successfully captured the colors of a sunset sky and displayed them as text. Please note that this effect is just one of the options available with this display in terms of visual effects.

8bit Gray Scale Display

For reference and to provide an example of options other than mirrors, I will share one alternative. This is a demonstration of the control that can be achieved when performing calculations for an 8-bit grayscale display.

Pseudo-Color display

Since the grayscale display has performed very well, the next challenge is to attempt pseudo-color display conversion. We are planning to combine lenticular lenses with an RGB color stripe. 

If this idea works successfully, while brightness and saturation may not be controllable, we believe we can have free control over hue.

The challenge lies in the design and DIY complexity of lenticular lenses, but if successful, we anticipate achieving this by the final of the Hackaday Prize.

servo base v10.stl

Plate to fix 16 servo brackets

Standard Tesselated Geometry - 857.89 kB - 09/08/2023 at 01:44


back plate v3.stl

Back plate to reinforce servo base

Standard Tesselated Geometry - 426.25 kB - 09/08/2023 at 01:44


servo blacket v6.stl

Bracket to fix servo motor

Standard Tesselated Geometry - 103.50 kB - 09/08/2023 at 01:44


foot a v3.stl

Servo Base Connecting Parts

Standard Tesselated Geometry - 108.48 kB - 09/08/2023 at 01:44


foot c v4.stl

Servo Base Connecting Parts (for corner)

Standard Tesselated Geometry - 35.34 kB - 09/08/2023 at 01:44


View all 7 files

  • 16 × SG-90 This is a component for 1unit of a 4x4 servo array.
  • 1 × PCA9685board servo controler board
  • 16 × mirror base 3D printer parts
  • 16 × servo blacket 3D printer parts
  • 1 × servo base plate 3D printed part

View all 11 components

  • color representation

    AIRPOCKET09/12/2023 at 03:45 0 comments

    In order to challenge color expression, we produced a lenticular lens panel capable of displaying RGB.
    We designed the lens shape and also made the lens itself.

  • 8bit gray scale demo

    AIRPOCKET09/04/2023 at 07:09 0 comments

    When you tilt the grayscale panel, the ratio of white and black changes according to the angle. We achieved an 8-bit grayscale display representation by varying the angle in 256 steps.

    How about this? The title is 'The Wave.' I think we've effectively captured the grayscale gradient, don't you?

  • panel for grayscale

    AIRPOCKET08/21/2023 at 07:50 0 comments

    A panel for grayscale purposes has five ridged protrusions. One side of these ridges must be colored black, while the other side should be colored white. Initially, an attempt was made to color the necessary portions black by masking the white parts, but, as shown in the photo, this approach failed. This was due to the fact that the 3D-printed part has layered irregularities, causing the paint to flow beneath the mask.

    Therefore, a decision was made to output the parts with black filament and apply white stickers. The stickers were created by cutting down larger ones typically used for labeling. Since five stickers need to be applied to each panel, a total of 1,280 stickers had to be created and affixed for 256 panels.

  • Conversion to Grayscale Display

    AIRPOCKET08/08/2023 at 06:56 0 comments

    After the mirror display proved to be effective, we shifted our focus to the development of a grayscale display. The grayscale display achieves its effect by painting the opposing slopes of a mountain-shaped panel in black and white, utilizing the changing ratio of visible colors based on the angle. Initially, we had planned to achieve this through painted partitions, but due to several challenges in the process, we resolved it by applying white stickers to the black parts.

    The resulting panel exhibits color changes based on the angle. 

    Utilizing four by eight of these panels, it becomes possible to create displays like the one shown.

  • Testing the mirror array display

    AIRPOCKET07/21/2023 at 06:57 0 comments

    The day has finally arrived when I can test the mirror panel version of the mechanical display. The rain that had been falling until yesterday has stopped, so I will go to a nearby rice field. This place also serves as an inspiration for me.

    I confirm the directions, set up the display, and wait for dusk. Adjusting the angle of the mirror, I set the display in motion.

    Using the colors of the approaching night sky in the east and the sunset coloring the western sky, I was able to display it as a monochromatic color display! This can truly be called a true color display, as it can reproduce an infinite number of colors. A display that captures the colors of the sky has come to life.

    Please overlook the resolution and refresh rate for now. :-)

  • Moving 256 servos

    AIRPOCKET07/20/2023 at 02:30 0 comments

    Now that we have strengthened the power supply, we are finally going to test moving 256 panels.
    From what I can see, they are moving smoothly.
    The sight of 256 servos moving simultaneously is truly spectacular.
    Due to the relatively slow processing of Micropython, even though we intend to move them simultaneously, we can observe a slight time lag on the wave.

  • Reinforce power supply

    AIRPOCKET07/18/2023 at 04:44 0 comments

    In the previous stages of development, we used a stable power supply with a maximum capacity of 10A. It supplied DC12V, which was then stepped down to 5.5V using a DC-DC converter for each unit. However, when I connected 8 units together, we exceeded the 12V10A limit. As a result, we obtained a new stable power supply with a capacity of 12V30A and changed the DC-DC converters to units with current limiting functionality.

    When the servos are operated vigorously, the momentary current consumption per unit increases to around 10A. To address this, I have added 5F EDLC (Electric Double-Layer Capacitor) to each unit.

    With a power supply of 12V30A, it becomes a significant amount of energy, and therefore, attention must be paid to the thickness of the cables and connectors used. Since current also changes when voltage is converted, it is especially important to be cautious.

    Considering that this display will be used outdoors, we also anticipate the use of 12V lead-acid batteries.

  • Assemble a 256-pixel display

    AIRPOCKET07/11/2023 at 23:14 0 comments

    After persevering with three hours of diligent assembly work every night, i have successfully assembled a display consisting of 16 units and 256 pixels. The calibration process for all these servos has been quite challenging, but i will keep pushing forward, envisioning the final outcome.

    The calibration involves determining the PWM control values for the left maximum, center, and right maximum positions. The intermediate values will be calculated and controlled using linear approximation.

    On the upper-right panel, i have experimentally attached a mirror panel. I have secured it with a magnet sheet to facilitate the exchange of panels and achieve various visual effects.

    The current major challenge is that the size of the work desk is completely insufficient. :-)

  • caribration

    AIRPOCKET07/03/2023 at 07:17 0 comments

    The recently assembled servos have not been set to their home positions. Since the servos used in this case are the most affordable ones, their encoder accuracy is not high. Achieving precise angle control may be challenging. However, we can compensate for the lack of accuracy by defining the maximum, center, and minimum positions and mapping the positions in between relatively.

    The video shows the servos adjusted to their maximum angle positions. The angles of each pixel appear to be almost consistent.

    I have completed the calibration of the device, so I tried coding the wave motion.

  • Assembly of the Four Units

    AIRPOCKET07/03/2023 at 07:06 0 comments

    I will proceed with assembling the four units since the parts are available. However, please note that without calibration, the panel orientations may vary.

    Each unit has a structure consisting of a 4x4 array of pixel units mounted on a single base plate. Spacer and fastening components are used to secure the adjacent units while providing cable storage space. Additionally, a backplate is attached to create a double-wall structure, ensuring sufficient strength even with resin components produced by a 3D printer.

View all 13 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates