{"id":47668389,"url":"https://github.com/debaq/annotix","last_synced_at":"2026-04-27T21:00:48.502Z","repository":{"id":326773379,"uuid":"1106296406","full_name":"Debaq/Annotix","owner":"Debaq","description":"Open-source desktop platform for ML dataset annotation, training, and collaboration — Images, Video, Time Series, Tabular","archived":false,"fork":false,"pushed_at":"2026-04-25T18:16:27.000Z","size":5345,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-25T18:31:39.491Z","etag":null,"topics":["annotation","computer-vision","dataset","deep-learning","desktop-app","image-annotation","machine-learning","object-detection","p2p","react","rust","tauri","time-series","video-annotation","yolo"],"latest_commit_sha":null,"homepage":"https://www.preprints.org/manuscript/202604.0919","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Debaq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap-perf-js-rust.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-29T01:07:49.000Z","updated_at":"2026-04-25T18:16:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Debaq/Annotix","commit_stats":null,"previous_names":["debaq/annotix"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/Debaq/Annotix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debaq%2FAnnotix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debaq%2FAnnotix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debaq%2FAnnotix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debaq%2FAnnotix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Debaq","download_url":"https://codeload.github.com/Debaq/Annotix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debaq%2FAnnotix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32354574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotation","computer-vision","dataset","deep-learning","desktop-app","image-annotation","machine-learning","object-detection","p2p","react","rust","tauri","time-series","video-annotation","yolo"],"created_at":"2026-04-02T12:08:44.400Z","updated_at":"2026-04-27T21:00:48.490Z","avatar_url":"https://github.com/Debaq.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/logo.png\" alt=\"Annotix Logo\" width=\"140\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eAnnotix\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eOpen-source desktop platform for ML dataset annotation, training, and collaboration\u003c/strong\u003e\u003cbr/\u003e\n  Images \u0026middot; Video \u0026middot; Time Series \u0026middot; Tabular Data\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Debaq/Annotix/releases/latest\"\u003e\u003cimg alt=\"Latest Release\" src=\"https://img.shields.io/github/v/release/Debaq/Annotix?style=flat-square\u0026color=blue\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Debaq/Annotix/releases\"\u003e\u003cimg alt=\"Downloads\" src=\"https://img.shields.io/github/downloads/Debaq/Annotix/total?style=flat-square\u0026color=brightgreen\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Debaq/Annotix/stargazers\"\u003e\u003cimg alt=\"Stars\" src=\"https://img.shields.io/github/stars/Debaq/Annotix?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Debaq/Annotix/blob/main/LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-green?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003cimg alt=\"Platform\" src=\"https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey?style=flat-square\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Tauri 2\" src=\"https://img.shields.io/badge/tauri-2.x-orange?style=flat-square\" /\u003e\n  \u003cimg alt=\"React 19\" src=\"https://img.shields.io/badge/react-19-61DAFB?style=flat-square\" /\u003e\n  \u003cimg alt=\"Rust\" src=\"https://img.shields.io/badge/rust-1.89+-DEA584?style=flat-square\" /\u003e\n  \u003cimg alt=\"i18n\" src=\"https://img.shields.io/badge/languages-10-purple?style=flat-square\" /\u003e\n  \u003cimg alt=\"ML Backends\" src=\"https://img.shields.io/badge/ML%20backends-19-red?style=flat-square\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Debaq/Annotix/releases/latest\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"https://www.preprints.org/manuscript/202604.0919\"\u003e\u003cstrong\u003eRead the Paper\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"#getting-started\"\u003e\u003cstrong\u003eBuild from Source\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"#citation\"\u003e\u003cstrong\u003eCite\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Paper\n\n\u003e **Annotix: An Open-Source Desktop Platform for Comprehensive Machine Learning Dataset Annotation**\n\u003e\n\u003e Published on [Preprints.org](https://www.preprints.org/manuscript/202604.0919) (April 2026)\n\u003e\n\u003e Universidad Austral de Chile, Campus Puerto Montt \u0026mdash; [TecMedHub](https://github.com/tecmedhub)\n\nIf you use Annotix in your research, please [cite the paper](#citation).\n\n---\n\n## Why Annotix?\n\nMost annotation tools focus on a single data type or require cloud accounts. Annotix is different:\n\n| | Annotix | Cloud tools (CVAT, Label Studio) | Desktop tools (labelImg, LabelMe) |\n|---|:---:|:---:|:---:|\n| **Runs fully offline** | Yes | No | Yes |\n| **Images + Video + Time Series + Tabular** | Yes | Partial | No |\n| **Integrated ML training (19 backends)** | Yes | No | No |\n| **P2P collaboration (no server)** | Yes | Server required | No |\n| **Free GPU training (Colab automation)** | Yes | No | No |\n| **Export to 11 formats** | Yes | Yes | Limited |\n| **Cross-platform native app** | Yes | Browser | Partial |\n\n---\n\n## Status\n\n\u003e Last updated: April 2026 \u0026mdash; v2.4.4\n\n| Feature | Status | Notes |\n|---------|--------|-------|\n| **Image annotation** (7 tools) | :white_check_mark: Stable | BBox, OBB, Mask, Polygon, Keypoints, Landmarks, Pan |\n| **Video annotation** | :white_check_mark: Stable | Tracks, keyframes, interpolation, bake |\n| **Time series annotation** | :white_check_mark: Stable | 5 annotation types, Chart.js canvas |\n| **Tabular ML** | :white_check_mark: Stable | scikit-learn integration, column selector |\n| **ONNX inference** | :white_check_mark: Stable | Auto-detects YOLOv5-v12, DETR, SSD, classification |\n| **Export** (11 formats) | :white_check_mark: Stable | YOLO, COCO, VOC, CSV, U-Net, TIX, etc. |\n| **Import** (8 formats) | :white_check_mark: Stable | Auto-detection with confidence scoring |\n| **Local ML training** (19 backends) | :white_check_mark: Stable | Isolated Python env, GPU auto-detection |\n| **Cloud training** (7 providers) | :white_check_mark: Stable | Vertex AI, Kaggle, Lightning AI, HuggingFace, Saturn Cloud, Colab Enterprise |\n| **Browser automation** (Colab free) | :white_check_mark: Stable | T4 GPU, real-time progress |\n| **Keyboard shortcuts** | :white_check_mark: Stable | Fully customizable, conflict detection |\n| **i18n** (10 languages) | :white_check_mark: Stable | Lazy loading, English fallback |\n| **P2P collaboration** | :construction: Beta | Works but no auto-reconnection on network drop; last-write-wins conflict resolution; video frames excluded from sync |\n| **Audio annotation** | :construction: In progress | Classification, speech recognition, sound event detection, TTS recording exist; waveform UI partially wired |\n| **Audio export** | :construction: In progress | HuggingFace ASR, LJSpeech, CSV formats implemented; import not yet available |\n| **Network sharing** (serve) | :construction: In development | HTTP server to share projects via browser; web annotation UI built; not yet released |\n| **LLM chat via browser** | :construction: Beta | Kimi, Qwen, DeepSeek, HuggingChat; generic runner works, provider-specific modules are stubs |\n| **macOS build** | :warning: Not tested | No CI for macOS; should build from source but untested |\n\n:white_check_mark: = production-ready \u0026nbsp;\u0026middot;\u0026nbsp; :construction: = usable but incomplete \u0026nbsp;\u0026middot;\u0026nbsp; :warning: = known limitation\n\n---\n\n## Download\n\nPre-built binaries for the latest release:\n\n| Platform | Download |\n|----------|----------|\n| **Windows** (x64) | [`.exe` installer](https://github.com/Debaq/Annotix/releases/latest/download/Annotix_2.4.4_x64-setup.exe) \u0026nbsp;\\|\u0026nbsp; [`.msi`](https://github.com/Debaq/Annotix/releases/latest/download/Annotix_2.4.4_x64_en-US.msi) |\n| **Linux** (x64) | [`.AppImage`](https://github.com/Debaq/Annotix/releases/latest/download/Annotix_2.4.4_amd64.AppImage) |\n| **macOS** | Build from source (see [Getting Started](#getting-started)) |\n\n\u003e All releases: [github.com/Debaq/Annotix/releases](https://github.com/Debaq/Annotix/releases)\n\n---\n\n## Features at a Glance\n\n### Annotation Tools\n\n7 tools on a high-performance Konva canvas:\n\n| Tool | Key | Description |\n|------|-----|-------------|\n| **BBox** | `B` | Rectangular bounding box with drag \u0026 resize |\n| **OBB** | `O` | Oriented bounding box with free rotation |\n| **Mask** | `M` | Freehand painting with configurable brush and eraser |\n| **Polygon** | `P` | Point-by-point polygon with auto-close |\n| **Keypoints** | `K` | Skeleton presets (COCO, face, hand, MediaPipe) |\n| **Landmarks** | `L` | Named reference points with labels |\n| **Pan** | `H` | Canvas navigation |\n\nPlus: 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.\n\n### Project Types\n\n- **Images** \u0026mdash; Object detection, oriented detection, semantic/instance segmentation, keypoints, landmarks, single \u0026 multi-label classification\n- **Video** \u0026mdash; Frame extraction (FFmpeg), tracks with keyframes, linear interpolation, bake to per-frame annotations\n- **Time Series** \u0026mdash; Univariate \u0026 multivariate CSV, 5 annotation types (point, range, classification, event, anomaly)\n- **Tabular** \u0026mdash; Built-in editor with column selection and scikit-learn training\n\n### Integrated ML Training (19 Backends)\n\nTrain models directly from the app with real-time metrics charts.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eFull backend list\u003c/strong\u003e\u003c/summary\u003e\n\n#### Object Detection\n| Backend | Models |\n|---------|--------|\n| **YOLO** (Ultralytics) | YOLOv8, v9, v10, v11, v12 |\n| **RT-DETR** (Ultralytics) | RT-DETR-l, RT-DETR-x |\n| **RF-DETR** (Roboflow) | RF-DETR-base, RF-DETR-large |\n| **MMDetection** (OpenMMLab) | 30+ architectures (Faster R-CNN, DINO, Co-DETR, etc.) |\n\n#### Semantic Segmentation\n| Backend | Models |\n|---------|--------|\n| **SMP** | U-Net, DeepLabV3+, FPN, PSPNet, etc. |\n| **HuggingFace Segmentation** | SegFormer, Mask2Former, etc. |\n| **MMSegmentation** | Full OpenMMLab catalog |\n\n#### Instance Segmentation\n| Backend | Models |\n|---------|--------|\n| **Detectron2** (Meta) | Mask R-CNN, Cascade R-CNN, etc. |\n\n#### Keypoints \u0026 Pose\n| Backend | Models |\n|---------|--------|\n| **MMPose** | HRNet, ViTPose, RTMPose, etc. |\n\n#### Oriented Object Detection (OBB)\n| Backend | Models |\n|---------|--------|\n| **MMRotate** | Oriented R-CNN, RoI Transformer, etc. |\n\n#### Image Classification\n| Backend | Models |\n|---------|--------|\n| **timm** | 700+ models (ResNet, EfficientNet, ViT, ConvNeXt, etc.) |\n| **HuggingFace Classification** | ViT, BEiT, DeiT, Swin, etc. |\n\n#### Time Series\n| Backend | Task |\n|---------|------|\n| **tsai** | Classification, regression, forecasting |\n| **PyTorch Forecasting** | TFT, N-BEATS, etc. |\n| **PyOD** | Anomaly detection |\n| **tslearn** | Temporal clustering |\n| **PyPOTS** | Missing value imputation |\n| **STUMPY** | Matrix Profile (motif/pattern discovery) |\n\n#### Tabular\n| Backend | Task |\n|---------|------|\n| **scikit-learn** | RandomForest, SVM, kNN, GradientBoosting, etc. |\n\n\u003c/details\u003e\n\n**4 execution modes:**\n\n| Mode | Description |\n|------|-------------|\n| **Local** | Isolated Python env via micromamba, GPU auto-detection (CUDA / MPS) |\n| **Download Package** | ZIP with script + data for external execution |\n| **Cloud** | Vertex AI, Kaggle, Lightning AI, HuggingFace, Saturn Cloud |\n| **Browser Automation** | Free T4 GPU on Google Colab via CDP automation |\n\n6 training presets: `small_objects`, `industrial`, `traffic`, `edge_mobile`, `medical`, `aerial`.\n\nModel export: PyTorch `.pt`, ONNX, TorchScript, TFLite, CoreML, TensorRT.\n\n### P2P Collaboration\n\nReal-time collaborative annotation powered by [Iroh](https://iroh.computer/) (QUIC). No central server.\n\n- Host or join with a session code\n- Roles: LeadResearcher (full control) / Annotator / DataCurator (configurable permissions)\n- Image locking with 3-min TTL, batch assignment, CRDT sync\n- Peer list with online status\n\n### Browser Automation\n\nTrain on **Google Colab for free** (T4 GPU) via Chrome DevTools Protocol:\n- Auto-detects Chromium browsers, uploads dataset, runs training\n- Real-time progress with pause / resume / cancel\n\nQuery LLMs without API keys through the user's browser: Kimi, Qwen, DeepSeek, HuggingChat.\n\n### Export \u0026 Import\n\n**11 export formats:** YOLO Detection, YOLO Segmentation, COCO JSON, Pascal VOC, CSV (Detection/Classification/Keypoints/Landmarks), Folders by Class, U-Net Masks, TIX (native).\n\n**8 import formats** with automatic detection: YOLO, COCO, Pascal VOC, CSV (4 variants), U-Net Masks, Folders by Class, TIX.\n\n### Keyboard Shortcuts\n\nAll shortcuts are **fully customizable** from Settings with per-context conflict detection.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eDefault shortcuts\u003c/strong\u003e\u003c/summary\u003e\n\n#### Image Tools\n| Shortcut | Action |\n|----------|--------|\n| `B` | Bounding Box |\n| `O` | OBB |\n| `M` | Mask |\n| `P` | Polygon |\n| `K` | Keypoints |\n| `L` | Landmarks |\n| `H` | Pan |\n| `[` / `]` | Decrease / Increase brush size |\n| `E` | Toggle eraser |\n| `A` / `D` | Rotate image |\n| `Enter` | Confirm |\n| `Esc` | Cancel |\n\n#### Navigation\n| Shortcut | Action |\n|----------|--------|\n| `Left` / `Right` | Previous / Next image |\n| `Ctrl++` / `Ctrl+-` | Zoom in / out |\n| `Ctrl+0` | Zoom to fit |\n\n#### General\n| Shortcut | Action |\n|----------|--------|\n| `Ctrl+S` | Save |\n| `Ctrl+Z` / `Ctrl+Y` | Undo / Redo |\n| `Del` | Delete selection |\n\n#### Quick Class Selection\n| Keys | Classes |\n|------|---------|\n| `1` - `0` | Classes 1 to 10 |\n| `Q` - `P` | Classes 11 to 20 |\n\n#### Video\n| Shortcut | Action |\n|----------|--------|\n| `T` | New track |\n| `Left` / `Right` | Previous / Next frame |\n\n#### Time Series\n| Shortcut | Action |\n|----------|--------|\n| `V` | Select |\n| `P` | Point |\n| `R` | Range |\n| `E` | Event |\n| `A` | Anomaly |\n\n\u003c/details\u003e\n\n### Languages\n\n10 languages with lazy loading and English fallback:\n\n`de` Deutsch \u0026middot; `en` English \u0026middot; `es` Espanol \u0026middot; `fr` Francais \u0026middot; `it` Italiano \u0026middot; `ja` Japanese \u0026middot; `ko` Korean \u0026middot; `pt` Portugues \u0026middot; `ru` Russian \u0026middot; `zh` Chinese\n\n---\n\n## Architecture\n\n```\n+-----------------------------------------------------+\n|                    Frontend                           |\n|   React 19 + TypeScript + Tailwind + shadcn/ui       |\n|   Konva (canvas) . Chart.js (metrics) . i18next      |\n|   Zustand (state) . React Router 7                   |\n+-----------------------------------------------------+\n|                  Tauri 2 IPC                          |\n|             137+ registered commands                  |\n+-----------------------------------------------------+\n|                  Backend (Rust)                       |\n|   +------------+ +-----------+ +-----------------+   |\n|   |   Store    | | Commands  | | Export/Import   |   |\n|   | (JSON+RAM) | | (16 mod)  | | (11+8 formats) |   |\n|   +------------+ +-----------+ +-----------------+   |\n|   +------------+ +-----------+ +-----------------+   |\n|   |  Training  | | Browser   | | P2P (Iroh)      |   |\n|   | (19 backs) | | Automat.  | | QUIC mesh       |   |\n|   +------------+ +-----------+ +-----------------+   |\n+-----------------------------------------------------+\n|               External Integrations                   |\n|   Python (micromamba) . FFmpeg . Chromium CDP         |\n|   Cloud APIs . Iroh P2P network                      |\n+-----------------------------------------------------+\n```\n\n### Storage\n\nAll data stored as JSON + raw assets on disk. No database.\n\n```\n~/.local/share/annotix/config.json        -\u003e global configuration\n{projects_dir}/{uuid}/project.json        -\u003e project (metadata + classes + annotations)\n{projects_dir}/{uuid}/images/             -\u003e original images\n{projects_dir}/{uuid}/thumbnails/         -\u003e generated thumbnails\n{projects_dir}/{uuid}/videos/             -\u003e video files\n{projects_dir}/{uuid}/models/             -\u003e trained models\n```\n\nIn-memory cache with dirty-flag tracking, atomic writes (`.tmp` + `rename`).\n\n---\n\n## Tech Stack\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eFrontend\u003c/strong\u003e\u003c/summary\u003e\n\n| Technology | Version | Purpose |\n|------------|---------|---------|\n| React | 19 | UI framework |\n| TypeScript | 5.7 | Static typing |\n| Vite | 6 | Bundler and dev server |\n| Tailwind CSS | 3.4 | Utility-first styling |\n| shadcn/ui | \u0026mdash; | Component library (Radix UI) |\n| Zustand | 5 | Global state with persistence |\n| React Router | 7 | SPA routing |\n| Konva | 10 | 2D annotation canvas |\n| Chart.js | 4 | Metrics visualization |\n| i18next | 24 | Internationalization |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eBackend (Rust)\u003c/strong\u003e\u003c/summary\u003e\n\n| Crate | Version | Purpose |\n|-------|---------|---------|\n| tauri | 2 | Desktop application framework |\n| serde / serde_json | 1 | JSON serialization |\n| image | 0.25 | Image processing |\n| ffmpeg-the-third | 4 | Video frame extraction |\n| zip | 2 | Export/import packaging |\n| quick-xml | 0.37 | Pascal VOC XML |\n| csv | 1.3 | CSV import/export |\n| reqwest | 0.12 | HTTP client (cloud providers) |\n| headless_chrome | 1.0 | Browser automation (CDP) |\n| iroh | 0.96 | P2P networking (QUIC) |\n| tokio | 1 | Async runtime |\n| blake3 | 1 | Hashing |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ePython (via micromamba)\u003c/strong\u003e\u003c/summary\u003e\n\n| Package | Purpose |\n|---------|---------|\n| ultralytics | YOLO, RT-DETR |\n| rfdetr | RF-DETR |\n| mmdet, mmseg, mmpose, mmrotate | OpenMMLab suite |\n| segmentation-models-pytorch | Semantic segmentation |\n| timm | Classification (700+ models) |\n| detectron2 | Instance segmentation |\n| tsai, pytorch-forecasting | Time series deep learning |\n| pyod, tslearn, pypots, stumpy | Time series classical ML |\n| scikit-learn | Tabular ML |\n\n\u003c/details\u003e\n\n---\n\n## System Requirements\n\n- **OS**: Windows 10+, macOS 12+, Linux (glibc 2.31+)\n- **RAM**: 4 GB minimum, 8 GB recommended\n- **Disk**: ~500 MB for the app + space for datasets\n- **GPU** (optional): NVIDIA with CUDA or Apple Silicon with MPS for accelerated training\n- **FFmpeg**: required for video annotation (bundled in release builds)\n- **Chromium browser** (optional): for browser automation (Chrome, Brave, Edge)\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) \u003e= 18\n- [Rust](https://rustup.rs/) \u003e= 1.89\n- [Tauri 2 prerequisites](https://v2.tauri.app/start/prerequisites/) for your platform\n\n### Build \u0026 Run\n\n```bash\ngit clone https://github.com/Debaq/Annotix.git\ncd Annotix\nnpm install\nnpm run tauri:dev       # development (hot-reload)\nnpm run tauri:build     # production build\n```\n\n### Scripts\n\n| Script | Description |\n|--------|-------------|\n| `npm run dev` | Frontend only (Vite dev server) |\n| `npm run build` | Build frontend (TypeScript check + Vite) |\n| `npm run tauri:dev` | Full dev (frontend + Rust backend) |\n| `npm run tauri:build` | Production build with installers |\n| `npm run lint` | ESLint with zero warnings policy |\n\n---\n\n## Project Structure\n\n```\nannotix/\n├── src/                         # React frontend\n│   ├── App.tsx                  # Router and providers\n│   ├── lib/\n│   │   ├── db.ts                # Type definitions (mirrors Rust structs)\n│   │   ├── tauriDb.ts           # Centralized Tauri invoke bridge\n│   │   └── i18n.ts              # i18next configuration\n│   ├── components/ui/           # shadcn/ui components\n│   └── features/\n│       ├── canvas/              # Annotation canvas (7 tools)\n│       ├── video/               # Video annotation\n│       ├── timeseries/          # Time series annotation\n│       ├── tabular/             # Tabular data editor\n│       ├── training/            # ML training panel\n│       ├── export/              # 11 export formats\n│       ├── import/              # 8 import formats\n│       ├── inference/           # Model inference\n│       ├── p2p/                 # P2P collaboration\n│       ├── browser-automation/  # Chrome automation\n│       └── settings/            # App settings\n├── src-tauri/                   # Rust backend\n│   └── src/\n│       ├── lib.rs               # 137+ Tauri command registrations\n│       ├── store/               # Storage layer (state, IO, cache)\n│       ├── commands/            # 16 command modules\n│       ├── export/              # Export format modules\n│       ├── import/              # Import + auto-detector\n│       ├── training/            # Multi-backend ML pipeline\n│       ├── browser_automation/  # Headless Chrome\n│       ├── p2p/                 # Iroh P2P networking\n│       └── inference/           # ONNX inference\n└── public/locales/              # 10 language files\n```\n\n---\n\n## Citation\n\nIf you use Annotix in your research, please cite:\n\n```bibtex\n@article{annotix2026,\n  title     = {Annotix: An Open-Source Desktop Platform for Comprehensive Machine Learning Dataset Annotation},\n  year      = {2026},\n  publisher = {Preprints.org},\n  url       = {https://www.preprints.org/manuscript/202604.0919}\n}\n```\n\n\u003e Full paper: [https://www.preprints.org/manuscript/202604.0919](https://www.preprints.org/manuscript/202604.0919)\n\n---\n\n## Contributing\n\nContributions are welcome. Please open an issue first to discuss what you'd like to change.\n\n---\n\n## License\n\nMIT License \u0026mdash; [TecMedHub](https://github.com/tecmedhub), Universidad Austral de Chile, Campus Puerto Montt.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebaq%2Fannotix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebaq%2Fannotix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebaq%2Fannotix/lists"}