Skip to main content

Extension Points Overview

EagleEye is designed for extension. This guide helps you choose the right extension type for your goal.

Decision guide

GoalExtension typeLocation
Add lightweight frame processingSecondary operationsrc/secondary_operations/
Add ML model inference or complex orchestrationMain operationsrc/main_operations/definitions/
Integrate a new accelerator (TPU, FPGA, etc.)New devicesrc/utils/device_registry.py + model/runtime support
Add performance-critical frame processing in RustRust modulesrc/rust_implementations/
Add a new page or tool to the WebUINew UI tabsrc/webui/

Extension complexity

TypeTypical complexityRestart required
Secondary operationLowYes
Main operationMediumYes
New deviceMediumYes
Rust moduleHigh (Rust knowledge needed)Yes (+ recompile)
New UI tabMedium (JS + Handlebars)No (just rebuild frontend)

Common extension checklist

For any new operation (main or secondary):

  1. Implement the class extending OperationInstance
  2. Create the config def JSON (_config_def.json)
  3. Add to a pipeline config (via WebUI or JSON)
  4. Restart the backend

For devices:

  1. Extend DeviceRegistry.discover with a canonical descriptor.
  2. Add model-artifact selection and operation/runtime support.
  3. Reference the canonical device ID in operation action_params.