Reducing dependencies for extensions in headless Kit container

We have implemented many Omniverse extensions that will be used in two different contexts:

  1. Within an interactive Isaac Sim session
  2. Within a headless Kit container without any UI

In the first setup, there would be some functionality we would access using a UI implemented in the extension’s own window. In the second setup, we would use the functionality programmatically.

We would like to reduce the number of dependencies (on other extensions) when we run the headless container to a minimum. Especially we would like to have no omni.ui dependencies when we run the container, but include them when we run the extension interactively.

Is there any elegant way to achieve this?

Thanks for any help

Hi @bruno.vetter. You’ll find many examples in NVIDIA-authored extensions where we split a “feature” into UI, core, and sometimes bundle extensions. This way you can decouple your business logic from your UI. It also should help with what you’re after in that your UI extension is the one that declares theUI dependencies and when you run your headless Kit, you can just not include your UI extension.

Thanks @mati-nvidia, this is a good suggestion!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.