Build railway scenes.
Generate training data.
Blender scenes provide controlled examples of trackside shelters for landmark detection.
Architecture
My LangGraph orchestration
Turn a scene request into a checked, reproducible dataset sample.
Scene state
The scene specification appears here after generation.
Orchestration graph
Routing & implementation notes
job_idseedsensor_configscene_specasset_idsvalidation_errorsattempt_countoutput_pathsScene validation routes passing jobs to simulation. Failed geometry checks route to a repair agent, which proposes a targeted edit and returns to construction. After three repair attempts, the job stops for manual review. Dataset checks route accepted samples to export and failures to manual review.
Agents handle planning and repair; Python checks geometry and exported labels. Blender edits run serially. Save the seed and scene specification for repeatable jobs. This is my LangGraph orchestration design.
Build notes & technical detail
The problem
Trackside equipment shelters, or bungalows, are candidates for railway landmarks when GNSS is unavailable. Real recordings are costly to collect and label across different distances, viewpoints, and occlusions.
The approach
Construct synthetic railway scenes in Blender with known object geometry. Separate scene construction from point-cloud simulation, annotation export, dataset validation, and detector training.
The engineering decision
A rendered image is not a LiDAR scan. The pipeline needs an explicit sampling method, and exported points and labels must agree on coordinate frames, dimensions, and orientation.
What the work supports
Controlled variations for landmark-detection data. Detecting a shelter is one stage; associating it with a specific known landmark remains a separate localization step.
Agent orchestration
My LangGraph workflow uses a planner to create a structured scene specification, a construction agent to operate Blender, deterministic geometry and visibility checks, and a repair stage with bounded retries. Simulation and export remain code-driven workers.
Save scene specifications and seeds for reproducibility, serialize edits to a shared Blender scene, and keep related sequences together when splitting datasets. The orchestrator separates agent planning and repair from deterministic geometry checks and export.


