How to Run a Viewport-Only Application Without Loading the Full Editor

Isaac Sim Version 5.0.0

Operating System Windows 10/11

GPU Information

  • Model: NVIDIA GeForce RTX 4070 Ti

  • Driver Version: Latest

Topic Description How to Run a Viewport-Only Application Without Loading the Full Editor

Detailed Description I am looking for the official method to run an Isaac Sim application in a true “viewer-only” mode. My goal is to launch an application that displays only the simulation viewport, without loading the full editor application at all.

Currently, my script successfully launches the application and then programmatically hides the editor UI elements to create a viewer-like appearance. However, this approach still loads the entire editor in the background, which is inefficient for a standalone runtime application.

I am seeking a more direct and lightweight method to bypass the editor entirely and launch directly into a viewport. This would be crucial for creating efficient, distributable runtime applications for end-users.

Steps to Reproduce My current workaround, which loads the editor and then hides it, is as follows:

  1. Create a Python script that launches SimulationApp with {"headless": False}.

  2. The script loads the full Isaac Sim editor environment.

  3. After the editor is loaded, the script iterates through all UI windows and hides them, leaving only the viewport visible.

  4. APIs are then used to disable selection and interaction within the viewport.

  5. This is run via python.bat your_script.py.

This process achieves the visual goal but does not prevent the initial loading and resource consumption of the full editor.

Error Messages Not applicable. This is a request for guidance on best practices for creating a lightweight runtime.

What I’ve Tried My current implementation successfully mimics a viewer by modifying the full editor after it has loaded. This includes:

  • Hiding all windows except the “Viewport” using omni.ui.Workspace.show_window().

  • Disabling interactions using omni.kit.viewport.utility.disable_selection() and disable_context_menu().

  • Blocking object picking using omni.usd.get_context().set_pickable("/", False).

Here is a summary of the script:

from omni.isaac.kit import SimulationApp
import omni.ui
import omni.kit.viewport.utility as vutil
from omni.isaac.core import World
from omni.isaac.core.utils.stage import open_stage

simulation_app = SimulationApp({“headless”: False})
simulation_app.update() # Wait for UI to initialize

for win in omni.ui.Workspace.get_windows():
if “Viewport” in str(win):
omni.ui.Workspace.show_window(str(win), True)
else:
omni.ui.Workspace.show_window(str(win), False)

world = World()

while simulation_app.is_running():
world.step(render=True)

simulation_app.close()

Additional Context My core questions are focused on achieving a true, editor-less runtime:

  1. Is it possible to launch an Isaac Sim application that shows only the viewport, without loading the full editor UI in the first place?

  2. If so, what is the official method? Does it involve a specific launch flag, a minimal .kit file configuration that excludes editor extensions (omni.kit.editor, etc.), or a different entry point than SimulationApp?

  3. If a minimal .kit file is the recommended path, could you provide a basic template or guidance on which extensions are essential for a viewport-only simulation application?

You need to remove a lot of the extensions from the kit file and take it down to the bare minimum. You can also just load the full viewer and just make a preset layout file that you load on startup. You can do this in the kit file. Why are you trying to load it, without loading the rest of the app? For load time?

You can also just hide everything you do not want as a new layout. Start by hiding everything you don’t want. Then just save the layout to a file. Then save it as “quick save” and to load it back use “quick load”. Or Ctrl + 8

We have a viewer only file, called USD Viewer for kit 108. You can build that from the kit app template. NVIDIA-Omniverse/kit-app-template: Omniverse Kit App Template

Also, if you trying to distribute a PAID APP, you cannot do this without the correct licensing. This is against our EULA agreement. You are not authorized to distribute a kit runtime, without a commercial license agreement from NVIDIA. You would need to contact us first. Isaac Sim is open source to use, but not to distribute. You are only authorized to distribute your OWN code based on your own extension.

“Licensing is required when businesses are productizing or deploying solutions built on NVIDIA technology”

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