Mesh visualization
scripts/run_mesh_vis_hands_egoexo.py renders the reconstructed
per-frame SMPL mesh into each exo camera's view, producing one output video
per camera.
python scripts/run_mesh_vis_hands_egoexo.py \
--npz_path <path/to/world_results(.npz)|merged.npz> \
[--output_dir <dir>] [--num_render N]
| Flag | Default | Notes |
|---|---|---|
--npz_path | required | The take's points_triangulated_world_results_merged.npz — see Data Format |
--output_dir | npz_path.parent / "final_vis" | |
--num_render | -1 (all frames) | Cap the frame count for a quick smoke test on a long take |
The npz is the only input needed: the script generates the SMPL meshes from
it directly and extracts/undistorts the take's raw frames itself — only
EGOEXO4D_DATASET needs to be set.
Output: view_1.mp4–view_4.mp4 in
--output_dir, one per exo camera, with the rendered mesh
overlaid on the source footage. Frames with valid == 0 are
written without an overlay.
Needs a working headless EGL setup:
export PYOPENGL_PLATFORM=egl
export EGL_DEVICE_ID=<N>