What is Glina
Glina turns a text prompt into a verified, game-ready GLB. An LLM (routed
through Brama, the org model router) writes Blender Python, executes it round
by round through a live Blender MCP session, and every produced asset must
pass a structural quality gate before it counts as done. The same package also
ships the procedural THREE.js runtime art that the browser RTS
Potyczka renders in-game — Glina
was extracted from that game's web/art/ with full history.
The three-part mental model
Two halves, one package.
- Runtime art (
src/) is procedural generation a game imports directly:makeBody,sculptHumanoid,cardArtSvg. No credentials, no network, no Blender — geometry and SVG built in memory. - Authoring pipeline (
pipeline/) is the AI text→3D toolchain: theglinaCLI, which the macOS desktop app runs once per operation, and theglina-mcpstdio server for agent hosts.
- Runtime art (
Every capability is delegated through a hard integration boundary. The pipeline holds no secrets, no browser, no Blender socket, and no provider API of its own:
- credentials resolve by
role://<role>/<field>through Stado and Skarbiec, or an explicitly selected owner-only credential file; inline secrets in original configuration are refused, - browser automation goes only through the Weles MCP stdio server,
- Blender work goes only through a Blender MCP server
(
uvx blender-mcpby default), - model access uses the declared Brama route or an explicitly configured OpenAI-compatible backend. Credentials remain role references.
- credentials resolve by
The verification gate is the definition of done. Every produced
.glbpassespipeline/gate/verify.js: valid glTF container, mesh/primitive sanity, the triangle budget the config states (none of its own), materials, animation clips whose channels actually move, and an optional Blender render smoke. A failed gate fails the job — it never warns.
What Glina is not
- Not a model router — Brama owns which model answers (model backend).
- Not a vault — Skarbiec owns secrets; Glina only carries references.
- Not a browser — Weles owns page automation.
- Not a Blender wrapper library — the only Blender surface used is
get_scene_infoandexecute_blender_code; everything else is Blender Python sent through that one tool.
Where to go next
- Quick start — install, configure, run the gate.
- Concepts — sculpt job, studio job, verification gate, Blender session, browser session, model backend, runtime art.
- CLI reference, MCP reference, runtime API, desktop companion.
- Architecture — what Glina owns and does not own.
- Runbook — symptom-first failure catalogue.