I built this as a prototype for a massively scalable haptic broadcast system. I'm using ESP-NOW to send real-time FFT patterns from a single leader node to as many followers as I want: it's designed to be fast, cheap, and ready for 2026-stack parametric manufacturing.
I chose the ESP-NOW protocol for PULSE so I could bypass all the usual Wi-Fi and networking headaches. It’s a completely autonomous ecosystem; I wanted something that could scale to an industrial level without needing any external dependencies like routers or cloud servers.
Entirely standalone. No computers, cloud servers, or local Wi-Fi bridges required for signal routing.
High-speed Fast Fourier Transform analysis is performed directly on the ESP32-C3 Leader nodes in real-time.
True plug-and-play. Followers synchronize instantly to the broadcast frequency the millisecond they receive power.
I built the software engine for PULSE to be as responsive as possible. For the Leader node, I'm using arduinoFFT to slice incoming audio into discrete frequency bands: I'm not just sending raw volume, I'm analyzing the sound in real-time on the ESP32-C3, splitting it into Bass, Mids, Treble, and Transients. This data is then packed into a tight struct and broadcasted over ESP-NOW at roughly 100Hz.
The Followers are designed to be as lightweight as possible. Each node listens for the broadcast and filters for its assigned channel. I implemented an Asymmetric Envelope (Instant Attack, Slow Decay) on the followers; this ensures that even if a frame is dropped over the air, the haptic motor feels responsive and doesn't stutter during fast transients.
I also built a mobile-friendly Captive Portal for the Leader. It lets me tune the mic gain, motor gates, and frequency splits from my phone without having to re-flash the code: it’s the ultimate way to calibrate the haptics in real-time.
View Source on GitHubI've centered the hardware around standard, modular components that are easy to find. My parametric scripts are tuned specifically to these parts, so every time I print a new shell or sled, everything snaps together with a perfect friction-fit.
The SuperMini is basically the brain of everything I build here. I love these boards because they're dirt cheap; I usually grab them for under $2.00 during big sales. More importantly, they're fully Open-Source Hardware. Right down to the RISC-V CPU architecture, everything is open, which keeps the whole infrastructure transparent and easy to verify.
I designed this architecture to be as versatile as possible. My parametric generators can handle
virtually any haptic motor I throw at them; whether it's a precision coreless unit, a motor I've
harvested from old electronics, or even a simple handmade coil I wound myself. Haptics should be
cheap and accessible, and this setup makes that a reality.
→ Understanding DC Brushed Motors (Concept Video)
I’ve always been fascinated by those vibrating disc pagers you see at restaurants; the ones they hand you while you wait for a table. They’re simple, rugged, and remarkably effective. I wanted to capture that same industrial form factor for PULSE, so I designed the Haptic Saucer.
While it looks like a restaurant pager, its function is completely different: these discs are designed to slide into wearables or pockets to give people a tactile, visceral experience during live music. I’ve envisioned two main ways to use them. First, there's the General Saucer, which captures the full spectrum of audio; low, middle, and high, into a single tactile unit.
Then there are Specialized Saucers tuned for specific frequencies. I can build a Saucer with a massive, heavy haptic motor dedicated solely to low-end bass bins, while others use smaller, high-RPM motors to replicate the sharp energy of the treble. By mixing and matching these specialized discs across different parts of the body, I can create a distributed haptic array that maps perfectly to the music.
Explore the Haptic Saucer →I used to use browser-based SketchUp for rapid modeling, but lately, the experience has been going downhill. It feels like they're stripping away core features, cluttering the interface with tools I didn't ask for, and constantly pushing for premium upgrades. It's enshittification in real-time, as Cory Doctorow would put it.
I considered switching back to Fusion360 or Blender, but I realized those tools all have a built-in speed ceiling. I only have one set of hands, and manual modeling can only go so fast. Moving completely over to parametric modeling was the obvious solution. Now, I can zap up tight form factors with dedicated slots for hardware and wiring, then subtract those negative shapes from my models in seconds: it completely removes the design ceiling while helping me build a massive personal library of reusable parts.
(Full disclosure: I got a bit sidetracked auditing the best real-time parametric modeling tools for the 2026 stack; the multi-environment comparison you see below is the result of that deep dive).
High-performance cylindrical housing for haptic assemblies. Uses a sled-in-shell architecture with modular tracks.
When I need serious speed for complex math, I go straight to the raw WASM kernel. It's the fastest boolean engine I've found for the web.
I use this when I want a purely functional approach. It’s predictable, modular, and fits perfectly into my existing JavaScript workflow.