Skip to content

Repository files navigation

MaskForge

MaskForge

A standalone desktop application for annotating and correcting raster segmentation masks on any imagery — satellite, aerial, or plain photographs, georeferenced or not.

MaskForge offers configurable scene discovery instead of a hardcoded folder convention, persisted and shareable class palettes instead of hardcoded classes, vectorized painting tools, arbitrary-factor resampling, and a single installer with no separate Python/runtime setup required.

Features

  • Configurable scene discovery — point at a source root and describe your folder/file naming with glob patterns; no fixed directory convention.
  • Zarr support — read scenes directly out of per-tile .zarr stores (in addition to GeoTIFF/PNG), via a pluggable raster-format registry.
  • Multi-panel synchronized editor — view any combination of a scene's RGB composite views (true color, shadow/contrast, natural color, color infrared, or any other detected view) alongside the mask, side by side (1–4 panels), pan/zoom locked together, with per-layer visibility and ordering.
  • Class palettes — define classes with names, colors, and values; save palettes for reuse; activate a subset per session.
  • Painting tools — brush, bucket fill, polygon, and an image-guided auto-fill, all vectorized for large images and rendered through in-place canvas patching for fast, responsive annotation even on large masks.
  • Auto-segment on any combination of views — cluster on any checked subset of a scene's RGB views (stacked band-wise), not just a fixed raw/shadow/both choice, giving the clustering more information to separate visually similar colors.
  • External inference import — detect a class-map raster (.npz or GeoTIFF) produced by an external ML pipeline alongside a scene, or under a separate inference output root for zarr scenes, and copy it into the mask as a starting point for correction.
  • Swap class — bulk-reassign every pixel of one class to another across the whole mask, for fixing a mistaken class assignment without repainting.
  • Color picker with safe remapping — pick colors in HSV/RGB/HEX; remapping an already-used color previews the affected pixel count before applying.
  • Border contours — thin, non-dilated class boundaries rendered live, cached incrementally.
  • Flexible export — GeoTIFF (RGBA/RGB) or PNG, custom output folder structure, optional resampling (native, or arbitrary target resolution with nearest or majority/"mode" categorical downsampling).
  • Session persistence & autosave — full session state (discovery config, active palette, save settings, UI state) persisted locally, with periodic autosave and crash recovery.
  • QA workflow — per-scene status (todo / in progress / validated / flagged), filterable, with batch navigation.
  • Review mode — before/after diff overlay for correcting existing masks.
  • Light/dark theme, customizable keybindings, exportable per-class statistics.

Installation

Download the installer from the latest release and run it — no other software required (Windows 10/11).

Running it

Requirements: Node.js 20+, Rust (stable), Python 3.12.

Windows: double-click MaskForge.bat — it installs dependencies on first run (frontend npm install, sidecar virtualenv) and then launches the app. Subsequent runs skip straight to launch.

Or manually:

# install frontend deps
npm install

# install sidecar deps (from sidecar/)
cd sidecar && python -m venv .venv && .venv/Scripts/pip install -e ".[dev]"

# run the full app in dev mode (spawns the sidecar automatically)
npm run tauri dev

Run tests:

# sidecar
cd sidecar && .venv/Scripts/python -m pytest tests/ -v

# frontend
npm run build   # tsc --noEmit + vite build

Support

If MaskForge is useful to you, consider sponsoring on GitHub — no obligation, just a way to support continued development.

License

Copyright (C) 2026 Maxime Tarka

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file (GNU AGPL v3) for details.

About

Desktop app for annotating and correcting raster segmentation masks on satellite, aerial, or plain imagery — configurable scene discovery, shareable class palettes, vectorized painting tools.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages