Spatial History for Conversational AI

I designed and built Threadscape, a functional prototype that reimagines linear AI chat history as a spatial canvas of connected themes. Powered by Gemma 4 (opens in new tab), it explores how people can connect related conversations, trace how their thinking evolves, and return to ideas without starting from scratch.

I designed a flexible information architecture that organizes conversations by theme, reveals relationships between ideas, and supports continuity as thoughts evolve over time.

Timeline
5 weeks · 2026
Role
Product Designer
Project
Independent exploration
Built With
Claude Code
React
TypeScript
Gemma 4
Skills
Interaction
Systems
AI Prototyping
The Threadscape canvas: themes as orbs, with the input below.
The core loop: type, talk, leave. Open full screen (opens in new tab)

Problem

AI chat history makes it difficult to reconnect ideas across conversations. As I used AI to explore design concepts, research, and personal interests, I found myself creating new threads for related ideas and struggling to remember where earlier thinking lived.

What if AI chat history organized itself around ideas, not threads?

A study of 345 people found that frequent filers weren’t better at finding information again, while automatic grouping helped. (Whittaker et al., 2011)

Process

A phone-note sketch on a black canvas: five white hand-drawn orbs of different sizes and one wide input bar drawn in blue. Notes titled Reimagining AI Conversations: each circle represents a collection or theme of thoughts on an expansive canvas, with a text input as the primary interface. Notes on visualized cues and state transitions: typing dims the background orbs, and when the system recognizes a similar orb it presents a cue and highlights it.

01 — Starting with a sketch and notes

I started in my Notes app with orbs as themes on an open canvas and one text input. My notes already described dimming the other orbs while typing and highlighting a matched one.

The Figma Make editor: the brief entered as a prompt in the sidebar, with the sketch among the reference thumbnails.

02 — A lo-fi prototype in Figma Make

I turned the brief into a first prototype in Figma Make, with my sketch as the composition reference. It proved the cue: type, see a matching theme, choose Continue or Start fresh. It also showed what it couldn’t do: it had no motion, and every layer replaced the canvas.

03 — Building in Claude Code, with a lab

I rebuilt it in code with Claude Code. Before locking anything in, I asked for a lab: a state bar and sliders to test motion and visuals by feel. It also let Claude drive the same states while we debugged.

04 — Hooking up the LLM

The demo runs Gemma 4 on Cloudflare’s servers, behind a small program that holds the rules and limits each visitor to 10 exchanges. The cap first lived in the browser tab, where a reload cleared it, so I moved it to the server.

I designed a canvas where each idea is its own space, and a new thought finds its way back to the right one.

Typing previews where it will land
A thread’s overflow menu open on Reassign, with the list of themes beside it: Portfolio positioning, Career direction (checked), AI interaction ideas, Job search, Travel and Home, each with its colour dot.
Override a thread's theme
The home canvas with the Arrange themes menu open from the top right: By activity, selected, and Recent first, above the six theme orbs.
Sort themes
Light and dark, tinted by the theme
Leaving a thread folds it back in
The orb swells as you approach

Designing for trust and learning what to validate.

  • Keeping context trustworthy

    I introduced guardrails to prevent invented context, preserve conversation history, and let people start fresh.

  • Testing the interaction model

    Next, I’d test whether people revisit ideas across conversations and whether theme matching helps them reconnect.

ammerallj@gmail.com

Want the full story, including everything I changed my mind about along the way? Let’s chat. Or try the prototype (opens in new tab).