
(brief)
Pastiche is a Figma plugin that turns 500 years of museum painting into ready-to-use design tokens. Pick an artwork, and its palette, primitives, and variables are written straight into your file.
(my role)
I built Pastiche alone, end to end: the color-extraction engine, the token architecture, the plugin UI, and the launch. It is live on the Figma Community, and I wrote about the idea on Medium.
(the problem)
Designers pick colors from scratch or from the same trending palettes everyone else uses. Meanwhile, museums hold thousands of open-access paintings where masters already solved color harmony, five hundred years ago. That knowledge just is not reachable from a design tool.
(1)
Pick any of 5,800 open-access artworks from the catalog. Pastiche runs k-means clustering on the painting, then assigns each extracted color a role, dominant, secondary, accent, based on how the painter actually used it. Every swatch points back to where it lives in the painting, you don't just get a hex code, you see why Vermeer put that blue next to that ochre.
5,800 open-access artworks, searchable by artist and era
Colors clustered and ranked by how the painter used them
Every swatch mapped back to its place on the canvas
The final plugin panel, colors extracted live from the canvas
(2)
A palette that stays a moodboard is just decoration. Pastiche writes real Figma variables into your file: primitive scales built from each extracted color, semantic roles on top, and text styles that pass contrast. The painting becomes a working foundation you can actually build on.
You can also take it out of Figma. One click exports the same palette as JSON design tokens or as plain CSS custom properties, so a developer can use it without opening Figma at all. Painting to finished tokens takes about three seconds.
Organised variable collections, written straight into Figma
Standard design tokens any build system can read
Native custom properties, ready to paste into a stylesheet
Primitive scales and semantic roles, written as variables
(3)
I wanted this to stay free to run forever, so nothing that could happen in the browser was sent anywhere. All the heavy work, the clustering and the token writing, happens locally inside Figma. The only outside call is a small Cloudflare Worker that fetches museum images, because browsers block them otherwise.
Clustering, canvas work, and variable writing all happen inside Figma
A Cloudflare Worker fetches museum images the browser will not load directly
The 82MB painting catalog sits on GitHub, no database to maintain
That is the whole architecture. It costs $0 a month, has nothing to keep patched, and cannot go down because there is no server to go down.
(4)
Pastiche is live on the Figma Community for anyone to install. The story behind it, why your color palette has been waiting in a museum since 1665, became an article on Medium.
(the outcome)
Pastiche shipped as a real public plugin and was approved within a day of submitting. Designers found it on their own, with no marketing behind it. Solo, end to end, at zero running cost.
What I learned: engineering discipline is a design skill. The right architecture, not the most impressive one, is what lets one person ship something and keep it alive. And art history is an underused design resource: the masters solved colour problems we are still copying badly from Pinterest.
Next project: Distill →