Files
3sixty2cubemap/wiki/Usage.md
T
2026-08-22 16:54:05 +02:00

2.3 KiB

Usage

One binary, pipeline_360. Invoked with a subcommand it runs the CLI; with no subcommand (or --gui) it launches the native GUI (requires the gui feature).

all — full pipeline

Runs extract → cubemap → masks → rig on one GPU device:

pipeline_360 all --project-dir out --video v1.mp4 [v2.mp4 …] \
    --mask-model yolo11x-seg.onnx --mask-device rocm --mask-imgsz 1280 \
    --extract-chunk-size 30 --cubemap-face-size 1600 --rig-ref-face F
  • Multi-video: each source is prefixed with its filename stem in 01_frames.
  • --start-stage extract|cubemap|masks|rig — resume from a later stage.
  • --skip-masks — skip the masks stage entirely.

Individual stages

# Extract sharpest frames (GPU sharpness + quality filtering)
pipeline_360 extract --video v1.mp4 [v2.mp4 …] --output-dir out/01_frames \
    --min-sharpness 0 --min-exposure 0 --max-exposure 255 \
    --min-contrast 0 --min-motion 0 --max-motion 1e12 \
    --selection chunk|spread --target-count 0 --min-gap 0 \
    --bad-frame-action keep|skip|warn

# Cubemap projection (equirect → 6 cube faces, GPU)
pipeline_360 cubemap --frames-dir 01_frames --output-frames-dir 03_cubemap/images \
    --face-size 1600 --skip-faces "U,D" --resume --jpeg-quality 95

# Masks on the cube-face images (GPU via --mask-device rocm)
pipeline_360 masks --input-dir 03_cubemap/images --output-dir 03_cubemap/masks \
    --mask-model yolo11x-seg.onnx --mask-device rocm --mask-imgsz 1280 \
    --mask-classes person,car,bus,truck,bicycle,motorcycle \
    --mask-conf 0.35 --mask-dilate 6 --mask-skip-faces "" --mask-empty-if-none

# Rig config + nested COLMAP tree
pipeline_360 rig --images-dir 03_cubemap/images --masks-dir 03_cubemap/masks \
    --output rig_config.json --link-tree 04_colmap/images \
    --masks-link-tree 04_colmap/masks --face-size 1600 --link-mode symlink

GUI

The native egui+wgpu GUI is in the same binary:

cargo build --features gui
./target/debug/pipeline_360          # no subcommand → GUI
./target/debug/pipeline_360 --gui    # explicit

The GUI shells out to the CLI subprocess (the same binary) with --gui-log-output and streams progress into a live log panel. It exposes every stage's options as forms.

--mask-projection and --mask-face-size are accepted for back-compat but are no-ops: masks always run on cube-face images.