OmniAccelerANT
An inference engine with a Flutter/Dart frontend and a Rust/C++ backend, showcasing GStreamer capabilities enhanced with AI.
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/Widgets/sqlite3_healthcheck_widget
- Pages/Blog/blog_page
- Pages/CameraSettingsPage/camera_settings
- Pages/CameraSettingsPage/camera_settings_page
- Pages/CameraSettingsPage/coco_classes
- Pages/DataPage/BlockOverviewPage/block_overview_page_config
- Pages/DevicePage/device_page
- Pages/DevicePage/esp32_controller
- Pages/Footer/Pages/configs/privacy_policy_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/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