EntVista Hub + Metrixel CLI Reference

Zwe Wint Naing · 2026-09-28

EntVista Hub + Metrixel CLI Reference

The command-line reference for EntVista Hub sign-in and the Metrixel dataset pipeline, current as of 2026.3.1: Every option with its defaults, along with for which plan, exit codes for automation, and examples of headless workflows.

The command-line reference for EntVista Hub (sign-in and licence seats) and Metrixel (the dataset pipeline), current as of 2026.3.1. We will cover every option, the defaults, the plans each may need... all of this with examples for headless and automated workflows.

Metrixel's CLI is a preview surface: pin the product version your automation runs against, and use the installed build's --help if it and this page ever disagree.

Modification history

Product Version CLI change
Metrixel 2026.2.0 Headless CLI introduced: --mode cli, single and batch dataset processing, SDF controls, manifest output, and EntVista Hub session reuse.
EntVista Hub 2026.2.x Headless sign-in with auth login and auth status: a browser on another device approves the headless host.
Metrixel 2026.2.1 Animation selection with --frame_range START:END and --frame_stride N.
Metrixel 2026.3.0 Motion Retargeting: target and source rig mapping, source-list and recursive source-folder workflows, stay-in-place rendering, resume and force controls, and project load/save.
EntVista Hub 2026.3.0 --replace-existing-session lets a headless host take over the licence seat from another device.
Metrixel 2026.3.1 Mesh-Aware Correction and Penetration Visualisation (--mesh_aware_correction, --penetration_visualisation, --correction_quality). --xray render option. --retarget_contact_aware renamed --retarget_refine (the old name still works for now). --camera_step 0 accepted as one camera view. --wireframe now takes effect from the CLI. A run blocked by another Metrixel instance now exits with an error instead of appearing successful. On Linux, --version and --help work on hosts without a display.
EntVista Hub 2026.3.1 auth lease list, auth lease revoke, auth logout --all, auth login --offline and --force.

1. Running the commands

The examples use entvistahub and metrixel. Those short names exist on Linux after running the tarball's ./install.sh, which links both into ~/.local/bin. On macOS and Windows, run the binary from its install folder instead, for example:

Platform Metrixel
Linux metrixel (after ./install.sh)
Windows "C:\Program Files\EntVistaStudio\Metrixel\<version>\bin\Metrixel.exe"
macOS /Applications/EntVistaStudio/Metrixel/<version>/Metrixel.app/Contents/MacOS/Metrixel

EntVista Hub installs the same way, under EntVistaStudio/EntVistaHub/<version>/.

Close the Metrixel app before using the CLI. While the desktop app is open, a CLI run exits with an error, and --version / --help print nothing. Always write the mode as --mode cli.


2. EntVista Hub CLI

Metrixel has no separate command-line login. EntVista Hub owns sign-in and the subscription session. Sign in through EntVista Hub once on the host; later Metrixel CLI runs on the same host reuse that session.

On a headless machine, sign-in uses a device code: the terminal prints a short code and an address, and you approve the sign-in in a browser on any other device.

Commands

Command Purpose
entvistahub --mode cli auth login Sign in. Reuses an existing valid session instead of creating a second one.
entvistahub --mode cli auth login --offline Sign in with a long-lived session, for unattended hosts that must stay signed in through restarts. Release it with auth logout --all when the host is retired.
entvistahub --mode cli auth login --force Sign in again even though a valid session exists.
entvistahub --mode cli auth status Show the signed-in account. Exit code 0 signed in, 1 not signed in, 2 the stored sign-in belongs to a different environment.
entvistahub --mode cli auth logout Sign out on this machine and release its licence seat.
entvistahub --mode cli auth logout --all End every session on the account. Use it for an --offline host, and before a plain auth logout.
entvistahub --mode cli auth lease list List the devices holding a licence seat on the account.
entvistahub --mode cli auth lease revoke Release this device's seat without signing out.
entvistahub --mode cli --replace-existing-session When the seat is in use on another device, sign that device out and take the seat here. Opt-in on purpose: the other device is signed out, possibly mid-job.

A first run on a new host:

entvistahub --mode cli auth login
entvistahub --mode cli auth status

metrixel --version
metrixel --help

Keep EntVista Hub installed on the same host. Metrixel gets sign-in, subscription and plan state from the Hub, and starts it if it is not already running.


3. Metrixel CLI

Every pipeline run begins with:

metrixel --mode cli

Before building automation around an installation:

metrixel --version    # includes the build ID — record it with generated datasets
metrixel --help

Boolean options always take a value: write --xray true (or --xray=true), never a bare --xray. true/false, 1/0, yes/no and on/off are all accepted.

Plans. Rendering, texture extraction and PyTorch mesh export are available on every plan, including the free signed-in tier. Batch mode, TIFF, SDF export, Motion Retargeting, Mesh-Aware Correction and Clipping (Penetration) Visualisation need the Professional plan.

3.1 Core input and output

Option Default Purpose
--mode cli gui Run headlessly.
--gen_mode single|batch single One model, or every asset under --input. Legacy 0|1 still accepted. Batch: Professional.
--model_file PATH — The model processed in single mode.
--input DIR — Input directory for batch mode.
--output DIR — Dataset output root.
--include_formats LIST all Batch allowlist from fbx, obj, gltf, glb, stl — e.g. fbx,glb.
--inter_asset_delay SEC -1 Pause between batch assets. -1 automatic, 0 none.
--manifest true|false on in CLI Write manifest.json describing every output.

Inputs: FBX, OBJ, glTF/GLB and STL. Files over 200 MB are skipped.

Output layout: <output>/assets/<asset>/{images,meshes,textures,animations,sdf}/ plus manifest.json.

Example — one asset

metrixel --mode cli \
  --gen_mode single \
  --model_file /data/input/character.glb \
  --output /data/output \
  --gen_sdf false

--gen_sdf false keeps a Standard or free run from reporting a skipped SDF stage (see Exit codes); Professional users can leave it out.

Example — recursive batch (Professional)

metrixel --mode cli \
  --gen_mode batch \
  --input /data/input \
  --output /data/output \
  --include_formats=fbx,glb \
  --manifest=true

3.2 Image and animation capture

Option Default Purpose
--width N, --height N 512 Output size, 32–16384.
--frame_format jpg|png|tiff jpg Image format. TIFF: Professional.
--frame_quality N 100 JPEG quality, 1–100.
--camera_step DEG 90 Orbit step, 15–360 (90 gives four views). 0 means one view, the same as 360.
--camera_distance_factor N 1.5 Camera distance multiplier, 1–10.
--camera_offset_x N, --camera_offset_y N 0 Horizontal and vertical camera offset.
--frames_per_second N 30 Animation sampling rate, 1–60.
--frame_range START:END whole clip Inclusive, zero-based frame range; trimmed to the clip's length.
--frame_stride N 1 Keep every Nth animation frame.
--single_frame true|false false Render one static frame instead of the animation.
--wireframe true|false false Wireframe rendering. Takes effect from the CLI since 2026.3.1.
--xray true|false false Also write an x-ray image of every frame, as <frame>_xray.<ext>, beside the normal one. Works on any asset and every plan.
--animation_stay_in_place true|false false Remove the input animation's root travel from the render.

Images are written to <output>/assets/<asset>/images/.

Example — 12 views, PNG, every fourth animation frame

metrixel --mode cli \
  --gen_mode single \
  --model_file /data/input/character.fbx \
  --output /data/output \
  --width 1024 --height 1024 \
  --frame_format png \
  --camera_step 30 \
  --frames_per_second 30 \
  --frame_range=0:120 \
  --frame_stride=4 \
  --gen_sdf false

Example — one camera angle

metrixel --mode cli \
  --gen_mode single \
  --model_file /data/input/character.glb \
  --output /data/output \
  --camera_step 0 \
  --gen_sdf false

Example — x-ray alongside the normal render

metrixel --mode cli \
  --gen_mode single \
  --model_file /data/input/character.glb \
  --output /data/output \
  --xray true \
  --gen_sdf false

Each frame is written twice: 000_000_000_0000.jpg and 000_000_000_0000_xray.jpg. No correction, retarget or Professional plan is needed; like every render, it requires signing in through EntVista Hub.

3.3 Mesh tensors and SDF

Option Default Purpose
--gen_pt true|false true Write PyTorch .pt mesh tensors. Every plan.
--gen_sdf true|false true Write SDF volumes. Professional. On other plans, pass --gen_sdf false.
--sdf_resolution N 64 Cubic SDF resolution, 8–256.
--sdf_format bin|npz bin SDF file format. npz currently writes the bin layout, with a warning.
--sdf_backend auto|cpu|vulkan auto Compute backend. auto tries Vulkan, then falls back to CPU.
--sdf_max_triangles N 1000000 Skip SDF generation (only) for meshes above this triangle count; 0 removes the cap.

Example — reproducible CPU SDF (Professional)

metrixel --mode cli \
  --gen_mode single \
  --model_file /data/input/mesh.glb \
  --output /data/output \
  --gen_sdf=true \
  --sdf_resolution=64 \
  --sdf_backend=cpu \
  --manifest=true

3.4 Motion Retargeting (Professional)

Retargeting takes a target bone-map setting plus either a source-list file or a source folder — not both. Sources can be FBX, glTF/GLB or BVH.

Target rig

--bone_map_target auto
--bone_map_target /path/to/custom_target_map.json

auto identifies the target's rig from the asset itself.

Source-list mode

--retarget_sources takes a JSON list file, not a motion file directly.

Example sources.json:

[
  {"file": "/mocap/walk.fbx", "bone_map": "auto"},
  {"file": "/mocap/run.bvh", "bone_map": "auto"}
]
metrixel --mode cli \
  --gen_mode single \
  --model_file /characters/target.fbx \
  --output /data/output \
  --bone_map_target auto \
  --retarget_sources /config/sources.json

Source-folder mode

metrixel --mode cli \
  --gen_mode single \
  --model_file /characters/target.fbx \
  --output /data/output \
  --bone_map_target auto \
  --retarget_source_folder /mocap/library

The folder is searched recursively for FBX, glTF/GLB and BVH files. Each source's rig is identified independently (--retarget_source_bone_map auto, the default), so one folder can mix rig types.

Retarget controls

Option Default Purpose
--gen_retarget true|false true Run or skip the configured retarget without removing its configuration.
--retarget_animation_stay_in_place true|false false Remove root travel from the retargeted render; the exported GLB keeps its root motion.
--retarget_force true|false false Redo retarget work instead of resuming.
--retarget_refine true|false false Motion Refinement — reduces foot sliding and jitter. CPU-only and slow on long clips. Renamed from --retarget_contact_aware in 2026.3.1; the old name still works for now, but update your scripts.
--retarget_diagnostics true|false saved setting (on) Change the saved setting for writing a solver diagnostics file (retarget_solver.jsonl). Leave the option out to keep the current setting.

3.5 Mesh-Aware Correction and Penetration Visualisation (Professional) — 2026.3.1

Both run as part of Motion Retargeting, so a retarget must be configured (section 2.4).

Option Default Purpose
--mesh_aware_correction true|false false Check retargeted poses against the target mesh and apply a bounded correction only where it measurably reduces clipping and stays within the foot-contact and joint limits; otherwise the original pose is kept.
--correction_quality accurate|fast accurate fast is much quicker on dense meshes.
--penetration_visualisation true|false false Also write an x-ray (<frame>_xray.<ext>) and a heat map (<frame>_heat.<ext>) of the corrected retarget render only. Needs --mesh_aware_correction true; without it, the option is ignored. For an x-ray of any render, use --xray.

Example — correction

metrixel --mode cli \
  --gen_mode single \
  --model_file /characters/target.fbx \
  --output /data/output \
  --bone_map_target auto \
  --retarget_sources /config/sources.json \
  --mesh_aware_correction true \
  --correction_quality accurate

Example — correction plus x-ray and heat map

metrixel --mode cli \
  --gen_mode single \
  --model_file /characters/target.fbx \
  --output /data/output \
  --bone_map_target auto \
  --retarget_sources /config/sources.json \
  --mesh_aware_correction true \
  --penetration_visualisation true \
  --correction_quality fast

3.6 Project files

Option Purpose
--project FILE.aproj, -p FILE.aproj Load a project's settings. The project's render, output, generation and retargeting settings take precedence over the same options on the command line.
--save_project FILE.aproj, --sp FILE.aproj Save the current project state before the run.

With a project loaded, the manifest and SDF format options (--manifest, --sdf_resolution, --sdf_format, --sdf_backend, --include_formats) still apply from the command line. Whether SDF and .pt are generated at all follows the project.

Example — run a saved project

metrixel --mode cli \
  --project /projects/dataset.aproj \
  --sdf_resolution=128 \
  --manifest=true

4. Combined headless workflow

A fresh headless host uses the two applications in this order:

# 1. Sign in once through EntVista Hub (--offline if the host must stay signed in through restarts).
entvistahub --mode cli auth login
entvistahub --mode cli auth status

# 2. Record the Metrixel build being automated.
metrixel --version

# 3. Run the dataset pipeline (batch and SDF: Professional).
metrixel --mode cli \
  --gen_mode batch \
  --input /data/assets \
  --output /data/dataset \
  --include_formats=fbx,glb \
  --width 1024 --height 1024 \
  --camera_step 30 \
  --gen_pt=true \
  --gen_sdf=true \
  --sdf_resolution=64 \
  --sdf_backend=auto \
  --manifest=true

# 4. Before tearing the host down, release the seat.
entvistahub --mode cli auth logout     # auth logout --all for an --offline sign-in

5. Automation notes

Exit codes

Code Meaning
0 Success (also --help and --version).
1 The run was stopped.
2 An option value was invalid (out of range, unknown choice, missing file).
11 The run was refused before it started — for example batch mode or TIFF without the Professional plan, or no export quota left.
12 The run finished, but at least one requested output was skipped because the plan doesn't include it. The other outputs were written.
13 Nothing ran: another Metrixel instance is open, EntVista Hub could not be started, or the licence seat is in use on another device (check entvistahub --mode cli auth lease list).
255 The command line could not be parsed (unknown option, or a boolean option without a value).
  • Turn off what your plan doesn't include (--gen_sdf false on Standard and free) so a clean run exits 0 rather than 12.
  • Pin the Metrixel version used by CI or dataset production while the CLI is a preview surface, and record metrixel --version (which includes the build ID) with generated datasets and support reports.
  • Prefer --project when a long set of render settings is shared between the GUI and the CLI; prefer explicit options when a job should be self-contained in a script.
  • --help also lists some internal diagnostic options (candidate, BVH and penetration-label tools). They are unsupported and may change without notice.

6. Checking the installed build

entvistahub --mode cli auth status
metrixel --version
metrixel --help

When this reference and an installed build disagree, the installed build's --help is authoritative for that version.