Run the Whole Metrixel Pipeline with Command Line
Zwe Wint Naing · 2026-06-08
Metrixel's new command-line mode can run the entire processing pipeline without the GUI. Be it for single files or entire folders, feel free to export with all the options you have and love in the GUI app, with a machine-ready manifest at the end of each run. It is built for training servers, CI runners, and SSH-only Linux hosts. Here is how to drive it.
Introduction
Metrixel's graphical app is great for setting up a render, inspecting an asset, and dialling in settings. However, once you know what you want, you will typically want to run it a thousand times, be it over a whole asset library, on a schedule, on a GPU server you reach over SSH. That is what the command-line mode (generally available in 2026.2.1) is for: the same pipeline, no window, fully scriptable.
In this article, I will show you how to run Metrixel from the command line: This includes a quick smoke test, a full batch, the flags that matter, and the output you get back.
The same pipeline, without the GUI
Command-line mode runs the exact same processing pipeline as the GUI. This includes the rendering, mesh export, texture export, animation export, and signed-distance-field (SDF) generation. The difference is that it skips the interface and reads everything from the flags instead. Every export option available in the app is available on the command line.
A one-asset smoke test is the quickest way to see it work:
metrixel --mode cli --gen_mode single \
--model_file /path/to/test.fbx \
--output /tmp/metrixel-smoke \
--width 256 --height 256 --single_frame=true \
--manifest=true
That renders a single frame, writes the outputs into a per-asset folder, and drops a manifest.json describing what it produced.
Batch Mode: Simply point to a folder
The real workhorse is batch mode. Give it an input directory and it walks the tree, processes every supported file (fbx, obj, gltf, glb, stl), and writes one folder per asset:
metrixel --mode cli --gen_mode batch \
--input /datasets/objaverse \
--output /datasets/out \
--width 512 --height 512 \
--camera_step 30 \
--frames_per_second 24 \
--manifest=true
--camera_step 30 gives you twelve viewpoints around each model; --frame_format and --frame_quality control the image output. If you only want certain formats from a mixed folder, --include_formats=fbx,glb narrows the walk.
There is one default setting that is worth noting: On a long batch, Metrixel inserts a short, automatic pause between assets so that the machine stays usable during a large run. It sizes the pause factoring your CPU and disk speed. Set --inter_asset_delay=0 when you would rather have maximum throughput and do not need the machine for anything else.
The Flags you'll reach for most
The full list can be found with the command metrixel --help. With that said, these are the ones that will come up daily:
| Flag | What it does |
|---|---|
--mode gui|cli |
cli skips the interface; everything else still runs |
--gen_mode single|batch |
One file (--model_file) or a whole folder (--input) |
--input / --output |
Source folder (batch) and output root |
--width / --height |
Render resolution per frame |
--camera_step |
Degrees between viewpoints (30 → 12 angles) |
--single_frame |
One static frame per angle instead of a full animation |
--frame_format / --frame_quality |
jpg, png, or tiff, and JPEG quality |
--include_formats |
Limit a batch to certain extensions, e.g. fbx,glb |
--manifest |
Emit manifest.json (on by default in CLI mode) |
--project / --save_project |
Load all render settings from a project file, or save them |
--version |
Print the exact version and build ID. Handy for support |
Boolean flags accept true/false (or 1/0), and an unknown flag or bad value stops the run with a clear message rather than guessing.
Reusable settings with project files
If you have already configured a look in the GUI, you do not need to re-type it as flags. Simply save it to a project file and replay it:
# Save the settings from a CLI run for reuse
metrixel --mode cli --gen_mode batch \
--input /datasets/objaverse --output /datasets/out \
--width 512 --camera_step 30 \
--save_project /datasets/out/run_2026_06_08.aproj
# Reuse those exact settings on a later run
metrixel --mode cli --project /datasets/out/run_2026_06_08.aproj
Project files are portable between the GUI and the command line. As a result, a look you have saved and dialled in once, can drive another unattended batch later.
Single sign-On, then it simply runs
Command-line mode authenticates through EntVista Hub, the sign-in companion shared across the EntertainmentVista Studio tools. Sign in once on the host, either through the tray app on a desktop or the headless device-code login on a server, and Metrixel picks up your session automatically. There are no separate login steps for the command line, and your subscription and entitlements apply exactly as they do in the app.
(If you are setting up a headless server, the companion post on EntVista Hub's command-line sign-in walks through that one-time step.)
What you will get back
Every run writes a predictable, machine-friendly layout. One folder per asset, with subfolders for each kind of output:
<output>/
manifest.json # one record per asset: paths, counts, bounds
assets/
model_000001/
images/ # rendered frames
meshes/ # PyTorch .pt vertex / normal / index tensors
textures/ # extracted textures
animations/ # USDA animation (Professional)
sdf/ # signed-distance volumes (Professional)
model_000002/
...
The manifest.json is the part your data loader cares about: for each asset, it lists the source file and format, bounding box, triangle and vertex counts, and the relative paths to every output. All paths are relative to the output root, so the whole folder is portable across machines. Simply copy it to S3, hand it to a teammate, mount it on a training node, and the manifest still resolves.
Production use and versioning
The command-line mode is generally available and supported for production use. As with any automation surface, pin a specific Metrixel version in your CI pipelines so that the flag names and output formats stay stable across upgrades. We evolve them conservatively and will call out any changes in the release notes. The Linux builds the CLI most often runs on ship as the relocatable tarball; one download bundles Metrixel and EntVista Hub, with nothing else to install.
Who Is This For?
- AI/ML engineers generating training data on GPU servers and in SageMaker jobs,
- Teams running dataset builds in CI on every commit,
- Anyone processing a large asset library who does not want to click through it by hand,
- Researchers on SSH-only Linux hosts with no desktop.
Conclusion
The command line turns Metrixel from an app you operate into a step you can automate. Point it at a folder, get back rendered views, PyTorch-ready meshes, and a manifest your data loader can read. This can be done on your laptop, a training server, or a CI runner - anywhere you like, really. Sign in once through EntVista Hub and the rest is a script.
Up next:
Exporting signed-distance fields and a JSON manifest for image-to-3D and shape-representation training.