Activity Diagram#

In High Level Architecture components high level overview was performed. This chapter depicts flow interactions inside ArDaGen using activity diagram.

--- Flow Chart Architecture Diagram --- %%{init: { "theme": "base" } }%% flowchart TD subgraph Metron Shared hydra["Configs parsing through Hydra"] end subgraph NVIDIA Omniverse nucleus[("Nucleus")] isaac_sim_start[["Start Isaac Sim"]] load_ardagen_ext["Load ArDaGen Extension"] start_replicator[["Start OV Replicator"]] all_frames_generated{"All dataset <br> frames generated?"} render_new_frame["Render new frame"] end start_generation(["Run ArDaGen"]) end_generation(["Stop ArDaGen"]) hydra_config[("Hydra scenarios configs")] filesystem[("Filesystem")] hydra_omegaconf[/"Config as OmegaConf"/] has_scenario{"Has scenario?"} prepare_scenario["Prepare Scenario"] has_synth_worker{"Has Synthesizer Worker?"} prepare_synth_worker["Prepare Synthesizer Worker"] gather_synth_worker["Gather the worker into Master Synthesizer"] has_camera_setup{"Has Camera Rig?"} prepare_camera_rig["Prepare Camera Rig"] attach_writer["Attach synthetic data Writer"] app_synth_workers["Apply all Synthesizer Workers <br> from the Master Synthesizer"] write_synthetic_data["Save generated synthetic data <br> on filesystem"] hydra_config --> hydra start_generation --> hydra hydra --> hydra_omegaconf hydra_omegaconf -.-> isaac_sim_start hydra --> isaac_sim_start isaac_sim_start --> load_ardagen_ext hydra_omegaconf -.-> load_ardagen_ext load_ardagen_ext --> has_scenario has_scenario -- No --> end_generation has_scenario -- Yes, get Scenario --> prepare_scenario hydra_omegaconf -.-> prepare_scenario prepare_scenario --> has_synth_worker has_synth_worker -- Yes, get Synthesizer Worker --> prepare_synth_worker hydra_omegaconf -.-> prepare_synth_worker nucleus -.-> prepare_synth_worker prepare_synth_worker --> gather_synth_worker gather_synth_worker --> has_synth_worker has_synth_worker -- No --> has_camera_setup has_camera_setup -- Yes, get Camera Rig --> prepare_camera_rig has_camera_setup -- No --> has_scenario hydra_omegaconf -.-> prepare_camera_rig prepare_camera_rig --> attach_writer hydra_omegaconf -.-> attach_writer attach_writer --> start_replicator start_replicator --> all_frames_generated all_frames_generated -- No --> app_synth_workers app_synth_workers --> render_new_frame render_new_frame --> write_synthetic_data write_synthetic_data --> filesystem write_synthetic_data --> all_frames_generated all_frames_generated -- Yes --> has_camera_setup
--- Legend_Part1 --- %%{init: { "theme": "base" } }%% flowchart LR subgraph Legend db_legend[("Database")] action_legend["Action performed by a function or method"] subrutine_legend[["Process/subprogram"]] start_end_legent(["Program start/end"]) subgraph Component/Module/Package ... end end style Legend fill:#65BCD8,stroke:#545A5E,stroke-width:2px,color:#fff
--- Legend_Part2 --- %%{init: { "theme": "base" } }%% flowchart LR subgraph Legend start_legend(["Flow starting action"]) io_legend[/"Input / Output(JSON, data structure, etc...)"/] A-- interaction flow -->B C-. configs flow .->D legend_decision{"Decision"} end style Legend fill:#65BCD8,stroke:#545A5E,stroke-width:2px,color:#fff