Config Generation
A config JSON can be generated by a variety of systems. I opted for various Python recipe scripts. Some examples would be "convoy_column", "forest_patrol", "trench_network" and "occupied_village".
For example, a "forest patrol" recipe at a high level would generate a forest, clear out a section with a road, and add a convoy of vehicles through the clearing. Things like environment, season, lighting and spatial randomization would all be handled by the recipe and made easier with a library attached to the tool.
Bundled with the tool is a library to make writing and constructing these recipes easier. Making it feel more like writing a script for a 3D scene rather than writing a JSON file. The tool comes prebuilt with 5 different recipes but also allows users to write their own.
One design aspect of the JSON config system being the sole source of truth is that this is not the only way to generate configs. For example there could be a visual painting config tool. Potentially even an automated system to ingest a real image and output a recipe to generate similar synthetic data. The possibilities are endless.
Another design aspect of this is the easy configurability of the scene. By doing this outside of Unreal and in Python instead, it allows for much faster iteration times as well as the ease of use for people unfamiliar with Unreal.