I build working answers to questions about what technology could become.
Native products, generative systems and agent infrastructure, from an independent studio in London. Each entry below starts with a question, not a logo. The build makes the question testable. The evaluation says whether the answer held.
01
Question
02
Frame
03
Build
04
Evaluate
05
Record
EXP.01
zinepic
App Store · iOS
Can generative layout feel art-directed rather than random?
A local-first iPhone app that turns ordinary photos into art-directed zine pages. The engine analyses each image once at ingest, generates pages from a constrained visual grammar, and stores the resolved plan behind every composition. The system may choose, but the product must remember what it chose: reload a zine and every page reconstructs exactly, because the plan is data, not chance.
EngineZineKit, a pure Foundation and Core Graphics composition layer: no UI framework touches it, so every layout decision is testable on the host
AnalysisVision and Core Image, run once at ingest, persisted by image hash and analysis version; never re-run on a determinism-sensitive path
GenerationSeeded SplitMix64 randomness through a single generation context; positions, rotations and treatments quantised before a plan persists
RenderCore Graphics and Core Text at any output scale; restore and export replay the plan, never regenerate
DisciplineTest-first engine development; every user-visible generation persists its resolved render plan
What it taught. Generative systems become trustworthy when surprise is separated from reproducibility. Delight lives in the generation; trust lives in the replay.
Can language learning behave like listening to an album rather than completing a lesson?
A bilingual audiobook format anchored to the albums and films people already love: a sentence in the target language, a sentence in English, then slower. Thirty volumes across eight languages, from Japanese to Brazilian Portuguese. Behind the catalogue sits the real experiment: a production system that can hold format, taste and review at scale, because a generative-media product without one is a demo.
FormatA bilingual chapter grammar with anchor lines and controlled variation: the format is the product, the model is staff
CastingA multilingual TTS casting desk: voices audition for a part, a take once locked is never re-rendered
ReviewNative-language review and pronunciation gates before any chapter masters; evaluation logs on every pass
TruthStructured manifests as the source of truth for every volume and chapter; render tooling replays them deterministically
SurfaceNext.js and Stripe storefront at driftspeak.com; native iOS listening app in App Review
What it taught. The model is not the product. A durable generative-media product needs format, taste, review, and a production system that preserves all three at volume thirty as strictly as at volume one.
Fig. E2 · A take, once locked, is never re-rendered
EXP.03
memnant
MCP server · public
What should an agent remember, when yesterday's correct decision may be wrong today?
Every agent remembers now. Remembering was never the hard part. The hard part is that remembered decisions go stale, get superseded, and contradict each other. A stale decision confidently injected into context is worse than a forgotten one. memnant is a decision ledger, not a notebook: memory is what happened; institutional knowledge is what is still true. memnant maintains the second.
LedgerAppend-only records; when a decision changes, a supersession chain forms rather than an overwrite
StalenessSemantic staleness scoring as the code underneath a decision moves; contradictions flagged between builders
RetrievalLocal vector embeddings and semantic recall; synthesis cites its sources, so the current position stays traceable to evidence
ShapeSQLite, offline-first, git-native team sync, worktree-aware for agent fleets; exposed to any agent over MCP
What it taught. Long-term agent usefulness depends less on retaining more context than on knowing which retained context is still true. Memory without staleness detection gets more dangerous as it grows.
How do agents find one another, when capability is scattered across tools and protocols?
A public registry for AI agents. Register to become discoverable; look up other agents by identity or capability; no account or key needed to search. The bet is simple: agent ecosystems need public identity and discovery primitives before orchestration between strangers can become real: the DNS habit, applied to a workforce.
InterfaceOne address, two audiences: the same endpoint serves a human page and, by content negotiation, a public JSON spec
DiscoverySearch by capability and protocol; registration, live status and heartbeat for registered agents
AccessAccount-free search and discovery; MCP tools for lookup, registration, status
What it taught. Infrastructure adoption starts at the point of least friction. Making discovery free of accounts mattered more than any feature behind a login.
Can learning lines feel like playing an instrument rather than rereading a document?
A local-only native iPhone app for actors. Paste a monologue and it becomes a first-letter recall drill, paced against a metronome: read, flash, teleprompter. One canonical script body is the single source of truth; the first-letter view is derived at render time, never stored. One small transformation, committed to completely, produces a new rehearsal behaviour.
StackSwiftUI and SwiftData, Swift 6 strict concurrency, Liquid Glass native
ArchitectureBusiness rules in a fully unit-tested store; pure text-analysis functions; thin SwiftUI views
DisciplineSwift Testing against in-memory SwiftData; XcodeGen, the project file never committed
StanceNo backend, no accounts, no analytics: the rehearsal room is private
What it taught. A small transformation produces a new behaviour when the interaction commits fully to the user's real task. Restraint is a feature that ships.
Can a generative writing system preserve one voice, without loading the whole identity into every context window?
The studio's oldest running experiment. A portable authoring system that classifies each task, loads only the relevant craft and identity files, resolves disagreements through an explicit hierarchy, and evaluates output against a regression corpus. More context does not mean more fidelity. A strong system knows what not to load, and has a way to detect when its own operating rules begin to loosen.
RoutingThirty routes, one per kind of task; each names the files an agent reads, in order, under a context ceiling it must not exceed
HierarchyOne file read before everything: position, precedence, what decides when rules disagree. One file read last: the refusals
AuditsMechanical checks before model checks: grep-level tics caught by script, judgment failures caught by adversarial read
RegressionA frozen fixture corpus; any change to the system's laws runs against it before merging
What it taught. The system's value is not in what it can produce; any operator can get competence from a frontier model now. The value is in what it declines to produce, and in noticing when its own walls move.
My 2016 computer-science dissertation asked whether images help machines translate language, multimodal work supervised by Prof. Lucia Specia, years before multimodal was a product word. My UCL Human-Computer Interaction thesis took a prize for studying how people express themselves in social augmented space, in 2018. The technologies changed. The questions stayed consistent.
Underneath the experiments sits ten years of product: functions stood up from zero inside a global retailer, conversion work at marketplaces, hackathons run across EMEA for Google at twenty-one. The studio's method is documented in the open: what gets scripted, what gets inferred, how output is verified.