Howler

A decentralised 3D-printing network. A small device plugs into any consumer 3D printer and turns it into a secure node that accepts and executes paid print jobs — G-code streamed over USB from RAM, never persisted, so designs can't be replicated.

Status
Discontinued
Context
Distributed manufacturing and secure G-code delivery
Role
Creator and lead engineer. Informal arrangement with a private client.

Bill of materials

  • Python
  • C++
  • Raspberry Pi
  • Custom hardware unit
  • MQTT
  • Redis
  • USB protocol layer

The idea behind Howler: a designer uploads a model; a user a few km away wants to print one; a local printer gets paid to make it; the designer gets royalties; nobody else ever sees the G-code. The premise was decentralised manufacturing as a replacement for the “ship a plastic widget from the other side of the world” default. I built this for a client in 2019–2020, over six to eight months, while running other projects alongside. It shipped, ran, and is no longer available.

The hardware unit

A small dongle that plugs into any consumer 3D printer over USB. Two variants — an official one we manufactured, and a bring-your-own Raspberry Pi build for hobbyists. Once plugged in, the printer joins the Howler network as a node. Anyone on the network can send it a job; the device prints it; the operator gets paid.

The secure G-code pipeline

The interesting engineering is the protection layer. A naive implementation would just ship the G-code file to the printer and trust that nobody copies it — but then every print operator has a copy of every design they’ve ever run, and the designer’s IP evaporates. I built the pipeline so that G-code never touches disk. The file is streamed encrypted from the server to the device, decrypted in RAM, and fed line-by-line into a modified USB writer that pushes directly to the printer’s serial interface. The RAM buffer is small and rolling. A freeze-attack on RAM wouldn’t recover the full file; there’s no file to recover. The device is stateless across power cycles.

This required modifications to the USB/serial stack — the stock libraries assume a file-on-disk workflow — and a lot of pointer-level care in the streaming layer. CPython-compiled binaries for the secure portions, so even a compromised node operator can’t easily introspect what’s happening.

The platform

Onboarding on the device is bypass-able by design — the user opens a config Wi-Fi network served by the device itself, configures home Wi-Fi + account via Bluetooth or the config AP, and they’re live. The central platform ran dashboards for designers, operators, and admins, with real-time status over MQTT + Redis, per-device analytics, per-job tracking, heat/temperature control, and incremental firmware updates.

Status

Shipped and ran for its operational life. Discontinued — the company is no longer operating.