How thien-lee-44/synthetic-data-engine works
This is a Python 3D scene editor and synthetic-data engine. Users author ECS-based scenes in the Qt interface, manipulate and render them through the engine facade, then save/export projects or generate labeled computer-vision datasets and run benchmarks. The graph preserves the documented editing, rendering, animation, asset, serialization, and synthetic-data capabilities. Some UI and rendering internals are unsampled; their connections are omitted unless supported by the README or source index.
Main entry points: engine.py Engine facade · scene_manager.py Scene manager · ui Authoring UI · main.py App bootstrap
Components 22
Application
- App bootstrap
src/app/main.py - App configuration
src/app/config.py - App events
src/app/events.py - Error handling
src/ui/error_handler.py
Scene Editing
- Authoring UI
src/ui - Engine facade
src/engine/engine.py - Viewport interaction
src/engine/core/interaction_manager.py - Scene manager
src/engine/scene/scene_manager.py - Entities & components
src/engine/scene/entity.py - Semantic annotations
src/engine/scene/components/semantic_cmp.py - Project & undo state
src/engine/scene/managers/serialization_manager.py
Rendering & Assets
- Editor renderer
src/engine/graphics/editor_renderer.py - Dataset renderer
src/engine/graphics/synthetic_renderer.py - Asset resources
src/engine/resources/resource_manager.py - Procedural geometry
src/engine/geometry/primitives.py - Scene OBJ export
src/engine/resources/exporter.py
Animation
- Animation system
src/engine/scene/animator.py - Animation tracks
src/engine/scene/components/animation_cmp.py
Synthetic Data
- Dataset generator
src/engine/synthetic/generator.py - Dataset exporters
src/engine/synthetic/exporters - CV benchmark
src/engine/synthetic/cv_benchmark.py
Other components
- Editor user
Connections 30
- Editor user → Authoring UI: authors scenes
README.md - App bootstrap → Authoring UI: starts
src/app/main.py - App bootstrap → Engine facade: creates
src/app/main.py - App bootstrap → App events: emits refresh events
src/app/main.py - Authoring UI → Engine facade: issues commands
README.md - Engine facade → Scene manager: delegates scene operations
src/engine/engine.py - Engine facade → Viewport interaction: initializes
src/engine/engine.py - Engine facade → Editor renderer: initializes
src/engine/engine.py - Engine facade → Dataset renderer: initializes
src/engine/engine.py - Engine facade → Asset resources: loads project assets
src/engine/engine.py - Engine facade → Procedural geometry: spawns primitives
src/engine/engine.py - Engine facade → Animation system: owns animator
src/engine/engine.py - Engine facade → Dataset generator: runs generation
src/engine/engine.py - Engine facade → CV benchmark: runs benchmark
src/engine/engine.py - Engine facade → Scene OBJ export: exports scene
- Scene manager → Entities & components: registers entities
src/engine/scene/scene_manager.py - Scene manager → Project & undo state: routes serialization
src/engine/scene/scene_manager.py - Scene manager → Semantic annotations: routes semantic edits
src/engine/scene/scene_manager.py - Scene manager → Animation tracks: routes animation edits
src/engine/scene/scene_manager.py - Project & undo state → Asset resources: records project assets
src/engine/scene/managers/serialization_manager.py - Project & undo state → Entities & components: reconstructs entities
src/engine/scene/managers/serialization_manager.py - Animation system → Animation tracks: evaluates tracks
src/engine/scene/animator.py - Editor renderer → Asset resources: uses cached assets
src/engine/graphics/editor_renderer.py - Editor renderer → Procedural geometry: uses geometry
src/engine/graphics/editor_renderer.py - Dataset renderer → Semantic annotations: reads annotations
src/engine/graphics/synthetic_renderer.py - Engine facade → Dataset renderer: renders dataset frames
src/engine/engine.py - Dataset generator → Dataset exporters: writes dataset outputs
src/engine/synthetic/generator.py - Dataset generator → Semantic annotations: reads scene labels
src/engine/synthetic/generator.py - Editor user → CV benchmark: requests dataset evaluation
README.md - Error handling → Authoring UI: shows error dialogs
src/ui/error_handler.py