Quick start
The non-mutating evidence blocks below were executed against this repository with Node v22 on macOS. Generation commands are interface examples: they require configured external systems and operate on the current Blender or browser session.
Use a checkout
This repository is the current artifact; registry availability is not assumed. From the checkout:
npm install
node pipeline/cli.js help
The package defines two bins for an installed or linked copy: glina (the
CLI, pipeline/cli.js) and glina-mcp (the MCP stdio server,
pipeline/mcp.js). The rest of this page uses the checkout form where
captured output matters.
See the surface
$ node pipeline/cli.js help
usage: node pipeline/cli.js <command> [args]
commands:
create <prompt> [--race r] [--out dir] [--config path]
sculpt <prompt> [--out dir] [--filename f.glb] [--rounds n] [--config path]
LLM (Opus) iteratively builds the model in Blender
preview-anim <file.glb> [--clip name] [--frames n] [--fps n] [--out f.gif]
render an animated GIF of one clip through Blender
animate <file.glb> [--preset dragon] [--out animated.glb]
apply deterministic, visibly moving actions
showcase dragon [--out dragon.glb]
build a cohesive animated reference asset
verify <file.glb> [--config path] structural + optional render gate
check-config [--config path]
weles-tools
serve [--port n] [--config path] loopback HTTP/JSON backend for desktop apps
blender-health MCP handshake + execute_blender_code probe
setup [--check] [--dry-run] provision Blender + uv + blender-mcp
Run the quality gate — no config, no vault, no Blender
verify works with defaults when the config file is absent:
$ node pipeline/cli.js verify assets/models/smok.glb --config /nonexistent.json
{
"ok": true,
"errors": [],
"stats": {
"meshes": 38,
"primitives": 38,
"triangles": 748,
"materials": 5,
"animations": 2,
"animationNames": [ "flap", "idle" ],
...
},
"thresholds": { "triTarget": 6000, "triTolerancePct": 100, ... },
"path": "assets/models/smok.glb"
}
$ echo $?
0
A failing gate exits 1 and names every reason in errors — see the
verify walkthrough.
Check the toolchain
setup --check only probes (which), never installs:
$ node pipeline/cli.js setup --check
{
"healthy": true,
"steps": [
{ "step": "blender", "status": "present", "path": "/opt/homebrew/bin/blender" },
{ "step": "uv", "status": "present", "path": "/opt/homebrew/bin/uvx" }
]
}
Plain setup provisions Blender + uv (brew on macOS, apt/snap on Linux) and
resolves the blender-mcp package through uvx.
Configure for generation
Sculpting and studio generation need pipeline.config.json (default path:
the repo/package root; override with --config):
cp pipeline.config.example.json pipeline.config.json # then edit
Every secret in it must be a skarbiec://<item>/<field> reference — the
loader refuses inline values:
$ node pipeline/cli.js check-config --config inline.json
error: config key 'credentials.password' holds an inline value; secrets must be skarbiec://<item>/<field> references
Store studio credentials once in the vault:
skarbiec set TEXT2GAME_ACCOUNT --type login \
--field login_email=you@example.com --field login_password=...
check-config then validates the file, resolves every reference against the
vault, and prints the config with resolved secrets replaced by
<resolved: ok>. See configuration for every key.
Generate
glina sculpt "gothic dwarven tower, low-poly" # LLM drives Blender
glina create "dwarven axe warrior" --race dwarves # studio flow via Weles browser
glina blender-health # probe the Blender session first
Both flows end in the verification gate; a broken or off-budget asset fails
the job. For agent hosts run glina-mcp (MCP reference); for the
desktop app the backend is glina serve
(serve walkthrough).