Skip to content

GenieSim Generator: primitive_call generated objects cannot be processed by app.py #192

Description

@SSQaaa

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions