primitive_call generated objects cannot be processed by app.py
When using GenieSimGenerator to create scene objects through primitive_call, the generated primitive objects cannot be processed correctly by the current scene generation pipeline.
Objects loaded from GenieSimAssets contain an asset id, but objects generated by primitive_call do not contain this field. However, gen_scene_layout_info() assumes that every scene object has:
obj["info"]["info"]["id"]
As a result, scenes containing primitive objects fail during scene layout processing with the following error:
[INFO] Implementing primitive_call...
Traceback (most recent call last):
File ".../geniesim_generator/app.py", line 122, in <module>
main(args)
File ".../geniesim_generator/app.py", line 47, in main
scene_info, G = gen_scene_layout_info(scene_data)
File ".../geniesim_generator/helper.py", line 211, in gen_scene_layout_info
_id = obj["info"]["info"]["id"]
KeyError: 'id'
The issue is likely caused by gen_scene_layout_info() assuming that all scene objects originate from GenieSimAssets and therefore have a valid asset ID:
_id = obj["info"]["info"]["id"]
Objects generated through primitive_call should be supported by the same scene generation pipeline as asset-based objects, without requiring a GenieSimAssets ID.
primitive_callgenerated objects cannot be processed byapp.pyWhen using
GenieSimGeneratorto create scene objects throughprimitive_call, the generated primitive objects cannot be processed correctly by the current scene generation pipeline.Objects loaded from
GenieSimAssetscontain an assetid, but objects generated byprimitive_calldo not contain this field. However,gen_scene_layout_info()assumes that every scene object has:As a result, scenes containing primitive objects fail during scene layout processing with the following error:
The issue is likely caused by
gen_scene_layout_info()assuming that all scene objects originate fromGenieSimAssetsand therefore have a valid asset ID:Objects generated through
primitive_callshould be supported by the same scene generation pipeline as asset-based objects, without requiring a GenieSimAssets ID.