Propolis is a hexagonal matrix code project that encodes text on a hex grid instead of the square grid used by QR codes. The live demo at propolis.graham.tech lets you type a message, choose an error-correction level, and export the result as SVG or PNG.
Overview
The site describes Propolis as a hexagonal matrix code based on Eisenstein integers, invented by Pierre Abbat. That framing matters because the geometry is part of the design: Propolis uses a hex grid, sixfold symmetry, and a different packing strategy than a square code.
The live encoder shows that structure directly. You can see the input text, the chosen error correction level, the symbol size, and the resulting hexagonal code rendered alongside the controls for copying or downloading the output.
Live Demo
One of the nicest parts of the project is that the demo does more than just render a symbol. It also walks through the encoding pipeline and exposes the internal pieces of the code: UTF-8 bytes, data letters, metadata corners, and the error-correction and whitening stages.
That makes the page useful as both a demo and a technical explainer. I treated the live site as the source of truth for the visual behavior, and I used the upstream repositories for the implementation details.
QR Comparison
The comparison section is the clearest summary of the project's pitch. Propolis is presented as a denser hexagonal alternative to square codes, with different scan-angle behavior and a different way of using available space.
Source Repositories
I used two upstream repositories to keep this page grounded in the actual project history:
- phma/propolis is the reference C++ codebase and README for the original Propolis implementation.
- Pabreetzio/propolis-tools contains the live demo site and supporting tooling, including the encoder and QR comparison views.
Between the live site and those repos, this page sticks to what Propolis actually does instead of turning it into a generic QR-code analogy.