CyberCrystal Vest: Final Assembly & Functionality Tweaks

After weeks of planning, modeling, soldering, testing, and refining, the vest is now fully assembled, wearable, and reactive. I was able to bring together all the aesthetic, functional, and interactive components to create something that genuinely reflects my original vision—and a few things evolved in the process that made it even better.


Attachment & Final Assembly

Me in the process of attaching each crystal over the LEDs using safety pins

One of the most satisfying parts of the project was completing the physical integration of the 3D-printed crystal spikes onto the vest. After weighing the pros and cons of sewing versus temporary methods, I ended up using safety pins to attach all of the crystals from the inside of the vest. Surprisingly, the results were extremely stable—the pins held very securely, even during movement, and because they were attached from the inside, none of them are visible from the outside. This gave the vest a clean, uninterrupted surface, letting the crystal structures and LED lighting be the focus.

While I may revisit this choice and switch to sewing for extra durability in the future, for now, the safety pins are functionally solid and aesthetically perfect. They also offer the benefit of easy repositioning, should I decide to rearrange or upgrade components later on.


Code Improvements/Behavior Refinement

On the software side, I made several key updates to improve the responsiveness and behavior of the lighting system. The Neopixel LEDs are now controlled by a motion-sensitive microcontroller that interprets vibration data to switch between lighting modes:

  • For intermittent or light motion, the LEDs now trigger orange/yellow waves that cascade from the top to the bottom of the crystal spikes, creating a glowing ripple effect that emphasizes fluid movement.

  • For sustained or intense motion, like dancing or jumping, the lights switch to an aggressive red pulsing mode, signaling heightened energy or momentum.

I also removed delay() calls in the Arduino code and replaced them with millisecond counter checks using millis(). which dramatically improved responsiveness. The vest now feels immediate and alive, with no lag between input (vibration) and output (light behavior). I also fine-tuned the sensitivity thresholds to ensure that it picks up actual body movement while filtering out background noise and static contact.

These refinements made the vest feel much more natural to wear in motion-heavy environments like festivals or concerts, exactly as I intended from the start.


Next Steps

With the core of the vest complete, my remaining to-dos are focused on presentation and future improvements:

  • I might still experiment with alternative crystal placements, now that I know the safety pin attachments are easy to adjust.

  • I’m considering adding sound reactivity in future versions as an optional lighting trigger, but for now, movement is the focus.

Overall, I’m really happy with the progress this week—this project has come a long way from a sketch and some scavenged electronics, and it’s now something I’m proud to wear and show off. It brings together my love for music, design, electronics, and interactivity, and, of course, its pretty fun to use.