hoangsonww / hoangsonww/AegisVision-Computer-Vision-System
Feature: Synthetic environment generator for repeatable demo and test streams
- 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
Assessment
This issue has not been assessed yet.