Kitchen Moodboard

Collaborative AI · Family

An infinite canvas where my family drags in kitchen tiles and Gemini paints what the finished room could look like.

kitchen illustration
Work in progress

My family wanted to redo the kitchen — new tiles, new look — and kept trying to picture it. So I built a shared moodboard where you drop in real product photos from the store and ask AI to render the room they'd make.

infinite canvas
multi-refAI generation
livereal-time sync
$cost tracked

What it is

An infinite, zoomable board you fill with images and text notes. The real use case was concrete: import tile and cabinet photos from a store like OBI, arrange them, and generate previews of how that combination would actually look as a kitchen — so the family could argue about it on the same canvas instead of in their heads.

Multi-reference AI generation

The interesting bit isn't single-prompt image generation — it's that you can select several existing board items as references and generate a new image from all of them at once. Pick the tile swatch, the cabinet shot, and a text prompt, hit Generate, and Gemini composes a result that draws on every reference. The new image lands back on the board where you placed it.

Real-time & saved

It's built for more than one person looking at once. A Flask + Socket.IO backend broadcasts every new item the moment it's added, so the board updates live for everyone, and the whole board state is persisted to disk so it's still there next time you open it.

Watching the bill

AI image generation isn't free, so the server tallies it: input/output tokens and per-image output cost are estimated on every generation and accumulated into a running total. Handy for a family tool you don't want quietly racking up a Gemini bill.

Status

This one is half-finished — the core works (infinite board, live sync, multi-reference generation, cost tracking), but it's not polished or deployed. It's the kind of project that gets picked back up the next time the renovation conversation flares up.

Built with

Python, Flask + Flask-SocketIO (threading model) for the real-time board, a JSON-backed store for board state and the running cost total, and Google Gemini via google-genai for multi-reference image generation. Vanilla-JS infinite-canvas front end.