SHOPARTIST
Describe the feeling. ShopArtist builds the shop.
ShopArtist is an AI design agent for independent shop owners. Tell it what your shop is for, where it is and what inspires it. The agent asks Qloo what people with that taste actually love, across books, artists, brands, places and neighbourhoods, then turns that evidence into four genuinely different, buildable shop interiors in a live 3D studio. Every design choice cites the Qloo signal behind it, and every layout is checked for fit and walkability before you see it.
A chatbot will tell you a cozy bookshop café needs "warm wood and Edison bulbs". ShopArtist tells you what your crowd loves, and shows you where to put it.
Inspiration
Opening a small shop is a bet on taste. The owner of a new bookshop-café knows the feeling they want: a place where neighbours linger, couples read side by side, someone discovers a new author. Turning that feeling into a floor plan is the hard part. Designers are expensive, and generic AI tools answer with the average of the internet: neutral tones, a few plants, Edison bulbs. That is a guess dressed up as a design, and it looks like every other shop.
What a small shop really needs to know is cultural: what do the people I want to attract actually love, and what does that mean for this room? That is exactly what Qloo's taste graph knows. We wanted an agent that asks Qloo first and designs second.
What it does
| ShopArtist capability | What it does | Why it matters |
|---|---|---|
| 1 · Name the idea | Name the shop, mix what it sells (books, coffee, fashion, art, your own idea) and say why it exists. | The agent starts from the owner's intent, not a template. |
| 2 · Ground it in real taste | City, vibe and an inspiration. Qloo /search resolves "Blue Bottle Coffee" to the real place at 450 W 15th St, New York. |
The research starts from facts the owner can recognise. |
| 3 · An agent researches it | A real tool-calling loop: Qloo taste tags, cross-domain insights (books, artists, brands, movies), taste-ranked places, a heatmap; then it browses 200+ fixtures and drafts layouts. | Cultural intelligence, not an LLM's average, decides the design. |
| 4 · Four directions, with evidence | Four distinct interiors: different styles, palettes, windows and shelf formations. Each decision cites a Qloo result, kept separate from the AI's own interpretation. | The owner sees why, and can trust or challenge it. |
| 5 · Build it in 3D | One click builds the chosen direction into a live three.js shop: orbit, move fixtures, recolour, save versions. | From a feeling to a room you can walk around, in minutes. |
| 6 · A sidekick that edits | "Rearrange the shop and add 8 bookshelves" in plain words. The AI spawns real catalog fixtures, deletes and rearranges, and every change is validated before it lands. | Iterating is a conversation, not a CAD course. |
| 7 · 200+ fixtures, and new ones | 210 preloaded fixtures. Need one that doesn't exist? Describe it; the asset agent drafts it, tests the geometry, renders three views, gets a vision review, and saves it as a reference for next time. | The catalog grows with every shop. |
Product walkthrough
![]() The problem. An LLM on its own answers "beige". ShopArtist asks Qloo's taste graph instead. |
![]() 1 · Name the idea. The real setup flow: name, mix, the reason the shop exists. |
![]() 2 · Real inspirations. Qloo search turns a name into real entities. |
![]() 3 · The agent. Each tool call lights up as the real 3 min 41 s run plays at ×9. |
![]() 4 · Evidence, not vibes. Qloo evidence in red, the AI's interpretation in blue. |
![]() Where the taste lives. Qloo's heatmap returned 1,519 cells for this idea. |
![]() 5 · Build it. The real build run, then "Your shop is ready!". |
![]() 6 · The studio. Live 3D, a sidekick that edits in plain words, checked before it lands. |
![]() 7 · 200+ fixtures, and new ones. Describe it, pick a reference, the agent builds and reviews it. |
![]() Why Qloo. Six Qloo capabilities, each doing a real job in the agent. |
| Landing | Step 1 · the idea | Step 2 · Qloo search |
|---|---|---|
![]() |
![]() |
![]() |
| The agent at work | Four directions | Places and the taste map |
|---|---|---|
![]() |
![]() |
![]() |
| The live 3D studio | The AI sidekick | The asset catalog |
|---|---|---|
![]() |
![]() |
![]() |
How the agent works
- Brief. The owner's idea, purpose, city and inspirations arrive as data, never as instructions.
- Taste tags.
search_taste_tagscalls Qloo/v2/tagsfor two or three precise tags (ambience, décor, genre, place categories). - Real inspirations.
search_inspirationscalls Qloo/searchand only uses a candidate whose name and description clearly match. - Insights.
research_tastecalls Qloo/v2/insightswith the chosen tags and location: cross-domain affinities (books, artists, brands, movies), taste-ranked places within the radius, and aurn:heatmapof where the taste clusters. - Catalog.
list_assetsandget_asset_detailsbrowse 200+ fixtures with real footprints, then the agent picks what fits. - Draft.
create_design_directionssubmits directions with moves, additions, palettes and decisions, each citing evidence IDs. - Checks. The server validates every proposal: inside the room, no overlaps, entrance reachable, evidence IDs that Qloo actually returned, and no duplicate of another direction. A vision model then reviews a three-view render. A rejected proposal goes back with the exact reason, and the agent revises.
| The agent can | The agent cannot |
|---|---|
| Cite only IDs that Qloo returned in this session. | Invent a taste signal, a place or a score. |
| Move and add catalog fixtures, choose palettes, windows and formations. | Place a fixture outside the room or block the entrance; the server rejects it. |
| Propose a new custom fixture for the catalog. | Ship it unreviewed: it is drafted, tested, rendered and reviewed first. |
| Explain its interpretation of the evidence. | Present that interpretation as Qloo data; the two are shown apart. |
Why Qloo is the difference
Take Qloo away and ShopArtist becomes one more LLM guessing "warm wood and plants". With Qloo, the same idea ("a romantic social bookshop and coffee shop in New York") came back with real signals: Casual, Intimate, Authentic, Cozy, Trendy, Inviting, Chic, Bustling; real New York reference places like Voyager Espresso and Café Integral; and a heatmap of 1,519 cells showing where that taste lives. Those signals choose the palette, the formation, the fixtures, and the story each direction tells.
How we built it
| Technology | Role in ShopArtist |
|---|---|
Qloo API (hackathon.api.qloo.com) |
/search, /v2/tags, /v2/insights (cross-domain entities, places with location and radius, urn:heatmap). The agent's ground truth. |
| Agentic tool loop | A tool-calling agent written on the Claude Messages SDK, bridged to an OpenAI-compatible endpoint. Forced tool order, schema-validated arguments, server-side checks, self-repair of malformed JSON. |
| Nebius AI Studio | Nemotron for the agent's reasoning and tool calls; Nemotron VL for visual review of rendered rooms and fixtures. |
| React 19 · Vite · TypeScript | The Pop Art product: guided setup, research loader with live agent progress, direction cards, design library. |
| three.js | The live 3D studio, plus server-side three-view renders (via sharp) for the vision reviewer. |
| Leaflet + OpenStreetMap | The interactive Qloo taste heatmap. |
| Express · Server-Sent Events | The API; research and builds stream progress to the browser as they happen. |
| Model Context Protocol | A local asset MCP server (list_assets, inspect_asset, preview_asset, save_asset) for compatible clients. |
| AWS Lambda + Function URL | The whole app in one function via the Lambda Web Adapter, with response streaming for long agent runs. |
| Amazon S3 · Amazon DynamoDB | S3 keeps each owner's projects, research and custom assets; DynamoDB holds an atomic global cap on AI actions. |
Challenges we ran into
- An agent that loops on its own mistakes. Early runs spent all 40 steps resubmitting the same invalid proposal. We fixed the structure, not the symptom: short ID aliases instead of UUIDs, failed calls pruned from history, nearest-free-spot placement, schema limits the model can see, and a repair pass when the model's JSON breaks.
- Four directions that look like one. The model kept the same row of shelves every time. Distinct renderer styles, preset shelf formations and a duplicate-room check now make the four options genuinely different.
- Honest evidence. It is easy for an LLM to "cite" a signal it never received. Evidence IDs are checked against what Qloo returned, and the UI keeps Qloo evidence apart from the AI's interpretation.
- Long agent runs on serverless. Research can take minutes. A streaming Function URL, per-request S3 persistence and an atomic DynamoDB counter made it work on AWS Lambda without a server to babysit.
Accomplishments we're proud of
- A real, end-to-end agent: Qloo research to four evidence-backed designs to a live 3D shop, deployed and usable today.
- A design system with a point of view: Pop Art throughout, from the landing page to the loading screen to the 3D studio.
- An asset agent that grows the catalog, with every new fixture tested, rendered and reviewed before it is saved.
- A 3-minute launch film built from the real recording, with an original orchestral score.
What we learned
The interesting work was not making the model creative. It was making it grounded: asking Qloo before designing, citing only what Qloo returned, and letting the server, not the model, decide whether a layout is real. An agent becomes trustworthy when its tools, checks and evidence are stricter than its imagination.
What's next
- Product-level taste: use Qloo to recommend which books, records and brands to stock, not just how the room should feel.
- Real dimensions in: import a measured floor plan and real fixtures from suppliers.
- A shareable "taste brief" PDF the owner can hand to a carpenter.
- Testing with independent shop owners in a few cities.
Honest limits
- ShopArtist designs conceptual layouts, not CAD or building-code certified plans; check circulation, accessibility and safety before building.
- Qloo affinities are aggregate cultural signals, not foot traffic, sales or individual preference.
- The public demo is limited to 200 AI actions in total, because the model provider cannot rate-limit per key; the demo merchandise data is synthetic and labelled as such.
- AI visual review is advisory and can be unavailable or wrong; inspect the renders.
Try it
- Live demo: ShopArtist on AWS Lambda
- Source: github.com/azharizz/ShopArtist
- Run locally:
npm ci && npm run devwithQLOO_API_KEYandAGENT_*in.env - README: README.md
Built With
- ai-agents
- amazon-dynamodb
- amazon-web-services
- anthropic-sdk
- aws-lambda
- esbuild
- express.js
- leaflet.js
- model-context-protocol
- nebius
- nemotron
- node.js
- openstreetmap
- qloo
- qwen3-tts
- react
- remotion
- server-sent-events
- sharp
- sqlite
- three.js
- typescript
- vite
- zod




















Log in or sign up for Devpost to join the conversation.