Skip to main content

FFTrix

FFTrix is a high-performance video surveillance and analysis platform utilizing classical Computer Vision (CV) and pattern recognition techniques for real-time monitoring and event detection.

Features

  • Real-time Monitoring: Multi-camera streaming with low-latency processing via vidgear.
  • Classical CV Analytics:
    • Motion Detection: Background subtraction using the MOG2 (Mixture of Gaussians) algorithm.
    • Person Detection: Histogram of Oriented Gradients (HOG) with Linear SVM.
    • Face Detection: Local Binary Patterns (LBP) and Haar Feature-based Cascade Classifiers.
    • LPR (License Plate Recognition): Morphology-based plate localization combined with Tesseract OCR.
    • Zone Monitoring: User-defined exclusion and inclusion zones for targeted event triggering.
  • 24/7 Recording: Continuous background recording with automatic retention management.
  • Interactive Dashboard: Modern web-based interface built with NiceGUI for camera management, live viewing, and event playback.
  • Automated Alerts: Event-driven notifications via Email (SMTP) and JSON Webhooks.
  • PTZ & Discovery: ONVIF-compatible device discovery and Pan-Tilt-Zoom control.
  • Privacy Controls: Dynamic privacy masking with Gaussian blurring.

Architecture

FFTrix is built on a "Classic CV" architecture, prioritizing deterministic behavior and low resource overhead:

  • Vision Engine: Pure OpenCV-based pipeline (no GPU/Deep Learning dependencies).
  • OCR Engine: Tesseract (via pytesseract) for text and plate recognition.
  • Database: SQLite for configuration, user management, and event logging.
  • GUI: NiceGUI (FastAPI + Vue.js + Quasar) for a responsive management interface.

Installation

FFTrix can be installed directly from PyPI:

pip install fftrix

Or using uv as a tool:

uv tool install fftrix

Prerequisites

  • Python 3.14 or higher.
  • Tesseract OCR: Required for LPR and OCR features. Install it via your system package manager (e.g., apt install tesseract-ocr or brew install tesseract).
  • Docker (for secure deployment): NOTE: Although you can replicate the deployment process without Docker, it will not be supported by me or anyone else from my team.
  • ngrok: Can be implemented for remote access. While not officially supported, you can contact the developer for guidance.

Quick Start

Launch the FFTrix surveillance server:

fftrix serve --ui 

The dashboard will be available at http://localhost:8080.

Default Credentials

  • Username: admin
  • Password: admin (Note: A password change is required upon first login)

CLI Usage

FFTrix includes a Click-based CLI for server control and user management.

# Start headless server (no local browser launch)
fftrix serve --no-ui  # ***NOTE: The UI is REQUIRED for configuration of watermarking and zone configuration but once configured the server can be run headless***

# Provision a new operator
fftrix user add <username> --role [admin|viewer]

# Emergency reset (wipes all users, restores admin:admin)
fftrix user reset-admin

Configuration

Configure the notification engine via environment variables:

Variable Description
FFTRIX_SMTP_HOST SMTP server address
FFTRIX_SMTP_PORT SMTP port (e.g., 587)
FFTRIX_SMTP_USER SMTP username
FFTRIX_SMTP_PASSWORD SMTP password
FFTRIX_ALERT_FROM Sender email address

Tech Stack

Development

If you want to contribute to FFTrix start by forking the repository then checking the requirements listed in the CONTRIBUTING.md file.

# Clone the repository
git clone https://github.com/yourusername/fftrix.git
cd fftrix

# Sync dependencies using uv
uv sync

License

MIT License

Metadata

Release files for fftrix 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fftrix 1.4.0
File Size Uploaded Provenance Actions
fftrix-1.4.0.tar.gz 30.0 kB Without provenance Details for fftrix-1.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fftrix 1.4.0
File Interpreter ABI Platform Actions
fftrix-1.4.0-py3-none-any.whl Python 3 none any Details for fftrix-1.4.0-py3-none-any.whl

Total release size: 65.2 kB

Release files / fftrix-1.4.0.tar.gz

Download URL fftrix-1.4.0.tar.gz
Size 30.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5a98ba592f94ba82e95854cec321799c8ce5e7a0f832211779c4f3edcba1fb51
BLAKE2b-256 checksum
How to use checksums
ccd61845ffe93f4af74fd9ed3d5efbe5e7d9890d68d239058d2bf44cee0ebe63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / fftrix-1.4.0-py3-none-any.whl

Download URL fftrix-1.4.0-py3-none-any.whl
Size 35.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dde76e7adeeca9caad71c94c64c3d66a5543e759bb55c8811ea47cd98da43f86
BLAKE2b-256 checksum
How to use checksums
69da4d74e9a21a5589e0c8d2b94ab2446e2d2c79fe01ecd191db9a79e7d3473b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for fftrix 1.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page