Animux Guide ← animux.org

Home › For AI Agents

Command reference

Headless and command-line use of every Animux program, with conventions for output paths, exit codes, logs, displays and time limits.

AIagentscommand lineheadlessautomationreference

Conventions#

Topic Rule on Animux
Shell bash; the user's Home is $HOME; the guide's commands assume a normal user
Graphical programs need the user's display: DISPLAY=:0 (X11, Xfce). Check with xdpyinfo -display :0 >/dev/null
Headless programs need no display; prefer them
Exit codes 0 = success for every command below. Still check the output file: some programs return 0 after writing nothing
Time limits wrap long jobs: timeout 3600 blender -b …
Logs redirect: cmd > job.log 2>&1
Paths with spaces quote them
Parallel jobs Blender, Cycles, pbrt, LuxCore and Mitsuba each use all cores; run them one after another
Python with VFX libraries animux-vfx-python (OpenUSD, OIIO, OpenEXR, OCIO, MaterialX, Mitsuba, LuxCore, NumPy)
Blender's own Python blender -b --python script.py (module bpy)
Gaffer's Python gaffer env python script.py or gaffer python script.py (modules Gaffer, GafferScene, IECore)

All headless commands#

Program Command-line use (no window)
Blender blender -b scene.blend -o //render_#### -F PNG -f 1
Blender blender -b scene.blend -a
Blender blender -b --python script.py
OpenSCAD openscad -o part.stl part.scad
POV-Ray povray +Iscene.pov +Oscene.png +W1280 +H720 +A -D
appleseed appleseed.cli scene.appleseed --output out.png
LuxCoreRender animux-vfx-python /usr/share/animux/samples/luxcore/render.py out.png
Mitsuba 3 mitsuba scene.xml -o out.exr
Mitsuba 3 animux-vfx-python /usr/share/animux/samples/mitsuba/render.py out.exr
pbrt-v4 pbrt --outfile out.exr scene.pbrt
pbrt-v4 imgtool convert out.exr out.png
Gaffer gaffer execute -script scene.gfr -nodes Render
Gaffer gaffer python script.py
OpenUSD tools (usdview, usdcat …) usdcat scene.usda -o scene.usdc
OpenUSD tools (usdview, usdcat …) usdchecker scene.usda
OpenUSD tools (usdview, usdcat …) usdtree scene.usda
Alembic tools (abcls, abctree …) abcls -r file.abc
Alembic tools (abcls, abctree …) abctree file.abc
Alembic tools (abcls, abctree …) abcecho file.abc
Open Shading Language (oslc, oslinfo, testshade) oslc myshader.osl
Open Shading Language (oslc, oslinfo, testshade) oslinfo myshader.oso
OpenEXR and OpenImageIO tools oiiotool in.exr --resize 50% -o out.png
OpenEXR and OpenImageIO tools exrheader in.exr
OpenEXR and OpenImageIO tools iinfo -v in.exr
OpenColorIO tools ociocheck --iconfig config.ocio
OpenVDB tools vdb_print -l file.vdb
Animux VFX Python animux-vfx-python -c "import pxr, OpenImageIO, PyOpenColorIO, mitsuba, pyluxcore"
Flamenco flamenco-manager
Flamenco flamenco-worker -manager http://MANAGER:8080/
OpenToonz LD_LIBRARY_PATH=/opt/animux/opentoonz/lib/opentoonz /opt/animux/opentoonz/bin/tcomposer scene.tnz -o out.png
Synfig Studio synfig file.sif -t png -o frame.png
Synfig Studio synfig file.sifz -t ffmpeg -o movie.mp4
GIMP gimp-console -i --batch-interpreter=python-fu-eval -b "exec(open('script.py').read())" --quit
GIMP gimp-console -i -b '(gimp-quit 0)'
Inkscape inkscape drawing.svg --export-type=png --export-width=1920
ImageMagick and G'MIC convert in.png -resize 50% out.jpg
ImageMagick and G'MIC mogrify -format jpg *.png
ImageMagick and G'MIC montage frame*.png -tile 4x -geometry +4+4 contact-sheet.png
Avidemux avidemux-cli --load in.mp4 --save out.mkv --output-format MKV
HandBrake HandBrakeCLI -i in.mov -o out.mp4 --preset "Fast 1080p30"
FFmpeg ffmpeg -framerate 24 -i render_%04d.png -c:v libx264 -pix_fmt yuv420p -crf 18 movie.mp4
FFmpeg ffmpeg -i movie.mp4 -i music.wav -c:v copy -c:a aac -shortest final.mp4
Sound analysis and conversion (Sonic Visualiser, Praat, SoundConverter, SoX) sox in.wav out.flac
Sound analysis and conversion (Sonic Visualiser, Praat, SoundConverter, SoX) sox in.wav -n stat
Whisper animux-whisper dialogue.wav --model small --language en --output_format srt
Whisper animux-whisper film.mp4 --task translate --output_format srt
rembg animux-rembg i photo.jpg cutout.png
rembg animux-rembg p frames/ frames-cutout/
Ollama ollama serve
Ollama ollama run llama3.2 "Write three names for a robot character"
Ollama curl http://127.0.0.1:11434/api/generate -d '{"model":"llama3.2","prompt":"hello"}'
MCP servers (Blender, GIMP, Krita, Inkscape) animux-mcp blender lab
MCP servers (Blender, GIMP, Krita, Inkscape) animux-mcp gimp on
MCP servers (Blender, GIMP, Krita, Inkscape) animux-mcp krita on
MCP servers (Blender, GIMP, Krita, Inkscape) animux-mcp inkscape on
MCP servers (Blender, GIMP, Krita, Inkscape) animux-mcp status
MCP servers (Blender, GIMP, Krita, Inkscape) animux-mcp agent qwen3:8b
MCP servers (Blender, GIMP, Krita, Inkscape) blender --background scene.blend --command blender_mcp
LTX (Lightricks API) animux-ltx-api t2v "PROMPT" --duration 6
LTX (Lightricks API) animux-ltx-api i2v frame.png "PROMPT"
LTX (Lightricks API) animux-ltx-api mcp
Animux Self-Test animux-selftest
Animux Self-Test animux-selftest --list
Animux Self-Test animux-selftest blender povray
Animux Guide animux-docs search render farm
Animux Guide animux-docs show tutorials/first-3d-render
Animux Guide animux-docs software blender --json
Animux Guide animux-docs mcp

Blender recipes#

# Render frame 1 of a file to PNG, 50% resolution, 16 samples
blender -b in.blend --python-expr "import bpy; s=bpy.context.scene; s.render.resolution_percentage=50; s.cycles.samples=16" -o /tmp/out_#### -F PNG -f 1

# Information about a .blend file (scenes, frame range, engine), as JSON
blender -b in.blend --python-expr "import bpy,json; s=bpy.context.scene; print('JSON'+json.dumps({'scene':s.name,'start':s.frame_start,'end':s.frame_end,'fps':s.render.fps,'engine':s.render.engine,'res':[s.render.resolution_x,s.render.resolution_y]}))" | grep '^JSON' | cut -c5-

# Convert / export
blender -b in.blend --python-expr "import bpy; bpy.ops.wm.usd_export(filepath='/tmp/out.usdc')"
blender -b --python-expr "import bpy; bpy.ops.wm.read_factory_settings(use_empty=True); bpy.ops.wm.obj_import(filepath='in.obj'); bpy.ops.wm.save_as_mainfile(filepath='/tmp/out.blend')"

Progress lines start with Fra:; a finished still prints Saved: '<path>'.

Images and video#

oiiotool in.exr --colorconvert linear sRGB -o out.png      # EXR → PNG with a colour transform
iinfo -v in.exr                                            # resolution, channels, metadata
ffprobe -v error -show_entries format=duration -of csv=p=0 in.mp4   # length in seconds
ffmpeg -y -framerate 24 -i f_%04d.png -c:v libx264 -pix_fmt yuv420p -crf 18 out.mp4
convert in.png -resize 1920x1080 out.jpg

Checking the system#

animux-selftest --list               # available test names
animux-selftest blender              # exit 0 = Blender works
grep -o -w -E 'sse4_2|avx|avx2' /proc/cpuinfo | sort -u
nproc; free -g; df -h "$HOME"
test -d /run/live/medium && echo live || echo installed
dpkg-query -W 'animux-*'             # installed Animux packages and versions

Opening programs for the user#

When the user wants to work in a program themselves, open it on their display and detach it:

DISPLAY=:0 setsid -f krita ~/Pictures/sketch.kra >/dev/null 2>&1
DISPLAY=:0 xdg-open ~/Videos/film.mp4            # default program for a file

The menu entries' exact commands are in /usr/share/applications/*.desktop (Exec= lines).