Metadata-Version: 2.4
Name: swiftvision
Version: 0.1.0
Summary: SwiftVision AI — Image Annotation Studio
Author-email: SwiftVision AI <hassaan.swiftvision@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/yourusername/swiftvision
Project-URL: Repository, https://github.com/yourusername/swiftvision
Project-URL: Bug Tracker, https://github.com/yourusername/swiftvision/issues
Keywords: annotation,image,yolo,bounding-box,tool,labeling,computer-vision,dataset
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Pillow>=9.0.0
Dynamic: license-file


# SwiftVision.ai

![SwiftVision Logo](https://raw.githubusercontent.com/hassaanswift/swiftvision/main/swiftvision/swiftvision_logo.png)

**Image Annotation Studio** — A fast, keyboard-driven bounding box annotation tool for creating YOLO-format datasets. 100% offline, no cloud, no account required.

[![PyPI version](https://badge.fury.io/py/swiftvision.svg)](https://pypi.org/project/swiftvision/)

---

## ✨ Features

- 🖱️ **Draw boxes** with mouse — drag corners to resize
- ⌨️ **Arrow keys** to nudge boxes (Shift = 10px steps)
- 🔢 **Number keys 1-9** to apply classes instantly
- ↩️ **Undo / Redo** with Ctrl+Z / Ctrl+Y
- 💾 **Auto-save YOLO .txt files** — only for annotated images
- 📋 **Copy labels** from previous image in one click
- 🎨 **SwiftVision green branding** with custom logo + favicon
- 🖼️ **Zoom, pan, hover crosshair guides** for precision
- 🗑️ **Right-click a box** to delete instantly
- 🎯 **Full-screen canvas** with sidebars

---

## 📦 Installation

```bash
pip install swiftvision
```

**Requirements:** Python 3.8+, Pillow

> **Linux users:** If Tkinter is missing, install it first:
>
> ```bash
> sudo apt install python3-tk      # Debian/Ubuntu
> sudo dnf install python3-tkinter # Fedora
> ```

---

## 🚀 Quick Start

```bash
swiftvision
```

Then:

1. Click **Load Folder** and pick your images directory
2. Add class names in the right sidebar (or type + Enter)
3. **Draw boxes** by dragging on the image
4. Assign a class via **single-click** or **number keys 1-9**
5. Use **Ctrl+Z / Ctrl+Y** for undo/redo
6. Click **Save All Labels** to write `.txt` files

---

## ⌨️ Keyboard Shortcuts

| Key                      | Action                                     |
| ------------------------ | ------------------------------------------ |
| `Left / Right`         | Move selected box 1px (or prev/next image) |
| `Shift + Left / Right` | Move 10px                                  |
| `Up / Down`            | Move box vertically                        |
| `1-9`                  | Apply class N to selected box              |
| `Del / Backspace`      | Delete selected box                        |
| `Ctrl+Z`               | Undo                                       |
| `Ctrl+Y`               | Redo                                       |
| `Ctrl+S`               | Save project                               |
| `Ctrl+O`               | Load project                               |
| `Ctrl+E`               | Export YOLO                                |
| `R`                    | Rename selected class                      |
| `N`                    | Focus new class input                      |

---

## 🖱️ Mouse Controls

| Action                     | What it does     |
| -------------------------- | ---------------- |
| Left click + drag (empty)  | Draw new box     |
| Left click on box          | Select box       |
| Drag inside box            | Move it          |
| Drag corner handle         | Resize           |
| Right click on box         | Delete instantly |
| Right click + drag (empty) | Pan the image    |
| Mouse wheel                | Zoom in / out    |

---

## 📂 Export Formats

- **YOLO** — `.txt` files with normalized `class x y w h`
- **JSON** — full project export with metadata
- **Project file** — `.json` for resuming work

Empty images (no labels) **do not** produce `.txt` files.

---

## 🛠️ Development

```bash
git clone https://github.com/yourusername/swiftvision.git
cd swiftvision
pip install -e .
swiftvision
```

---

## 📜 License

MIT — see [LICENSE](LICENSE) file.

---

## 🙌 Contributing

Issues and pull requests welcome at [github.com/hassaanswift/swiftvision](https://github.com/hassaanswift/swiftvision).

---

Built with ❤️ by SwiftVision AI — **Vision | Innovate | Engineer**
