Only show Viewport and Extension UI upon loading the extension

Hello.

I am trying to create an Extension where the user has access to only the functionalities provided in the Extension.

In other words, I would like to display only the Viewport window on the left half of the screen and the Extension UI on the right half of the screen.

I would like to hide or make disappear the other windows that are loaded as default upon starting Isaac Sim, such as the “Content”, “Console”, “Samples”, “Materials” etc on the bottom left, and also the “Stage”, “Layer”, “Render Settings” on the top right, the “Property” tab on the bottom right, while only showing the Viewport and the Extension UI window.

Is there a way or an example code snippet that I could add on to my Extension that would hide all these tabs/windows, except for the Viewport and the Extension UI, upon loading the scene from my Extension??

I tried adding the code block suggested by @Hammad_M in the post below but it just breaks the Isaac Sim application.

Maybe I am adding the block of code in the wrong place?

Any help would be much appreciated. Thank you.

@jaeyeun going back to @Hammad_M’s snippet, rather than keeping the if statement as is, this was what worked for me: (changing from variable to string in the condition bool on line 3)

windows = omni.ui.Workspace.get_windows()
for window in windows: 
    if str(window) =="Viewport" or str(window) == "Script Editor":
        omni.ui.Workspace.show_window(str(window), True)
    else:
        omni.ui.Workspace.show_window(str(window), False)

here is additional information about the omni.ui.Workspace class for your convenience - Workspace — omni.ui 2.16.8 documentation

if you have a custom extension, you may need to make sure it’s already opened somewhere in the app layout/workspace for it to be registered into the initial array.

1 Like

Hi again! @Simplychenable

Thank you so much for the help!
Now that I can upload images I can finally be more clear about what I meant!

After adding that block of code somewhere, I got something like this when I click on the “Load” button of the extension.

As you can see the Menu bar is gone along with the widget(not sure if thats what its called) that is normally placed on the left of the Viewport and I am literally left with just the Viewport and the Extenion UI.
(My fault in not being articulate on my original post but I think I can do a better job this time with screen shots.)

Would you have any idea on how to make the screen look like this in the image below when I click on the “Load” button on the Extension?

So in other words…
1. Keep the menu bar
2. Keep the widget on the left.
3. Keep the Viewport (preferably have it fixed on the left side)
4. Keep the Extension UI (preferably have it fixed on the right side)

I am trying to learn how to use Isaac Sim and with the lack of proper documentation and examples available, I am really struggling here.

I would be grateful for any guidance or assistance!

Thank you!

i haven’t done any testing and am simply thinking out loud here - would it be simpler if you were to have a custom layout (.json) that loads when you run the extension? and if necessary, capture the original layout the users was using so it doesn’t require them to reconfigure their layout back to the way they had it. in retrospect, i believe the layout “quick save” and “quick load” does this exact thing.

image

the benefit is that you don’t need to hardcode anything and can always go back and adjust the custom layout that you’d like anytime.

1 Like

Thanks for the advice. Ill def try that!