Inspiration
Interactive-story teams lose time translating the same idea between documents, spreadsheets, asset folders, prompt histories, and engine scripts. Every revision creates another handoff between writer, designer, artist, and Unity developer. We built Larch around one question: what if the story could remain the source of truth from the first line of dialogue to the playable build?
What it does
Larch is a visual story studio for building branching, playable narratives. Creators can:
- author dialogue, choices, variables, player input, AI dialogue, mini-games, and Unity Events on a readable canvas;
- keep character personality, speaking style, portraits, expressions, and voice direction beside the story;
- organize reusable art, audio, video, and documents in a dedicated media library;
- preview branches immediately in the browser;
- export the same project to versionable Larch JSON, a self-contained web player, or a Unity package with runtime code, media, and event hooks;
- connect Codex or another MCP client through scoped Agent keys for structured developer-tool workflows.
The core editor, preview, JSON normalization, and exports remain available without a model call. AI is an optional assistance layer, not the owner of the story.
How we built it
The editor uses React 19, TypeScript, React Flow, Zustand, Framer Motion, PixiJS, and Three.js. An Express 5 service provides sessions, ownership, versioning, uploads, billing, AI-provider adapters, Unity pairing, scoped MCP access, and export jobs.
One graph of nodes, edges, variables, localized content, characters, and media drives three deterministic outputs:
- a re-importable Larch authoring JSON file;
- a standalone HTML player with local saves, language selection, and sandboxed mini-game messaging;
- a Unity package with runtime-safe story data, media assets, a sample scene, editor tooling, and Unity Event callbacks.
Public web and Unity runtime payloads strip character secrets, system prompts, authoring prompts, account data, and Live/API keys.
How we used Codex and GPT-5.6
Codex was part of the Build Week engineering workflow. We used it to redesign and implement the product, review security and data boundaries, generate documented demo art, run responsive browser QA, create repeatable release checks, record the real product demo, and prepare the English submission materials.
When a server-side OpenAI key is configured, Larch uses the OpenAI Responses API with gpt-5.6-sol for bounded story analysis and character-aware generation. The direct OpenAI speech path is separate and uses the Audio Speech API. We kept these runtime claims distinct from Codex's role in building the product.
Challenges we ran into
The hardest design problem was serving two mental models at once. Writers think in scenes, emotion, and pacing; engines think in identifiers, branches, payloads, and state. The graph had to stay approachable while remaining deterministic enough to export.
Portable media was another challenge. Browsers can point to remote URLs, but Unity needs real files, stable paths, import metadata, and runtime bindings. The exporter resolves media, keeps useful extensions, generates Unity metadata, and fails with an actionable message when a required asset cannot be packaged.
SaaS readiness also required explicit contracts for ownership, OAuth redirects, signed and idempotent Stripe webhooks, atomic credit reservation, provider failures, request limits, upload validation, secret redaction, entitlement boundaries, and persistence.
Accomplishments that we're proud of
- One story model drives the editor, browser preview, JSON, standalone web runtime, and Unity package.
- Runtime exports preserve playable event data while excluding private authoring context and platform secrets.
- Character and media workflows have dedicated product areas instead of interrupting the canvas.
- A single release suite verifies the build, story import, standalone runtime, secret boundaries, Unity package structure, MCP, offline TTS contracts, and backend security and billing contracts.
- Free deterministic creation and export paths remain available even when optional AI providers are not configured.
What we learned
The most useful AI experience is rarely a blank prompt box. It is a bounded moment inside an existing workflow: analyzing an imported draft, responding with known character context, generating a missing expression, or turning approved text into speech.
We also learned that export quality is part of product experience. Trust comes from predictable paths, preserved event payloads, actionable failures, and runtime artifacts that do not leak private authoring context.
What's next for Larch
Next we will complete a recorded evidence matrix for Railway, Stripe test mode, direct OpenAI calls, provider failures, and a clean Unity Editor import. We also plan to add graph validation, collaborative review, version comparison, playtest analytics, a transactional database for scale, and a documented Unity SDK.
Try Larch at larch.yapiflow.com.
Built With
- gpt-5.6-sol
Log in or sign up for Devpost to join the conversation.