glina preview
Invocation
glina preview anim [<file.glb>] [--clip <name>] [--frames <n>] [--fps <n>] [--out <file.gif>] [--config <path>]
glina preview scene [<file.glb>] [--out <file.png>] [--size <px>] [--config <path>]
glina preview --help prints both leaves. Both render through a live Blender MCP session. An explicit .glb path wins; otherwise Glina uses the accepted active workspace destination. A missing indexed active file is a refusal rather than a silent fallback. --config <path> selects Blender MCP settings; a missing explicit file or malformed config refuses, and only an absent implicit default is optional.
preview anim
Render a Blender animation clip from a GLB to a looping GIF.
--clip <name>selects an action; otherwise the longest action is used.--frames <n>samples at mostnframes evenly across the clip; without it every frame of the clip is rendered.--fps <n>sets GIF playback; without it the GIF plays at the clip's own speed: the scene rate Blender imported the clip at, divided by the sampling step.--out <file.gif>selects the result; the default is<stem>-anim[-<clip>].gif.
Imports the GLB into Blender, renders 512×512 frames, assembles the GIF with ffmpeg or the uv run --with pillow fallback (both with the GIF format's 256-colour palette), writes the file, and prints {outPath, clip, frames, fps, tool} as JSON, where fps is the playback rate the GIF was written at.
Import, missing-action, rendering, or GIF-tool errors are printed as error: <message> and exit 1. Blender did not report the clip's timing: <output> means the render ran but the scene rate could not be read back; pass --fps to state it.
preview scene
Render a GLB on a neutral ground with a camera framed to its mesh bounds and an area light. This is an artifact preview, not a Potyczka gameplay simulation.
The default output is previews/<stem>-scene.png inside the Glina user data directory ($XDG_DATA_HOME/glina or ~/.local/share/glina), so a read-only source can still be previewed. A later preview of the same stem replaces that PNG. --out selects another PNG path; its parent directory must already exist. --size <px> renders a square image of that edge; without it the image keeps the render resolution of the Blender scene it is drawn in, and the result reports the width and height it got. A size that is not a whole number above zero is refused with --size must be a whole number of pixels above zero.
Glina imports the asset into a live Blender MCP session, builds the ground, light and camera, renders to a temporary image and moves a nonempty PNG into the output path. JSON output names outPath, source, bytes, width, height, and scene: neutral-ground. A missing Blender connection, failed import, absent mesh, render exception or absent/empty image exits 1 with the failed operation on stderr; no successful result is printed. Glina Desktop's Assets gallery offers Preview in scene on each GLB and displays the returned PNG or refusal.
Refusals
glina previewwithout a leaf, or with any leaf other thananimandscene, writeserror: preview takes anim or scene; got <the words given>and exits 2.- Without an explicit path or an active import,
preview animandpreview scenewriteerror: preview <leaf> requires a .glb path or an active imported assetand exit 2. - The retired spellings
preview-animandpreview-sceneare unknown commands and exit 2.
Diagnostic interpretation
Blender could not import <path>: ... Could not connect to Blender means the MCP server answered but its Blender add-on did not. A running MCP process alone is not evidence of a usable bridge. glina doctor probes a real code round trip through Blender and names that failure.