# relativity1395/evnt_work architecture

> Architecture diagram of the GitHub repository relativity1395/evnt_work, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/relativity1395/evnt_work
- Repository: https://github.com/relativity1395/evnt_work

## Overview

This repository is event-camera software for ingesting DVXplorer events, detecting and visualizing features, and developing event-based optical-flow and tracking/state-estimation algorithms. The visible driver opens the camera, reads event packets, uses the fast detector, and renders detected features; README also describes an optical-flow-filter visualization. The tree identifies additional algorithm stages, but their source was not sampled, so links among them are omitted rather than inferred. The sampled EVIO entry point is only a stub.

Main entry points: [`src/DVX_Drivers.cpp`](https://github.com/relativity1395/evnt_work/blob/main/src/DVX_Drivers.cpp) (DVX event driver), [`src/dvxplore_simple.cpp`](https://github.com/relativity1395/evnt_work/blob/main/src/dvxplore_simple.cpp) (Flow visualization), [`include/Types.hpp`](https://github.com/relativity1395/evnt_work/blob/main/include/Types.hpp) (Event and IMU types), [`third_party/fast_detector.cpp`](https://github.com/relativity1395/evnt_work/blob/main/third_party/fast_detector.cpp) (Fast detector)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_capture["Capture and visualization"]
  node_driver["DVX event driver<br/>[DVX_Drivers.cpp]"]
  node_event_types["Event and IMU types<br/>[Types.hpp]"]
  node_detector["Fast detector<br/>[fast_detector.cpp]"]
  node_display["Feature display<br/>[DVX_Drivers.cpp]"]
  node_simple_flow["Flow visualization"]
end

subgraph group_algorithms["Event vision algorithms"]
  node_flow["Optical flow<br/>[OpticalFlow.cpp]"]
  node_alignment["Template alignment"]
  node_outlier["Outlier rejection"]
  node_temporal["Temporal window<br/>[TemporalWindow.cpp]"]
  node_feature["Feature state<br/>[Feature.cpp]"]
  node_weighting["Landmark weighting<br/>[WeightDist.cpp]"]
end

subgraph group_state["Tracking and estimation"]
  node_tracker["Feature tracker<br/>[FeatureTracker.cpp]"]
  node_estimator["State estimator<br/>[StateEstimator.cpp]"]
  node_evio["EVIO core<br/>[EVIO.cpp]"]
end

node_operator(("Camera operator"))
node_camera["DVXplorer camera"]

node_operator -->|"starts capture"| node_driver
node_driver -->|"opens and reads"| node_camera
node_camera -->|"sends packets"| node_driver
node_driver -->|"creates events"| node_event_types
node_driver -->|"tests features"| node_detector
node_driver -->|"renders features"| node_display
node_operator -->|"runs visualization"| node_simple_flow
node_simple_flow -->|"opens and reads"| node_camera
node_camera -->|"sends packets"| node_simple_flow

click node_driver "https://github.com/relativity1395/evnt_work/blob/main/src/DVX_Drivers.cpp"
click node_event_types "https://github.com/relativity1395/evnt_work/blob/main/include/Types.hpp"
click node_detector "https://github.com/relativity1395/evnt_work/blob/main/third_party/fast_detector.cpp"
click node_display "https://github.com/relativity1395/evnt_work/blob/main/src/DVX_Drivers.cpp"
click node_flow "https://github.com/relativity1395/evnt_work/blob/main/src/OpticalFlow.cpp"
click node_alignment "https://github.com/relativity1395/evnt_work/blob/main/src/TemplateAlignment.cpp"
click node_outlier "https://github.com/relativity1395/evnt_work/blob/main/src/OutlierRejection.cpp"
click node_temporal "https://github.com/relativity1395/evnt_work/blob/main/src/TemporalWindow.cpp"
click node_feature "https://github.com/relativity1395/evnt_work/blob/main/src/Feature.cpp"
click node_weighting "https://github.com/relativity1395/evnt_work/blob/main/src/WeightDist.cpp"
click node_tracker "https://github.com/relativity1395/evnt_work/blob/main/src/FeatureTracker.cpp"
click node_estimator "https://github.com/relativity1395/evnt_work/blob/main/src/StateEstimator.cpp"
click node_evio "https://github.com/relativity1395/evnt_work/blob/main/src/EVIO.cpp"
click node_simple_flow "https://github.com/relativity1395/evnt_work/blob/main/src/dvxplore_simple.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_driver,node_event_types,node_detector,node_display,node_simple_flow toneBlue
class node_flow,node_alignment,node_outlier,node_temporal,node_feature,node_weighting toneAmber
class node_tracker,node_estimator,node_evio toneMint
class node_operator,node_camera toneIndigo
```

## Components

### Capture and visualization

- [DVX event driver](https://github.com/relativity1395/evnt_work/blob/main/src/DVX_Drivers.cpp): `src/DVX_Drivers.cpp`
- [Event and IMU types](https://github.com/relativity1395/evnt_work/blob/main/include/Types.hpp): `include/Types.hpp`
- [Fast detector](https://github.com/relativity1395/evnt_work/blob/main/third_party/fast_detector.cpp): `third_party/fast_detector.cpp`
- [Feature display](https://github.com/relativity1395/evnt_work/blob/main/src/DVX_Drivers.cpp): `src/DVX_Drivers.cpp`
- [Flow visualization](https://github.com/relativity1395/evnt_work/blob/main/src/dvxplore_simple.cpp): `src/dvxplore_simple.cpp`

### Event vision algorithms

- [Optical flow](https://github.com/relativity1395/evnt_work/blob/main/src/OpticalFlow.cpp): `src/OpticalFlow.cpp`
- [Template alignment](https://github.com/relativity1395/evnt_work/blob/main/src/TemplateAlignment.cpp): `src/TemplateAlignment.cpp`
- [Outlier rejection](https://github.com/relativity1395/evnt_work/blob/main/src/OutlierRejection.cpp): `src/OutlierRejection.cpp`
- [Temporal window](https://github.com/relativity1395/evnt_work/blob/main/src/TemporalWindow.cpp): `src/TemporalWindow.cpp`
- [Feature state](https://github.com/relativity1395/evnt_work/blob/main/src/Feature.cpp): `src/Feature.cpp`
- [Landmark weighting](https://github.com/relativity1395/evnt_work/blob/main/src/WeightDist.cpp): `src/WeightDist.cpp`

### Tracking and estimation

- [Feature tracker](https://github.com/relativity1395/evnt_work/blob/main/src/FeatureTracker.cpp): `src/FeatureTracker.cpp`
- [State estimator](https://github.com/relativity1395/evnt_work/blob/main/src/StateEstimator.cpp): `src/StateEstimator.cpp`
- [EVIO core](https://github.com/relativity1395/evnt_work/blob/main/src/EVIO.cpp): `src/EVIO.cpp`

### Other components

- **Camera operator**
- **DVXplorer camera**

## Connections

- Camera operator → DVX event driver: starts capture
- DVX event driver → DVXplorer camera: opens and reads
- DVXplorer camera → DVX event driver: sends packets
- DVX event driver → Event and IMU types: creates events
- DVX event driver → Fast detector: tests features
- DVX event driver → Feature display: renders features
- Camera operator → Flow visualization: runs visualization
- Flow visualization → DVXplorer camera: opens and reads
- DVXplorer camera → Flow visualization: sends packets
