Inspiration
Generating one beautiful character image is easy; producing a coherent set of expressions, outfits, and props is not. Separate generations drift in pose, scale, alignment, transparency, and identity. We wanted a workflow where a person can simply describe a companion while an agent handles the mechanical work without taking control away from the creator.
Why the name AOZU?
AOZU combines Aotter with two fictional digital worlds that inspired us: OZ from the Japanese animated film Summer Wars and U from Belle. The name also sounds like the Taiwanese expression A-tsóo (阿祖), meaning a great-grandparent, elder ancestor, or keeper of inherited memories. This reflects our vision for AOZU: a WebMCP-powered gateway where people create lasting companions or avatars, build their identities and memories, and explore an ever-expanding digital world together.
What it does
AOZU turns the browser into a shared character forge for a human and an AI agent. A creator starts or imports a character, asks the agent to inspect the current workspace, and works through body, expression, outfit, and prop layers. AOZU validates every submitted asset, protects pixels that must not change, checks revisions and source hashes, normalizes supported inputs, stitches layers deterministically, and renders the result for human review. The creator can adjust alignment, undo or redo changes, duplicate a character, and export a portable character pack containing editable sources and a lossless WebP texture atlas.
Why WebMCP is essential
Without WebMCP, an agent must infer application state from screenshots, guess which controls to click, and hope that generated assets satisfy invisible technical constraints. AOZU exposes the exact state and contract instead. The agent can discover what is missing, read the correct reference image and editable-region mask, submit a candidate against a specific revision and SHA-256 source hash, apply a measured transform, and navigate the creator directly to the result. The website remains the source of truth while the human remains the final reviewer.
This makes the experience faster and more reliable, but also enables something that was previously difficult: probabilistic image generation inside a deterministic, reversible production pipeline shared by a person and an agent.
How we implemented WebMCP
AOZU registers nine public tools through document.modelContext.registerTool:
inspect_workspacenavigate_characterinspect_character_contractupdate_character_profilereplace_character_assetrepair_character_assetset_character_variant_transformundo_character_changeredo_character_change
The public tools are projected from the same Mantle application contracts used by the React UI. IndexedDB stores browser-local character workspaces and image blobs. Candidate submission checks dimensions, RGBA transparency, visible bounds, canvas overflow, revision freshness, and source hashes. PixiJS renders the same compiled atlas that is included in the exported character ZIP.
What people and agents can do together
- A person describes a coherent character instead of manually preparing every production asset.
- The agent reads machine-readable visual constraints instead of guessing from the UI.
- AOZU rejects unsafe or stale changes and preserves protected pixels.
- The person reviews each result in context and can adjust, undo, redo, duplicate, or export it.
- The finished pack can leave AOZU and be imported again without an account or server-side state.
Challenges
The hardest problem was defining a safe boundary between creative generation and deterministic editing. AOZU deliberately does not hide uncertainty: the agent creates the pixels, while the application owns validation, normalization, protected regions, revision control, stitching, persistence, and export. Building one contract that could serve both the human UI and WebMCP tools prevented the two workflows from drifting apart.
Accomplishments
- A non-trivial nine-tool WebMCP workflow rather than button automation
- Revision- and SHA-256-bound asset mutations
- Protected-region character editing and deterministic layer stitching
- Local-first persistence, undo/redo, duplication, import, and export
- A lossless WebP texture atlas shared by preview and exported packs
- Responsive AOZU parchment UI with nine languages
What is next
The competition build intentionally closes one loop: create, repair, review, and export a companion. The same portable character contract can later power AOZU adventures, memories, skills, rewards, and task-specific companion cards without weakening the character pipeline demonstrated here.
Built With
- chatgpt
- cloudflare
- css
- html5
- indexeddb
- json
- mantle
- pixijs
- radix
- react
- schema
- shadcn/ui
- tailwind
- typescript
- vite
- webmcp
- webp
- workers
- zustand
Log in or sign up for Devpost to join the conversation.