Mar 27, 2026 Human-AI Collaboration

Building Weave with Claude

Weave started as a question I’d been sitting with since Shapemix: what if a music mixer were spatial? Not a grid of faders, but a field — where position means something, where moving a sound changes how you feel it, not just how you hear it.

That’s the Mix View at Weave’s core: draggable balls on a stage, where X controls pan and Y controls volume. Mute a channel by dragging it to the backstage. The metaphor isn’t arbitrary — it comes from fifteen years of thinking about cross-modal interaction, a thesis on synesthesia, and the conviction that music tools could be more embodied than they are.

What I didn’t expect was that building it with an AI collaborator would surface a different set of questions entirely.

The Tool

Claude is good at the expected things: root cause analysis when something breaks at 11pm, evaluating AVFoundation against alternative audio frameworks, setting up a repeatable test and build process so progress compounds rather than regresses. These are real time savings. Over thirty-five days, they likely meant the difference between shipping a prototype and staying in planning.

But I started pushing into different territory.

The Push

The effects system in Weave lives in the outer ring of each channel ball — a visual representation of reverb, delay, distortion, lowpass, highpass, where the visual and the audio are supposed to speak the same language. When I was designing this, I described the intent roughly and asked Claude to extrapolate what the effect parameters should do to the ring’s appearance. It worked — not perfectly, but with the kind of coherence that suggests something is being understood rather than merely executed.

A smaller moment: I asked Claude to display a value in the interface. Rather than rendering a placeholder, it knew — without being told — to find the right data endpoint to populate it from. Situational awareness is the right phrase. It understood the shape of the problem without having the shape spelled out.

The Miss

The clearest failure was instructive. I asked Claude to add per-clip pitch control — a specific request, building on a well-established audio architecture. It built a parallel system instead: a second audio chain, running alongside the existing one. The duplicate playback it caused was immediately obvious. The root issue wasn’t: Claude had created shadow infrastructure without knowing — or being told — that it was stepping outside the established pattern.

The fix was quick: remove the parallel activation, fold what worked back into the existing chain. But the lesson was more durable: an LLM’s context has shape. If you don’t tell it what already exists and why, it will build something new. Front-loading the prompt — explicitly describing the existing architecture before making a new request — became standard practice after that.

“If you don’t tell it what already exists, it will build something new.”

The Log as Artifact

Every commit in the Weave git history is co-authored by Claude Opus 4.6. That’s not a courtesy — it reflects how the work actually happened. The log runs from February 21 to March 28: ball physics and audio loading on day one; by the end, a full DAW timeline with automation recording, per-clip pitch and time stretching, BPM sync, JSON project save/load with crash recovery, waveform visualization, and drag-and-drop clip management.

One person. Thirty-five days.

I’m not sure what to call that exactly. Not vibe coding — that implies something more passive than this felt. Directed collaboration is closer. The model executed, debugged, and occasionally suggested. I decided what the thing was for.

“The model executed, debugged, and occasionally suggested. I decided what the thing was for.”

For Future Collaborators

If you’re considering this kind of work, a few things that shaped how it went:

Front-load context. Describe the existing architecture before making a request, not after something breaks. The model cannot see what it cannot read.

Push past execution. Some of the most useful moments happened when I gave Claude an incomplete brief and asked it to extrapolate — not implement X but given the direction we’re going, what should X do? The answers weren’t always right, but they were worth having.

The log is the record. A co-authored commit history isn’t just bookkeeping. It’s an honest account of how the work happened — and a useful resource for understanding where the model contributed and where human judgment stepped in.

Weave is heading to the App Store. The collaboration that built it will be part of how I talk about it.

“The collaboration that built it will be part of how I talk about it.”

Further reading: Weave × Claude — Full Collaboration Log — the complete co-authored git history, February 21 – March 28, 2026.

–Colin


Note, August 2026: Weave was the single-purpose version. What it surfaced was that the interesting object was not the mixer but the graph underneath it, and that work continued as Incept — a general node-based audiovisual environment that covers this use case and a good deal more. This post stands as written; it is the record of the app that found the platform.

← Back to aboutface.io