Live meeting copilot
OPEN-SOURCE EXPERIMENTSprig
A presentation-ready diagram that develops while you speak.
Sprig listens to a natural explanation, creates a useful visual scene in seconds, and quietly reviews its own interpretation while the conversation keeps moving.
- Role
- Product design & engineering
- For
- Designers and product teams
- Foundation
- React · TypeScript · Excalidraw · ELK
- Release
- Semantic Scene Engine v0.5
Drawing competes with presenting.
In a meeting, a blank canvas is useful because the idea is still changing. It also asks the presenter to draw the diagram, explain it, and notice the room at the same time. The usual trade-off is a rough sketch that needs cleanup or a polished diagram that makes everyone wait.
I built Sprig around a narrower promise: the diagram should keep pace with the explanation and remain good enough to present. It should understand corrections, leave uncertainty visible, and never make the speaker manage a second conversation with the AI.
One conversation can contain several visual arguments.
My first implementation kept expanding one topic-level view. It could draw boxes, but it flattened a product story, a system explanation, and an onboarding flow into the same grammar. More prompting made the output longer without making it more correct.
The rebuild introduces first-class scenes. Each scene keeps its own meaning, transcript evidence, layout rules, notes, and presentation frame. Changing subject opens another scene on the infinite canvas instead of erasing what came before.
Rationale, tension, alternatives, and a proposal
Screens, decisions, branches, and retries
Actors, operations, calls, and returns
Ownership, taxonomies, and page structures
Options aligned around shared criteria
The model describes meaning. Sprig controls the canvas.
The model can say that an ID check is a decision and that a blurry image returns to the capture step. It cannot choose coordinates, colors, or raw Excalidraw objects. A validator rejects broken references and invented endings before they reach the board; a recipe then decides layout, routing, shape, and presentation.
- 01Stable phrase
Wait for a drawable proposition instead of reacting to filler.
- 02Live semantic pass
Add the immediate concept and its spoken relationships.
- 03Validation and layout
Check the graph, then route the affected scene in a worker.
- 04Quiet review
Repair Sprig-owned structure after the utterance settles.
The 100-node layout benchmark measured 32.27 ms at the 95th percentile. Model latency still varies; the reviewer never blocks listening or manual editing.
Your edit is a decision, not a suggestion.
A generated object has three separately owned fields: content, geometry, and style. Dragging a card protects its position while Sprig can still correct the label. Renaming it protects the words while automatic layout remains available. A user-created object starts protected.
A diagram grammar should reveal what the model believes.
The visual system uses shape, line, and label alongside color. Starts and successful endings are lime terminals. Screens and actions are yellow rectangles. Real conditions are pink diamonds. Orange marks failure or warning. Dashed outlines mean Sprig is still uncertain, and dashed connectors are reserved for context.
Empty native shapes use the same treatment before and after text is added. Filled arrow tips match generated connections. The canvas stays white with a quiet #eeeeee dot grid so the expressive objects remain easy to scan and edit.
Presence without another voice.
Sprig communicates through one listening control. Its seedling and short status line show whether it is listening, building a scene, connecting a concept, reviewing, or waiting for a decision. Transcript and Notes stay available by scene without becoming extra floating cards.
A quiet presence.
Choose a state. This is the same control used in the app.Built openly, tested against the mistakes that matter.
Story and Flow are the current production recipes. The test corpus checks scene changes, repeated verification steps, interruptions, retry loops, manual edits, incomplete sentences, and unsupported terminal states. Public examples are authored and make no microphone or model calls; the local app uses the user’s own API key and never saves audio.
The deeper question remains product-shaped: can a person keep presenting while the board earns their trust? That means measuring more than a clean screenshot—time to first useful change, semantic recall, corrections per session, layout stability, and whether the speaker ever has to stop to manage the assistant.