Metadata-Version: 2.2
Name: sky-tracker-sdk
Version: 1.2.0
Summary: Sky Tracker — C++ tracking core with Python and Node.js SDK
Keywords: tracking,computer-vision,edge,raspberry-pi,drone
License: Proprietary
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C++
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Classifier: Operating System :: OS Independent
Project-URL: Homepage, https://sky-tracker.deneb-systems.com
Project-URL: Documentation, https://github.com/Deneb-Systems/sky-tracker-sdk/tree/main/docs
Project-URL: Changelog, https://github.com/Deneb-Systems/sky-tracker-sdk/blob/main/CHANGELOG.md
Requires-Python: >=3.10
Provides-Extra: cv
Requires-Dist: opencv-python>=4.8; extra == "cv"
Description-Content-Type: text/markdown

# Sky Tracker SDK

C++ tracking core for fast-moving small objects — drone, aircraft, bird detection and tracking. No GPU required.

## Install

```bash
pip install sky-tracker-sdk
```

## License

A valid license key is required at runtime. Buy one, or try the tracker first in
the free demo app, at [sky-tracker.deneb-systems.com](https://sky-tracker.deneb-systems.com).
Set the key as an environment variable:

```bash
# Windows
set SKY_TRACKER_LICENSE_KEY=SKT1.<your-token>

# Linux / macOS
export SKY_TRACKER_LICENSE_KEY=SKT1.<your-token>
```

Or drop a `sky_tracker.lic` file next to your script — the SDK finds it automatically.

## Quick Start

```python
import cv2
import sky_tracker

cap = cv2.VideoCapture("video.mp4")
ok, frame = cap.read()

tracker = sky_tracker.Tracker("default")
tracker.lock(frame, (469, 409, 26, 38))  # x, y, w, h

while cap.isOpened():
    ok, frame = cap.read()
    if not ok:
        break
    result = tracker.update(frame)
    if not result.lost:
        cx, cy = result.center()
        print(f"frame target at ({cx:.1f}, {cy:.1f})  confidence={result.confidence:.2f}")
```

## Tracker Profiles

| Profile | Best for |
|---------|----------|
| `default` | Recommended speed/quality balance; grayscale, constrained-CPU policy |
| `correlation` | An improved correlation-filter tracker, no neural network; one target. `--ml` adds NanoTrack, arbitrated |
| `legacy-adaptive` | Template tracker with correlation assist (strict checks, camera-motion compensation) and scheduled foreground box fitting |

`correlation` with `ml` needs NanoTrack, which the Linux (x86_64 and aarch64)
and macOS wheels include; `sky_tracker.has_nanotrack` says whether yours does.
Without it, `Tracker("correlation", ml=True)` raises and plain `correlation`
still works. On a Raspberry Pi or Jetson, NanoTrack is the slow part: measure
`ml` there, raise `ml_every` to run it less often, or leave it off.
Accuracy and speed per profile are in
[benchmarks](https://github.com/Deneb-Systems/sky-tracker-sdk/blob/main/docs/benchmarks.md).

## Platforms

| Platform | Status |
|----------|--------|
| Windows x64 | Wheel build configured |
| Linux x86_64 | Wheel build configured |
| Raspberry Pi 4/5 ARM64 | Wheel build configured; hardware validation required |
| macOS arm64 | Wheel build configured; 1.1.0 built, tested and benchmarked on Apple M3 Pro |

## Links

- [Python quickstart](https://github.com/Deneb-Systems/sky-tracker-sdk/blob/main/docs/quickstart-python.md)
- [Website, licences and the free demo app](https://sky-tracker.deneb-systems.com)
- [1.1.0 release notes](https://github.com/Deneb-Systems/sky-tracker-sdk/blob/main/docs/release-1.1.0.md)
- [Node.js SDK](https://www.npmjs.com/package/@sky-tracker/node)

## Native SDK and platform builds

The [C++ SDK](docs/quickstart-cpp.md) accepts borrowed Gray8, Bgr8, or Rgb8 frames
through an OpenCV-free public header and exports an installed CMake target.
The [Android binding](android/README.md) accepts camera Y-plane buffers, and the
[Jetson build script](packaging/jetson/build.sh) prepares CPU binaries for JetPack 4.
Android and Jetson need validation on their target devices before release.
