PULSE

Distributed Haptic Broadcast

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.

Standalone Infrastructure

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.

No Logic Layers

Entirely standalone. No computers, cloud servers, or local Wi-Fi bridges required for signal routing.

On-Silicon FFT

High-speed Fast Fourier Transform analysis is performed directly on the ESP32-C3 Leader nodes in real-time.

Atomic Broadast

True plug-and-play. Followers synchronize instantly to the broadcast frequency the millisecond they receive power.

The Software Engine: Broadcast & Synchronization

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 GitHub
DillonSimeoneHaptics
Audio (MAD)
1242
Peak Freq (Hz)
62
Bass Energy
842

Bill of Materials

I'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.

Intelligence: ESP32-C3 SuperMini

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.

Actuators & Haptic Elements

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)

The Future: Brushless & PCB Stators
While I'm using brushed motors right now to keep costs down, the real future of PULSE lies in Brushless (BLDC) precision and PCB Stators. I'm looking into PCB-based motors because they'd allow for ultra-thin, flat haptic arrays that I could integrate directly into the device's circuitry.
Form Factor: Saucer

The Haptic Saucer (Parametric Model)

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 →

Engineering Philosophy: The Parametric Shift

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).

If you're asking me which is easiest to work with?
ForgeCAD wins every time. It gives me a Studio abstraction layer that lets me focus on the actual mechanical assembly instead of the messy graphics plumbing. It's definitely the fastest way I've found to go from a concept to an STL export.
The Designer's Choice

ForgeCAD (Tube)

High-performance cylindrical housing for haptic assemblies. Uses a sled-in-shell architecture with modular tracks.

Launch Engine
High Performance

Manifold Raw

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.

Launch Engine
JS Ecosystem

OpenJSCAD

I use this when I want a purely functional approach. It’s predictable, modular, and fits perfectly into my existing JavaScript workflow.

Launch Engine

Lifecycle Roadmap

Print mechanical prototypes (Sled + Shell)
Capture high-fidelity assembly photography
Technical documentation for modular logic
FFT Leader Node firmware implementation
Design modular charging dock (Magnetic pogo-pins)
Scale testing: 50+ Node node-to-node latency audit
Thermal stress test (Haptic duty cycle validation)