logo

OmniAccelerANT

An inference engine with a Flutter/Dart frontend and a Rust/C++ backend, showcasing GStreamer capabilities enhanced with AI.

Linux x64 · build + test Linux arm64 · build + test Windows x64 · build + test Windows arm64 · cross build + test Web · build + test Android · build + test Automatic Dependency Submission Dependabot Updates TopLang Donate Twitter YouTube

Official homepage

A Flutter/Dart app on a Rust/C++ inference core with GStreamer camera pipelines, for Windows, Linux, Android and the web: an end-to-end reference for cross-platform inference on desktop, web and embedded devices. ObservANT is the same stack as an installable camera that spots cats.

Highlights

  • An installable ObservANT: a .deb, AppImage, flatpak or Windows MSI that streams a camera to any browser and spots cats.
  • GStreamer WebRTC livestreaming with ready-to-use pipelines for USB and Raspberry Pi cameras.
  • GStreamer native GTK integration, for writing Linux AI inference apps.
  • ESP32-S3-EYE on-device cat detection, its USB protocol in Rust, shown on the app's Device page.
  • flutter_rust_bridge as the API boundary between the Dart UI and the Rust core.
  • Containerized builds in ANTfrastructure's images: a local run invokes the script CI invokes.

Quick start

git clone --recurse-submodules --branch develop https://github.com/Kataglyphis/OmniAccelerANT.git
cd OmniAccelerANT
pwsh -File scripts/windows/Invoke-LinuxLane.ps1   # the native Linux lane, in the family image

It needs pwsh 7 and nerdctl (Rancher Desktop on Windows). The other lanes, the Windows build and the host prerequisites: Getting Started. Only want ObservANT? A release's package installs it: a new camera in five steps.

Documentation

Topic Read
What it is, its feature status per platform, literature docs/source/overview.md
Prerequisites, the lanes, the API docs docs/source/getting-started.md
Container, Windows, Android, Raspberry Pi and web builds docs/source/platforms.md
ObservANT, the Rust webcam path and the WebRTC pipelines docs/source/camera-streaming.md
ESP32-S3 companion and camera docs/source/esp32.md
What each test proves, and what is not covered yet docs/source/testing.md
Gates, releases, local lanes, dependency upgrades docs/source/project-operations.md
Dependency and bridge updates docs/source/upgrade-guide.md
The other READMEs in the tree docs/source/readmes.md
Rules for agents and contributors AGENTS.md
Known work BACKLOG.md
Changes CHANGELOG.md

Contributing and contact

OmniAccelerANT is one of the Kataglyphis repositories, which share one way to contribute and one contact. Licence: MIT, see LICENSE.

Libraries

blog_dependent_app_attributes
js/gstwebrtc_api_interop
l10n/app_localizations
l10n/app_localizations_de
l10n/app_localizations_en
main
Pages/AboutMePage/about_me_page
Pages/AboutMePage/about_me_page_navbar_config
Pages/AboutMePage/Widgets/sqlite3_healthcheck_widget
Pages/Blog/blog_page
Pages/CameraSettingsPage/camera_settings
Pages/CameraSettingsPage/camera_settings_navbar_config
Pages/CameraSettingsPage/camera_settings_page
Pages/CameraSettingsPage/coco_classes
Pages/DataPage/BlockOverviewPage/block_overview_page_config
Pages/DevicePage/device_page
Pages/DevicePage/device_page_navbar_config
Pages/DevicePage/esp32_controller
Pages/Footer/Pages/configs/privacy_policy_config
Pages/LandingPage/landing_page_navbar_page_config
Pages/omni_screen_configurations
Pages/StreamPage/camera_peers
Pages/StreamPage/detection_status
Pages/StreamPage/dev_stats
Pages/StreamPage/gstreamer_pipeline
The native Stream page's GStreamer pipelines per source and platform, and the order it tries sources in.
Pages/StreamPage/observant_api_stub
Pages/StreamPage/observant_api_web
Pages/StreamPage/rust_webcam_view
Pages/StreamPage/stream_controller
Pages/StreamPage/stream_page
Pages/StreamPage/stream_page_navbar_config
Pages/StreamPage/visit_stats
Pages/StreamPage/webrtc_view
Pages/StreamPage/webrtc_view_stub
Routing/omni_router
settings/webrtc_settings
WebRTC and video settings, parsed from assets/settings/webrtc_settings.json.
utils/json_utils
utils/locale_utils