ZigZag open-source embroidery editor replaces $300 machine's subscription with Rust and SVG
ZigZag is a Rust-based open-source embroidery editor that converts SVG to stitch files, reverse-engineers Bluetooth machine protocols, and integrates AI agents via MCP to eliminate proprietary subscriptions.
Summary
Kathy Korevec released ZigZag, a free open-source embroidery editor for Mac and Windows, after discovering her Brother Skitch (PP1) machine required a paid subscription for basic functionality. The application is written in Rust and converts vector SVG artwork into embroidery stitches, exporting to industry-standard formats including PES, DST, EXP, JEF, and VP3 that work with most embroidery machines. It can also transmit designs directly to the Skitch machine over Bluetooth using a reverse-engineered protocol.
The editor provides professional vector tools including a Pen tool, shape primitives, text, pathfinder boolean operations, and smart guides familiar to Illustrator users. Each object can be assigned stitch types such as fill, satin, running, contour, cross-stitch, and tartan with adjustable spacing, angle, pull compensation, and underlay parameters. A GPU-accelerated shader renderer maintains performance on designs up to half a million stitches, while features like Image Trace, density mapping, and a stitch playback preview round out the workflow. Notably, ZigZag exposes a local MCP (Model Context Protocol) server enabling Claude Code or Codex to programmatically create and edit designs.
Architecture and open-source embroidery stack
- Rust codebase with GPU shader rendering: The application is built in Rust and uses a GPU shader for stitch visualization, maintaining interactive pan and zoom performance on designs containing approximately 500,000 stitches.
- SVG-to-stitch pipeline with format export: Vector artwork is converted to embroidery stitches and exported to PES, DST, EXP, JEF, or VP3 formats, covering the dominant file formats used by Brother, Janome, and other embroidery machine manufacturers.
- Reverse-engineered Bluetooth protocol: Direct machine communication with the Brother Skitch (PP1) is implemented over Bluetooth using a protocol that was reverse-engineered, bypassing the manufacturer's subscription service entirely.
- Per-object stitch parameterization: Each vector object receives independent stitch type assignment (fill, satin, running, contour, cross-stitch, tartan) with granular controls for spacing, angle, pull compensation, and underlay settings.
- MCP server for AI agent integration: A localhost Model Context Protocol server enables external AI coding agents to manipulate the open document, with tool calls surfaced as single undo steps and active agent work highlighted on canvas.
Why it matters
ZigZag demonstrates how reverse engineering and open-source development can restore ownership of hardware that has been artificially restricted by subscription models, a growing concern in consumer electronics and maker tools. For the open hardware community, it provides a complete reference for embroidery file formats, Bluetooth machine protocols, and GPU-accelerated rendering of specialized manufacturing data. The MCP integration also points toward emerging standards for AI-assisted creative workflows in open-source design tools.
Original reference: blog.adafruit.com →