Skip to content

Releases: Vincentqyw/colmapforge

v1.6.0

Choose a tag to compare

@Vincentqyw Vincentqyw released this 22 Aug 05:10

1.6.0 - 2026-08-22

Features

  • New Motion (optical flow) frame sampling method, alongside
    "Every N frames" and "Target FPS", in both the GUI and the CLI
    (--extract-method motion). A grid of points is tracked through dense
    DIS optical flow and a keyframe is written only when the camera has
    moved enough: the 80th-percentile cumulative point displacement reaches
    a threshold (--extract-motion-threshold, default 600 px), too few
    tracked points remain in view (--extract-motion-min-points), or a
    maximum frame gap elapses (--extract-motion-max-gap). The first and
    last frames are always kept, and --extract-max-frames thins the
    result evenly. Static stretches of video produce no redundant frames,
    fast pans produce more. Adapted from morishuz/frame-extractor (MIT).
    Closes #1.

v1.5.0

Choose a tag to compare

@Vincentqyw Vincentqyw released this 09 Aug 07:28

Features

  • Release assets are now version-stamped and lowercase:
    colmapforge-{version}-{os}-{arch}[-{variant}], e.g.
    colmapforge-1.5.0-linux-x64.tar.gz and
    colmapforge-1.5.0-windows-x64-cuda.zip. The version comes from the
    pushed tag; manually dispatched CI builds are stamped
    0.0.0-dev.{sha} so dev bundles cannot be mistaken for releases.

Fixes

  • The About dialog now always shows the released version. The app version
    is single-sourced from colmapforge.__version__ (pyproject.toml derives
    it via hatch dynamic versioning); it was previously hardcoded to 1.0.0
    and never bumped by releases.
  • Release asset uploads no longer append duplicate auto-generated
    "Full Changelog" lines to the GitHub Release body — the four platform
    build jobs each did so on every tagged build.

Full Changelog: v1.4.1...v1.5.0

v1.4.1

Choose a tag to compare

@Vincentqyw Vincentqyw released this 09 Aug 06:52

Fixes

  • The generated database.db now uses the modern COLMAP (>= 3.12 / 4.x)
    schema: the rig/frame registry (rigs, rig_sensors, frames,
    frame_data, pose_priors) is created and populated (one rig per
    camera, one frame per image), descriptors gains its type column, and
    the match tables are keyed by pair_id like COLMAP's own DDL. Current
    COLMAP releases previously refused to load Forge databases, crashing in
    ReadCameraRow / ReadAllCameras.
  • EQUIRECTANGULAR cameras now store the correct (width, height) params —
    COLMAP models it as a spherical camera with implied angular resolution —
    instead of a bogus perspective-style (f, cx, cy) guess that also
    crashed COLMAP on load.

Verified end-to-end against COLMAP 4.2.0.dev0: Forge-built database →
ALIKED extraction → LightGlue matching → mapper, with all images
registered.

Full Changelog: v1.4.0...v1.4.1

v1.4.0

Choose a tag to compare

@Vincentqyw Vincentqyw released this 02 Aug 14:01

Features

  • Headless CLI mode (colmapforge run) running the full pipeline without
    Qt, plus a cmf alias.
  • YOLO-World + SAM text-prompt cascades with four mask backends: MobileSAM,
    SAM2.1-Tiny, EfficientViT-SAM-L0, and EdgeTAM.
  • Model download overhaul: Hugging Face mirror support, SHA256
    verification, and a colmapforge download predownload command.
  • Sensible CLI defaults and richer top-level help.
  • SAM3 runs on GPU when VRAM >= 8 GB; CUDA/cuDNN bundled via pip extras.

Fixes

  • Packaged builds (all platforms): bundle the vendored CLIP BPE vocabulary
    file; release bundles crashed at segmentation with "No such file or
    directory: bpe_simple_vocab_16e6.txt.gz".
  • Windows: uv sync --extra gpu no longer fails to resolve — the
    [cuda,cudnn] pip extras are Linux-only (the nvidia-* wheels ship no
    Windows builds); Windows uses the plain onnxruntime-gpu wheel with a
    system CUDA 13 + cuDNN 9 install.

Refactor

  • Drop the osam dependency — the CLIP BPE tokenizer is now vendored.
  • Remove dead code and dedupe GUI/CLI pipeline logic.

Documentation

  • Re-benchmark Apple M4 Pro and merge with RTX 5090 results into a single
    comparison table.

Full Changelog: v1.3.0...v1.4.0

Full Changelog: v1.3.0...v1.4.0

Full Changelog: v1.3.0...v1.4.0

Full Changelog: v1.3.0...v1.4.0

v1.3.0

Choose a tag to compare

@Vincentqyw Vincentqyw released this 31 Jul 19:33

1.3.0 - 2026-08-01

Features

  • Add a "Launch COLMAP GUI" button that opens the last built database and
    images in COLMAP at any time; enabled after a successful build.

Fixes

  • Disabled buttons now have a distinct base color instead of blending into
    the card background in dark mode.
  • The segmentation custom-class hint wraps to multiple lines so the left
    sidebar no longer spills under the splitter handle with a horizontal
    scrollbar.
  • Lay out Build / Stop as a full-width primary action with Launch COLMAP
    and Open Output side by side beneath it.

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@Vincentqyw Vincentqyw released this 31 Jul 19:10

1.2.0 - 2026-08-01

Features

  • Restrict SAM support to SAM3, the only SAM family with a native text
    encoder; class prompts are now passed straight to it as text. Removed
    SAM1 / SAM2 / SAM2.1 backends and the YOLO-World detection bridge.
  • Register SkyWater in models.yaml alongside SAM3 (first entry, so it is
    the default selection). Unify model download through a single
    download_model_entry that infers zip-vs-single-file from the URL.
  • Launch COLMAP GUI after build now defaults to off.

Fixes

  • Segmentation prompts now take effect: SAM3 uses text directly, and the
    pipeline refuses configs lacking a language encoder instead of silently
    producing blank masks.
  • Rebuilding the COLMAP database no longer fails with a
    UNIQUE constraint failed: images.name — the old DB file is dropped
    before each build.
  • Image names in the database are stored relative to the image directory,
    so COLMAP resolves them without doubling the images path segment.
  • Stopping the pipeline now fully terminates it — workers no longer emit
    finished when cancelled, so the next stage never starts.
  • Preview panel: removed the frame-count overlay badge; the info label now
    keeps a consistent format (dimensions always shown once known) instead of
    jumping between layouts while navigating.
  • The progress bar shows the current status message during long model
    downloads instead of a bare percentage.

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 18:32

Full Changelog: v1.0.0...v1.1.0

Full Changelog: v1.0.0...v1.1.0

Full Changelog: v1.0.0...v1.1.0

Full Changelog: v1.0.0...v1.1.0

COLMAP Forge v1.0.0

Choose a tag to compare

@Vincentqyw Vincentqyw released this 27 Jul 01:24

First Release

COLMAP Forge — a PyQt6 desktop wizard for preparing video/image data for COLMAP SfM pipelines.

Features

  • 4-stage pipeline: extraction → resize → masking → database export
  • 17 AI models: 16 SAM/SAM2/SAM3 variants + SkyWater SegFormer-B2, auto-downloaded on first use
  • Zero-config: models cache to ~/.colmapforge/models/
  • GPU auto-detect: CUDA → DirectML → CPU fallback
  • Dark/Light themes, keyboard shortcuts, real-time preview
  • 18 camera models: SIMPLE_PINHOLE through EQUIRECTANGULAR

Quick Start

git clone https://github.com/Vincentqyw/colmapforge.git
cd colmapforge
uv sync --extra gpu  # or --extra directml / --extra cpu
uv run colmapforge

Pre-built packages for Windows, Linux, and macOS will be available once CI completes.

Full Changelog: https://github.com/Vincentqyw/colmapforge/commits/v1.0.0