Inspiration
Exams, rent, a job hunt, waking at 4 a.m. with a racing mind. I was untangling all of it in late-night AI chats, then losing the conclusions. The oldest memory trick, the method of loci, ties each idea to a place. On Specs your room can be that place.
What it does
Your thoughts become glowing topics in your room. They arrange themselves so linked topics sit together. Look at one and it blooms into stars (decisions, realisations, questions). Grab and throw a topic and its linked topics follow. Recall turns the room into a self-test.
How I built it
I built it with Claude Code driving Lens Studio through CLAD, using SIK and UI Kit. Every change started with a failing LEAF test; 10 scenarios now pass in the preview.
- Layout: my port of d3-force over the topic graph, where $w_{ij}$ is the number of threads joining topics $i$ and $j$. Link strength is $s_{ij} = \min(1,\ 0.4 + 0.15\,w_{ij})$ and rest length is $L_{ij} = 30/\sqrt{w_{ij}}$, with all-pairs repulsion and cooling over 300 ticks.
- Motion: each orb flies as a Lens Studio rigid body in its own zero-gravity world. Throws glide with $\mathbf{v}(t) = \mathbf{v}_0 e^{-\mu t}$, and linked topics follow on springs.
- Cloud: Supabase and pgvector propose links by similarity; Groq keeps only the real ones and names them (answers, supports, contradicts).
Challenges
- With d3's default link strength, linked topics in a dense graph ended up farther apart than unlinked ones. Re-tuning it per thread gave a correlation of $\rho = -0.70$ between links and distance.
- Embeddings link look-alike notes that aren't related; the LLM judge kept 11 of 36 candidate links.
- Lens Studio physics has no spring joints, so the maths decides where topics go and rigid bodies carry them there.
- I had no Specs device, so LEAF had to prove every interaction in the preview.
What I learned
Write the failing test first, even when an AI writes the code. Use maths for placement, physics for motion and an LLM for meaning. And on an additive display, restraint is the design: light, not dark, and only what you're looking at opens.
Built With
- claude
- groq
- lens
- specs