Field
Digital Art
Development Duration
Components
Arduino
Database
LED
NeoPixel
Serial communication
Speaker
Development Tools
Arduino IDE
openFrameworks
VisualStudio
Project type
Personal Project
I created a work in homage to teamLab's work "Forest of Resonating Lamps.” It is a miniature version that can be installed indoors. 84 lamps are installed and visitors can enjoy the response of lamps.
There are two patterns: "interactive mode," in which the experiencer can trigger the lamp using the web application, and "automatic transition mode," in which the lamp transitions through set scenarios in sequence.

Get experience in developing hardware and dedicated simulators.
Understand database concepts.
First, I conducted a survey of TeamLab's work, "Forest of Responding Lamps." The following characteristics exist in the work.
Algorithm :
・Light from a lamp propagates to the nearest lamp.
・The light travels through all lamps and returns to the first lamp.
・The course is arranged as a single stroke.
Way to show off:
・By installing the work in a mirrored room, the artist creates the illusion that the space is endless.
Tinge:
・Multiple patterns exist depending on the exhibition’s season and location.
I have developed software that can simulate the placement of the lamps and the color of each lamp. Each lamp is assigned an ID from 0 to 83. The smaller diameter means that the lamp is installed in a higher place. The simulator was developed using openFrameworks, an open-source C++ toolkit for creative coding.
When a lamp is clicked, propagation begins from that lamp. The light propagation spreads in two directions around the starting lamp. The light propagation path is a single course, just like the original work, but the ID of the next lamp to propagate is pre-assigned by file input.
The following is a pre-determined course of one stroke.

Factors to consider included shape, transparency, production cost, and time. I sought the best way to do this by purchasing milky white containers and 3D printing with milky white filament. 84 lamps needed to be fabricated, and since 3D printing requires long printing times, I decided to apply ready-made containers. As a result, it was determined that eye drop containers were superior in cost and processing time, so these were adopted. As for the lamp lids, I decided to 3D print them due to their small size and complex shape.

3D printed lamp

I tried various shapes

Eye drop containers in 100 lots

The lamp lids are 3D-printed
84 sets were produced in total according to the following procedure.
Solder LEDs to enameled wire
Uses a brown type enameled wire
LED legs cut short
Crimp the connector terminals
Twist the enameled wire
Arrange to be thin and straight
Attach the connector through the cap
Lids are 3D-printed
Cut the screw part of the eye drop container
Attach the container to LEDs
Lighting test

Solder LED to enameled wire

Twist the enameled wire

Attach the connector through the lid

Cut the screw part of the eye drop container

Attach the container

Lighting test
The enclosure in which the lamps are installed was created according to the following procedure.
Design
Design the entire enclosure using CAD
Parts machining and painting
MDF board is cut out using a laser cutting machine
Painted black by spraying
Assembling the framework
Black aluminum frame was used.
Board assembly and wiring work
Create circuit boards to control lamps
Install and wire 84 connectors for mounting lamps
Installing the wall
Fitting a machined MDF board into a recess in the aluminum frame
Mirror seal attached on the inside
Installation of Lamps
Attach pre-made lamps to connectors

CAD-designed enclosure

MDF boards were cut with a laser cutting machine

Aluminum frame for the framework

Wiring in the ceiling

Walls with mirrored sheets were Installed

Install lamps and conclude lighting test
The system in the "interactive mode" is configured as shown in the figure below. Each component is shown as software or hardware.
Database Unit
Provides a mechanism for remote participation in the work.
Performance Control Unit
Control of each lamp color, sound effects, and background music.
Hardware Unit
Control hardware based on command values.
On the other hand, the "automatic transition mode" is achieved by changing the Database update software to a source code that sets command values for randomly selected lamps according to the scenario.
First, the experiencer accesses a dedicated website with their device. The Database update software is placed on the server and becomes the experiencers' operating screen. When a lamp ID and color are confirmed, the value on the database is updated. The Database reference software checks the database regularly and sends the changed RGB value and lamp ID to the Lamp simulator via OSC communication.
Next, in the Performance Control Unit, the Lamp simulator simulates the colors and brightness of all lamps starting from the triggered lamp. The RGB value of all lamps is sent to the microcontroller for controlling LEDs via UART communication at specific intervals. When the new lamp trigger is entered, the ID of the sound effect is sent to the Sound control Software.
Finally, in the Hardware Unit, the hardware acts based on the command values sent from the Lamp Simulator. 6 microcontrollers control 84 LEDs. Each microcontroller controls 14 lamps. This policy was adopted because updating all 84 RGB values in a single microcontroller would increase the interval between color updates for each lamp, resulting in a problem with smooth color changes. Arduino NANO was used in this case, but by using a microcontroller with a higher clock frequency, the number of microcontrollers may be decreased. The sound effects are output from stereo speakers located near the enclosure. The left/right volume ratio changes depending on the position of the triggered lamp.
By accessing a dedicated web page, the experiencer can participate in the work and change the lamp’s color from a remote location. (Note: currently discontinued)
Visit the website.
Select lamp color.
Select the lamp to be reacted.
Click the "Send" button.

Experience interfacing simulators and hardware.
Experience in learning the development process and implementing the system in hardware after checking the operation in a simulator in advance.
Experience with using databases.
My friends helped me during the database knowledge acquisition and development process. I thank them for helping me learn new skills.






















