The Spec
Drew publishes vibranode — a resilient mesh protocol for tenement-scale networks, built from recycled routers and a deaf hacker's distrust of audible channels. Sixty readers, three comments. One of them isn't a hobbyist.
How we got heremakernet.discussion / networking / protocols posted 2026-12-10 23:47 EST by
drflicense MIT (code) / CC0 (text) status working, in production on a 14-node deployment in Brooklyn
vibranode: a resilient mesh layer for tenement-scale networks
why this exists
Fourteen people on my floor pay Spectrum. Spectrum has a voluntary cooperation agreement with NYPD. One of my neighbors has a cousin who works at the 83rd precinct and he mentioned — once, at a barbecue, not meaning anything by it — that “they know everyone’s traffic on the block.” I don’t know if he meant Spectrum or NYPD or both. I stopped trusting either.
I have been building an alternative in my bedroom for eleven months. It works. My neighbors are on it. This post is the spec, so other people can build their own, adapt it, or break it.
I want to name one bias before the technical part, because it shaped every design decision below.
I can’t hear — I’ve been deaf since I was fifteen — so this protocol is shaped by the way I think about signals. I don’t trust sound. Sound is the channel where deepfakes live, where voice assistants live, where interrogation rooms live. I trust pressure, frequency, shape — things I learned to read off the floor of my apartment before I learned to read them off an oscilloscope. The protocol reflects that bias. It privileges shape-preserving transmission over fidelity, and it treats the physical layer as the first line of defense, not the last.
That’s not a universal design philosophy. It’s mine. You should know where the design pressure came from.
design goals
- runs on salvage. recycled routers, Raspberry Pi Zero, retired Android phones, the guts of a broken ring doorbell. if it has a radio and four megabytes of RAM, it’s a vibranode.
- frequency-hopping in the 900 MHz ISM band. survives microwave ovens, drops clean under packet sniffers that only listen to one channel at a time. not encryption — obfuscation. assume someone sees everything and plan accordingly.
- no node is load-bearing. any neighbor can unplug, move, or get raided, and the mesh reroutes. no central authority, no key server, no registry, no single point of failure and no single point of request.
- optional vibration-relay physical layer. for specific use cases: bone-conduction collars, transducers coupled to surfaces, cheap piezo strips glued under drywall. useful if you want to move a few hundred bits through a wall without anyone hearing a click. not useful for bulk data. i built this part first; it’s where the name came from.
- no registration. no handles. no reputation system. the mesh doesn’t know who you are. neither do i. that’s the whole point.
protocol overview
three layers, bottom to top:
layer 1 — physical. any radio that can hop across ~24 channels between 902 and 928 MHz. hop sequence is a pseudorandom function of a shared seed plus the minute of the current hour. time sync is loose — ±200 ms is fine, the radios tolerate it. every vibranode i’ve built costs under $18 in parts.
layer 2 — framing. minimum viable header: 1 byte hop count, 2 bytes checksum, 1 byte payload length, up to 240 bytes payload. no addresses. routing is done by payload tag, not destination. if you want a node to receive a message, your payload starts with a tag it’s subscribed to.
layer 3 — routing. flood-with-suppression. a node hears a packet, checks if it’s seen the checksum recently (rolling window of 30 seconds), and if not, rebroadcasts. worst case O(n) duplication across a 14-node mesh is fine; power usage is dominated by the radio’s idle listening, not by the rebroadcasts. this is the naive algorithm and i know it. i am nineteen. i build physical things. someone who actually understands routing theory, please rewrite this layer and mail me the diff.
what this is not
this is not encryption. encrypt your own payloads. my crypto is undergraduate and i don’t trust it yet. assume someone in the middle is listening and plan accordingly. the protocol’s job is to deliver bytes. your job is to make sure the bytes don’t matter to anyone who isn’t supposed to read them.
this is also not fast. the mesh does about 40 kbps end-to-end in my building, which is enough for text, low-rate sensor telemetry, and a surprising amount of the modern web if you’re patient. it is not enough for video. don’t use it for video.
how to help
- try it. break it. tell me what broke.
- rewrite the routing layer. mine is naive and i’ve said so twice.
- build a vibranode out of something i haven’t thought of. send me a photo.
- if you’re in nyc and want to join the brooklyn deployment, reply here and i’ll mail you a preconfigured node for the cost of shipping. i have forty of them in a shoebox.
credits
floor two, 347 wyckoff — who let me saw holes in the hallway ceiling to run the relays. you know who you are. thank you for paying your share of the electric bill without asking what it was powering.
also to whoever runs makernet. thank you for not having a sign-up flow.
drf, floor two, brooklyn contact: replies on this thread preferred. email is surveilled, you know this.
The post received two upvotes and three comments over the next week. One of them was a line of cleaner routing-layer code from somebody in Berlin. One was a stranger asking what a “voluntary cooperation agreement” was. The third was a single sentence from an account named oak, which read: “how many of these could you ship to the west coast.”
Drew replied: “all of them, if you pay shipping.”
oak did not reply for six months. When the reply finally came, it didn’t come through the forum.