Daniel Howells

Wove

Building · React, Next.js, tRPC, pgvector, Voyage AI

AI-powered art discovery across museum collections

Wove lets you search museum collections by meaning. Type "melancholic winter landscape" and it finds paintings that match the feeling — not because someone tagged them with those keywords, but because the artwork and your query are embedded in the same vector space.

The data comes from eight museum APIs including the Met, the Smithsonian, the Art Institute of Chicago, and the Rijksmuseum. Each artwork's image is processed through Voyage's multimodal embedding model and stored alongside the relational data in pgvector. The embedding pass is the expensive part — thousands of artworks, each image costing a fraction of a cent — but once it's done, querying is fast and cheap.

What makes this interesting is multimodal search. The same embedding model handles both images and text, so "red abstract expressionism" and an actual Rothko end up near each other even though one is words and the other is pixels. The search results are uncanny — you describe a mood and it finds artworks you didn't know existed.