hoangsonww / hoangsonww/AegisVision-Computer-Vision-System

Feature: Synthetic environment generator for repeatable demo and test streams

Open
#21 0 comments 0 reactions 1 assignee Claimed by @hoangsonww View on GitHub
bug documentation enhancement good first issue help wanted question
Dominant language
Go
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Summary
Add a synthetic environment generator that produces repeatable video streams, detections, events, and edge cases for demos, integration tests, and local development.

## Problem / Opportunity
The project has synthetic detector fallbacks and load tests, but there is no high-level generator for realistic, repeatable CV scenarios. Contributors and operators need deterministic streams that exercise occlusion, line-crossing, dwell, crowding, low light, dropped frames, and model disagreement without requiring private camera footage or GPU hardware.

## Proposed Feature
Create a scenario-driven synthetic environment package and CLI that can emit test streams or frame descriptors, seed expected detections/events, and run through the existing dataplane pipeline. It should support reusable scenario definitions checked into the repo and be usable by CI, demos, docs, and console screenshots.

## Scope
- Define a scenario file format for actors, paths, zones, timing, quality impairments, and expected events.
- Build a generator that can produce deterministic frame descriptors and optional lightweight rendered frames.
- Integrate with dataplane-runner/inference-router synthetic modes.
- Add example scenarios for dwell, line-crossing, zone-enter, occlusion, and stream degradation.
- Add docs and a Taskfile target for running scenarios locally.
- Add CI-friendly tests that validate expected events from generated scenarios.

## Acceptance Criteria
- [ ] Developers can run a documented command to start at least five named synthetic scenarios.
- [ ] Scenario outputs are deterministic for a fixed seed.
- [ ] Generated streams can exercise existing rule operators end-to-end.
- [ ] CI can validate expected event counts and representative payload fields without GPU hardware.
- [ ] Docs explain how to add a new scenario and when to use synthetic versus real footage.
- [ ] The console can be pointed at generated scenarios for local demos.

## Non-Goals
- Photorealistic simulation or replacement of real-world validation.
- Training production models from synthetic data in the first version.
- Adding a heavy game engine dependency.

## Dependencies / Risks
- Rendered frames should remain optional to keep CI fast.
- The scenario format should not duplicate the pipeline DAG schema.
- Expected events must be stable enough for tests without hiding real regressions.

## Open Questions
- Should scenarios produce actual media files, live streams, or both?
- Should this live under tools, pkg/dataplane, or a dedicated service-free module?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.