Inspiration
Every product team has the same problem: the decision isn't hard because you lack data — it's hard because you can't see how you've weighted it. The inputs are all there — stakeholders, constraints, risks, options — but they live in docs, Slack threads, and people's heads. Nobody can see the shape of the decision.
We wanted to make that shape visible. Not with another chat interface or another doc, but with something physical — a war room where you drag cards on a table and an AI reads back what your arrangement says about your assumptions.
What it does
You describe a decision. An AI strategist breaks it into 8–14 cards — stakeholders, constraints, dependencies, evidence, options, risks — and drops them on a 3D table. You drag them: cluster what belongs together, push what you'd rather ignore to the edge, put the real issue at the center. Then the strategist reads the table — not your words, your spatial arrangement — and delivers blunt, card-by-card observations about what you're avoiding. After 3 readings, it delivers a final verdict and you export a decision memo.
The core mechanic: where you put the cards is the conversation.
How we built it
Next.js 14 with App Router and TypeScript for the framework react-three-fiber + drei for the 3D war room — table, lamp, dust particles, strategist orb, beam of light Zustand for state management across 6 phases (landing → decomposing → table → reading → speaking → verdict) framer-motion for overlay animations and card inspect transitions OpenRouter API (Gemini 2.5 Flash) for the strategist's decomposition and spatial analysis, with retry logic and Anthropic fallback Union-find clustering to compute which cards the user grouped together, which are isolated, and which sit nearest the center WebAudio API for fully synthesized ambient sound — no audio files, everything generated in the browser Movement diffing between readings — the strategist tracks what you moved and calls out what changed (and what didn't)
Challenges we ran into
Making spatial arrangement meaningful. The hardest part wasn't the 3D scene — it was making the AI actually reason about positions, not just card content. We built a clustering algorithm, movement tracking, and a detailed table description format that translates (x, z) coordinates into human terms like "exiled to the edge" and "pulled toward the center." Prompt engineering for zero repetition. The strategist kept repeating observations across readings. Getting it to pick different cards, find new angles, and actually engage with the user's answers took multiple rounds of prompt refinement. Click vs. drag discrimination. In a 3D scene, a click and a short drag feel identical. We had to track pointer distance to distinguish "I want to inspect this card" from "I want to move it." Ending the loop. An AI that keeps asking questions forever isn't useful — it's a chatbot. We capped it at 3 readings with a final verdict and closing imperative, so the session has a clear arc: explore, challenge, decide.
Accomplishments that we're proud of
The spatial mechanic actually works. When you drag cards, the strategist doesn't just parrot card descriptions — it reads your arrangement and tells you something you didn't know about your own thinking. That moment when it says "you shoved your biggest risk to the far edge" and you realize it's right — that's the whole product.
We also built the entire 3D scene with no imported assets. The table, lamp, dust particles, strategist orb, beam of light, card physics — all procedural. The ambient sound is fully synthesized through WebAudio, no audio files. And the union-find clustering algorithm that detects card groupings runs in real time as you drag.
What we learned
Spatial input is a fundamentally different kind of conversation. When someone types "I'm worried about churn," they're performing a thought. When they drag the churn card to the corner and don't realize they did it, that's an honest one. The gap between those two signals is where the real insight lives.
We also learned that AI conversations need endings. A strategist that keeps asking questions forever is just a chatbot with better lighting. Capping at 3 readings with a final verdict gave the session an arc — explore, challenge, decide — and made the export memo actually worth saving.
What's next for PLOT
Multiplayer tables — multiple people drag cards simultaneously, strategist reads the disagreement in real time Session history — save past war rooms, revisit decisions, track how your thinking evolved Card weighting — let the strategist assign gravity to cards based on how often they get moved or clustered Voice mode — the strategist speaks out loud instead of typing, completing the war-room atmosphere Templates — pre-built card sets for common PM decisions (build vs buy, sunset, prioritization, reorg)
Log in or sign up for Devpost to join the conversation.