Skip to content

Debaq/Annotix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

203 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Annotix Logo

Annotix

Open-source desktop platform for ML dataset annotation, training, and collaboration
Images · Video · Time Series · Tabular Data

Latest Release Downloads Stars License Platform

Tauri 2 React 19 Rust i18n ML Backends

Download  •  Read the Paper  •  Build from Source  •  Cite


Paper

Annotix: An Open-Source Desktop Platform for Comprehensive Machine Learning Dataset Annotation

Published on Preprints.org (April 2026)

Universidad Austral de Chile, Campus Puerto Montt — TecMedHub

If you use Annotix in your research, please cite the paper.


Why Annotix?

Most annotation tools focus on a single data type or require cloud accounts. Annotix is different:

Annotix Cloud tools (CVAT, Label Studio) Desktop tools (labelImg, LabelMe)
Runs fully offline Yes No Yes
Images + Video + Time Series + Tabular Yes Partial No
Integrated ML training (19 backends) Yes No No
P2P collaboration (no server) Yes Server required No
Free GPU training (Colab automation) Yes No No
Export to 11 formats Yes Yes Limited
Cross-platform native app Yes Browser Partial

Status

Last updated: April 2026 — v2.4.4

Feature Status Notes
Image annotation (7 tools) ✅ Stable BBox, OBB, Mask, Polygon, Keypoints, Landmarks, Pan
Video annotation ✅ Stable Tracks, keyframes, interpolation, bake
Time series annotation ✅ Stable 5 annotation types, Chart.js canvas
Tabular ML ✅ Stable scikit-learn integration, column selector
ONNX inference ✅ Stable Auto-detects YOLOv5-v12, DETR, SSD, classification
Export (11 formats) ✅ Stable YOLO, COCO, VOC, CSV, U-Net, TIX, etc.
Import (8 formats) ✅ Stable Auto-detection with confidence scoring
Local ML training (19 backends) ✅ Stable Isolated Python env, GPU auto-detection
Cloud training (7 providers) ✅ Stable Vertex AI, Kaggle, Lightning AI, HuggingFace, Saturn Cloud, Colab Enterprise
Browser automation (Colab free) ✅ Stable T4 GPU, real-time progress
Keyboard shortcuts ✅ Stable Fully customizable, conflict detection
i18n (10 languages) ✅ Stable Lazy loading, English fallback
P2P collaboration 🚧 Beta Works but no auto-reconnection on network drop; last-write-wins conflict resolution; video frames excluded from sync
Audio annotation 🚧 In progress Classification, speech recognition, sound event detection, TTS recording exist; waveform UI partially wired
Audio export 🚧 In progress HuggingFace ASR, LJSpeech, CSV formats implemented; import not yet available
Network sharing (serve) 🚧 In development HTTP server to share projects via browser; web annotation UI built; not yet released
LLM chat via browser 🚧 Beta Kimi, Qwen, DeepSeek, HuggingChat; generic runner works, provider-specific modules are stubs
macOS build ⚠️ Not tested No CI for macOS; should build from source but untested

✅ = production-ready  ·  🚧 = usable but incomplete  ·  ⚠️ = known limitation


Download

Pre-built binaries for the latest release:

Platform Download
Windows (x64) .exe installer  |  .msi
Linux (x64) .AppImage
macOS Build from source (see Getting Started)

All releases: github.com/Debaq/Annotix/releases


Features at a Glance

Annotation Tools

7 tools on a high-performance Konva canvas:

Tool Key Description
BBox B Rectangular bounding box with drag & resize
OBB O Oriented bounding box with free rotation
Mask M Freehand painting with configurable brush and eraser
Polygon P Point-by-point polygon with auto-close
Keypoints K Skeleton presets (COCO, face, hand, MediaPipe)
Landmarks L Named reference points with labels
Pan H Canvas navigation

Plus: mouse wheel zoom, image rotation, label/grid toggles, quick class selection (1-0, Q-P for up to 20 classes), undo/redo with 100-step history.

Project Types

  • Images — Object detection, oriented detection, semantic/instance segmentation, keypoints, landmarks, single & multi-label classification
  • Video — Frame extraction (FFmpeg), tracks with keyframes, linear interpolation, bake to per-frame annotations
  • Time Series — Univariate & multivariate CSV, 5 annotation types (point, range, classification, event, anomaly)
  • Tabular — Built-in editor with column selection and scikit-learn training

Integrated ML Training (19 Backends)

Train models directly from the app with real-time metrics charts.

Full backend list

Object Detection

Backend Models
YOLO (Ultralytics) YOLOv8, v9, v10, v11, v12
RT-DETR (Ultralytics) RT-DETR-l, RT-DETR-x
RF-DETR (Roboflow) RF-DETR-base, RF-DETR-large
MMDetection (OpenMMLab) 30+ architectures (Faster R-CNN, DINO, Co-DETR, etc.)

Semantic Segmentation

Backend Models
SMP U-Net, DeepLabV3+, FPN, PSPNet, etc.
HuggingFace Segmentation SegFormer, Mask2Former, etc.
MMSegmentation Full OpenMMLab catalog

Instance Segmentation

Backend Models
Detectron2 (Meta) Mask R-CNN, Cascade R-CNN, etc.

Keypoints & Pose

Backend Models
MMPose HRNet, ViTPose, RTMPose, etc.

Oriented Object Detection (OBB)

Backend Models
MMRotate Oriented R-CNN, RoI Transformer, etc.

Image Classification

Backend Models
timm 700+ models (ResNet, EfficientNet, ViT, ConvNeXt, etc.)
HuggingFace Classification ViT, BEiT, DeiT, Swin, etc.

Time Series

Backend Task
tsai Classification, regression, forecasting
PyTorch Forecasting TFT, N-BEATS, etc.
PyOD Anomaly detection
tslearn Temporal clustering
PyPOTS Missing value imputation
STUMPY Matrix Profile (motif/pattern discovery)

Tabular

Backend Task
scikit-learn RandomForest, SVM, kNN, GradientBoosting, etc.

4 execution modes:

Mode Description
Local Isolated Python env via micromamba, GPU auto-detection (CUDA / MPS)
Download Package ZIP with script + data for external execution
Cloud Vertex AI, Kaggle, Lightning AI, HuggingFace, Saturn Cloud
Browser Automation Free T4 GPU on Google Colab via CDP automation

6 training presets: small_objects, industrial, traffic, edge_mobile, medical, aerial.

Model export: PyTorch .pt, ONNX, TorchScript, TFLite, CoreML, TensorRT.

P2P Collaboration

Real-time collaborative annotation powered by Iroh (QUIC). No central server.

  • Host or join with a session code
  • Roles: LeadResearcher (full control) / Annotator / DataCurator (configurable permissions)
  • Image locking with 3-min TTL, batch assignment, CRDT sync
  • Peer list with online status

Browser Automation

Train on Google Colab for free (T4 GPU) via Chrome DevTools Protocol:

  • Auto-detects Chromium browsers, uploads dataset, runs training
  • Real-time progress with pause / resume / cancel

Query LLMs without API keys through the user's browser: Kimi, Qwen, DeepSeek, HuggingChat.

Export & Import

11 export formats: YOLO Detection, YOLO Segmentation, COCO JSON, Pascal VOC, CSV (Detection/Classification/Keypoints/Landmarks), Folders by Class, U-Net Masks, TIX (native).

8 import formats with automatic detection: YOLO, COCO, Pascal VOC, CSV (4 variants), U-Net Masks, Folders by Class, TIX.

Keyboard Shortcuts

All shortcuts are fully customizable from Settings with per-context conflict detection.

Default shortcuts

Image Tools

Shortcut Action
B Bounding Box
O OBB
M Mask
P Polygon
K Keypoints
L Landmarks
H Pan
[ / ] Decrease / Increase brush size
E Toggle eraser
A / D Rotate image
Enter Confirm
Esc Cancel

Navigation

Shortcut Action
Left / Right Previous / Next image
Ctrl++ / Ctrl+- Zoom in / out
Ctrl+0 Zoom to fit

General

Shortcut Action
Ctrl+S Save
Ctrl+Z / Ctrl+Y Undo / Redo
Del Delete selection

Quick Class Selection

Keys Classes
1 - 0 Classes 1 to 10
Q - P Classes 11 to 20

Video

Shortcut Action
T New track
Left / Right Previous / Next frame

Time Series

Shortcut Action
V Select
P Point
R Range
E Event
A Anomaly

Languages

10 languages with lazy loading and English fallback:

de Deutsch · en English · es Espanol · fr Francais · it Italiano · ja Japanese · ko Korean · pt Portugues · ru Russian · zh Chinese


Architecture

+-----------------------------------------------------+
|                    Frontend                           |
|   React 19 + TypeScript + Tailwind + shadcn/ui       |
|   Konva (canvas) . Chart.js (metrics) . i18next      |
|   Zustand (state) . React Router 7                   |
+-----------------------------------------------------+
|                  Tauri 2 IPC                          |
|             137+ registered commands                  |
+-----------------------------------------------------+
|                  Backend (Rust)                       |
|   +------------+ +-----------+ +-----------------+   |
|   |   Store    | | Commands  | | Export/Import   |   |
|   | (JSON+RAM) | | (16 mod)  | | (11+8 formats) |   |
|   +------------+ +-----------+ +-----------------+   |
|   +------------+ +-----------+ +-----------------+   |
|   |  Training  | | Browser   | | P2P (Iroh)      |   |
|   | (19 backs) | | Automat.  | | QUIC mesh       |   |
|   +------------+ +-----------+ +-----------------+   |
+-----------------------------------------------------+
|               External Integrations                   |
|   Python (micromamba) . FFmpeg . Chromium CDP         |
|   Cloud APIs . Iroh P2P network                      |
+-----------------------------------------------------+

Storage

All data stored as JSON + raw assets on disk. No database.

~/.local/share/annotix/config.json        -> global configuration
{projects_dir}/{uuid}/project.json        -> project (metadata + classes + annotations)
{projects_dir}/{uuid}/images/             -> original images
{projects_dir}/{uuid}/thumbnails/         -> generated thumbnails
{projects_dir}/{uuid}/videos/             -> video files
{projects_dir}/{uuid}/models/             -> trained models

In-memory cache with dirty-flag tracking, atomic writes (.tmp + rename).


Tech Stack

Frontend
Technology Version Purpose
React 19 UI framework
TypeScript 5.7 Static typing
Vite 6 Bundler and dev server
Tailwind CSS 3.4 Utility-first styling
shadcn/ui Component library (Radix UI)
Zustand 5 Global state with persistence
React Router 7 SPA routing
Konva 10 2D annotation canvas
Chart.js 4 Metrics visualization
i18next 24 Internationalization
Backend (Rust)
Crate Version Purpose
tauri 2 Desktop application framework
serde / serde_json 1 JSON serialization
image 0.25 Image processing
ffmpeg-the-third 4 Video frame extraction
zip 2 Export/import packaging
quick-xml 0.37 Pascal VOC XML
csv 1.3 CSV import/export
reqwest 0.12 HTTP client (cloud providers)
headless_chrome 1.0 Browser automation (CDP)
iroh 0.96 P2P networking (QUIC)
tokio 1 Async runtime
blake3 1 Hashing
Python (via micromamba)
Package Purpose
ultralytics YOLO, RT-DETR
rfdetr RF-DETR
mmdet, mmseg, mmpose, mmrotate OpenMMLab suite
segmentation-models-pytorch Semantic segmentation
timm Classification (700+ models)
detectron2 Instance segmentation
tsai, pytorch-forecasting Time series deep learning
pyod, tslearn, pypots, stumpy Time series classical ML
scikit-learn Tabular ML

System Requirements

  • OS: Windows 10+, macOS 12+, Linux (glibc 2.31+)
  • RAM: 4 GB minimum, 8 GB recommended
  • Disk: ~500 MB for the app + space for datasets
  • GPU (optional): NVIDIA with CUDA or Apple Silicon with MPS for accelerated training
  • FFmpeg: required for video annotation (bundled in release builds)
  • Chromium browser (optional): for browser automation (Chrome, Brave, Edge)

Getting Started

Prerequisites

Build & Run

git clone https://github.com/Debaq/Annotix.git
cd Annotix
npm install
npm run tauri:dev       # development (hot-reload)
npm run tauri:build     # production build

Scripts

Script Description
npm run dev Frontend only (Vite dev server)
npm run build Build frontend (TypeScript check + Vite)
npm run tauri:dev Full dev (frontend + Rust backend)
npm run tauri:build Production build with installers
npm run lint ESLint with zero warnings policy

Project Structure

annotix/
├── src/                         # React frontend
│   ├── App.tsx                  # Router and providers
│   ├── lib/
│   │   ├── db.ts                # Type definitions (mirrors Rust structs)
│   │   ├── tauriDb.ts           # Centralized Tauri invoke bridge
│   │   └── i18n.ts              # i18next configuration
│   ├── components/ui/           # shadcn/ui components
│   └── features/
│       ├── canvas/              # Annotation canvas (7 tools)
│       ├── video/               # Video annotation
│       ├── timeseries/          # Time series annotation
│       ├── tabular/             # Tabular data editor
│       ├── training/            # ML training panel
│       ├── export/              # 11 export formats
│       ├── import/              # 8 import formats
│       ├── inference/           # Model inference
│       ├── p2p/                 # P2P collaboration
│       ├── browser-automation/  # Chrome automation
│       └── settings/            # App settings
├── src-tauri/                   # Rust backend
│   └── src/
│       ├── lib.rs               # 137+ Tauri command registrations
│       ├── store/               # Storage layer (state, IO, cache)
│       ├── commands/            # 16 command modules
│       ├── export/              # Export format modules
│       ├── import/              # Import + auto-detector
│       ├── training/            # Multi-backend ML pipeline
│       ├── browser_automation/  # Headless Chrome
│       ├── p2p/                 # Iroh P2P networking
│       └── inference/           # ONNX inference
└── public/locales/              # 10 language files

Citation

If you use Annotix in your research, please cite:

@article{annotix2026,
  title     = {Annotix: An Open-Source Desktop Platform for Comprehensive Machine Learning Dataset Annotation},
  year      = {2026},
  publisher = {Preprints.org},
  url       = {https://www.preprints.org/manuscript/202604.0919}
}

Full paper: https://www.preprints.org/manuscript/202604.0919


Contributing

Contributions are welcome. Please open an issue first to discuss what you'd like to change.


License

MIT License — TecMedHub, Universidad Austral de Chile, Campus Puerto Montt.