Conversation Canvas
Live
No. 01 · Milan AI Week 2026

A canvas that listens
and one you can ask.

Speak inside it and structure emerges. Ask of it and it answers, then draws. Twenty-eight typed actions — proposals, decisions, sticky notes, geometries, arrows, alignments, deletions. Both voices, one canvas, in real time.

01. Voice & chat
One vocabulary
02. Action types
Twenty-eight
03. Latency target
≤ 3 seconds
04. Memory
Across sessions
§ I · A moment

Sixty seconds of a Q3 planning call.

Speakers don't pause for the canvas. The canvas catches up — at a three-second cadence, in typed actions that already know how they relate to each other.

Transcript · 00:23 → 00:57
Listening
00:23[S0]I think we should target enterprise customers in Q3.
00:24create_proposal_card p1
00:31[S1]Or SMB — conversion rates are three times higher.
00:32create_proposal_card p2 · link_nodes p2 →counters p1
00:40[S0]OK, agreed — let's go SMB.
00:41create_decision_card d1 · link_nodes p2 →decides d1 · lock_decision
00:50[S0]Alice will own the SMB outreach plan by next Friday.
00:51create_commitment_card c1 · ownerSpeakerId=S2
00:56[S0]Add a yellow sticky for the post-Q3 review.
00:57create_note · "post-Q3 review" · yellow
§ II · Two inputs, one vocabulary

The canvas takes voice and typing.

Both paths share the same typed-action interface and the same dedup, layout, and persistence machinery. A direct command in voice lands the same shape as a typed instruction. The chat panel remembers what was already discussed; the orchestrator never forgets a decision it already wrote.

VoicePassive capture + direct commands
[S0]Let's go with the SMB approach for Q3.
create_decision_card →decides p2 lock
[S0]Add a sticky for the post-Q3 review.
create_note · yellow
[S0]Make the blocker red.
set_shape_style · color=red
Ask AIDirect chat with full vocabulary
>Add blockers for cost, stay, and food.
+3 × create_blocker_card
>Align the blockers to the left.
+align_shapes · op=left
>Draw a checkbox saying "Book flights".
+create_geo · geo=check-box · green
§ III · Card specimens
¹
ProposalAS
Ship the conversation canvas as a private beta to the design team this quarter.
Proposal
²
Decision · LockedAS
Use Gemini 3 Flash as the orchestrator, with a 3-second emit window.
by Fri, 22 May
Decision
³
CommitmentTR
Wire up the analyser node to the FAB oscilloscope.
by Wed, 27 May
Commitment
Blocker
Speechmatics token TTL is shorter than our test sessions.
Blocker
QuestionAS
Do we surface partials in the transcript, or only finals?
Question
Trip to Vietnam — April 2027
Sticky
Vietnam Trip 2027
Geo
Heading h1
Text
§ III.ii · On the cards

Five meeting cards.The five typed nouns the orchestrator emits from passive listening — Proposal, Decision, Commitment, Blocker, Question. Each carries its own visual rhythm so the canvas reads top-to-bottom as a story.

Three free-form shapes.Direct commands — voice or chat — also reach for tldraw's native repertoire. Sticky notes for jots, geometric shapes for diagrams, text for headings. The chat panel converts intent into the closest fit.

Manipulation.Every shape can later be moved, resized, restyled, aligned, distributed, reordered, deleted, or pointed at by a freeform arrow. The canvas is editable conversationally, not just at creation.

§ IV · The twenty-eight actions

A closed alphabet of canvas operations.

Every utterance — spoken or typed — gets normalized into one of these twenty-eight Zod-validated action variants. The model doesn't invent verbs; if it tries, a runtime normalizer maps the drift back to the canonical form.

L1 · Meeting
Passive capture
  • create_proposal_card
  • create_decision_card
  • create_commitment_card
  • create_blocker_card
  • create_question_card
L1 · Native
Free-form shapes
  • create_note
  • create_geo
  • create_text
L2 · Graph
Relations & state
  • link_nodes
  • group_into_frame
  • lock_decision
  • update_card
L3 · Widgets
Bespoke visualizations
  • create_priority_matrix
  • create_budget_allocator
  • create_gantt
  • create_bespoke_widget
L4 · Manipulation
Edit after creation
  • delete_shapes
  • move_shape
  • resize_shape
  • set_shape_style
  • align_shapes
  • distribute_shapes
  • reorder_shapes
  • zoom_to_shapes
  • create_arrow
§ V · On the method

A typed graph, drawn out loud.

Action.Speechmatics streams a diarized transcript. A Gemini 3 Flash orchestrator reads the last thirty seconds and emits typed UI actions — make a proposal, lock a decision, raise a blocker, pose a question.

Relation.Cards do not float independently. Proposals resolve into decisions; commitments hang off their parent decision; blockers point at what they block. The orchestrator names the links before it draws them.

Direction.The same canvas takes direct commands — spoken or typed — across the full action vocabulary. Voice for ambient capture, chat for sharper intent. One closed alphabet, two surfaces.

Memory.Action history, tldraw store snapshots, and the chat agent's conversation all persist to Postgres. Reload the canvas — the orchestrator still remembers what was decided three hours ago.

Artifact.What remains at the end of the call is a typed, navigable document — proposals, decisions, commitments and the arrows between them — not a wall of transcript. The canvas is the meeting minute.