Give an overview of your project idea (what it does, what it looks like, etc).
Originally, I wanted to make a cube shaped pocket-sized artifact which displays an animation over it’s surface. The animation changes according to the data it has accumulated over a period of time, making each artifact display a unique visual pattern. It is possible to connect two artifacts to change and “breed” their content.
The idea evolved into a device which uses light to create a dialogue between users in different places. Each device dialogues over the internet with another device. Whenever a user taps or moves the first device, it affects the animation on the second device in real-time. My purpose with this is to explore what types of interaction can evolve from a conversation with light.
For the prototype, I made a single-panel device connected to an ESP32 which communicates through Websockets with another Arduino with a sensor. If you tap the accelerometer connected to the Arduino, it triggers a different animation on the panel. I also made a website which can trigger the animation too. In the future, I would like to have more control over the sensor and communication protocol, but for now it was enough proof of concept.
In an ideal setting, I wanted my object to look like a portable device. However, I also like the idea of it being something that is constantly illuminating the space it inhabits. The NeoPixels at full intensity are blindingly bright and could easily fill a dark room with color.
And If it was portable, It would be cool to have it sniff for wifi signals and behave according to what it discovers.
WiFi-sniffing capabilities with the esp32: https://blog.podkalicki.com/esp32-wifi-sniffer/
Show a demonstration of your working prototype.
Show it doing what you expect a real-world version would do
I have only one panel installed, due to costs of development and resources at the moment. To make the ideal device I would need the individual Neopixels, so for now I am using an Adafruit Neopixels RGB 8x8 matrix. But I would like my first full prototype to be this:
Right now, I have it working like this:
Changing behavior/ message from another device: