Hot Reloading from Docker

Hello! I have been trying to work my way through tutorials, and I am using IsaacSim on the server inside Docker, and connecting to it with Omniverse Streaming client. Naturally, VSCode does not open when I press “open source code” button, but I am able to connect to the server from my local computer and change the code (SSH + VSCode dev containers). But I have to restart the application for changes to take place. And even then I am unable to add the cuboid (like in hello world example). Am I doing something wrong? Is there a way to enable hot-reloading?

Sincerely
Alex

Update: Eventually when I change the code, it begins working like it should, but I have to restart the headless app every time. Is there a way to do something a bit quicker?

1 Like

I have the same problem. I have found this to be container-related rather than anything to do with SSH. If I edit the file on the server, outside of the container, hot reloading still does not work.

I also found that disabling and enabling the extension is enough to reload it, without needing to restart the whole container.

Hi! Thanks for your reply! Could you please advise me how do you disable / enable the extension? I usually just restart the simulation application, not the whole container. I have to restart the container sometimes when something crashes and is too stubborn to load back.

Window > Extensions > (3rd Party) then find your extension and then toggle it off then on again.

1 Like

Hey, have you figured out something? I am facing the same problem.

I have to close the app and open it again, that’s it. It takes approx 10-15 seconds every time I make a change.

Restarting of app is of course working. However I am developing in RL examples and the restart takes a long time. Thus I am trying to figure out a faster option.

Bump on this thread. Also having the same issue. It doesn’t matter if I run Isaac headless or with X11 forwarding from the docker container.

I gave up using the cloud and moved on a PC installation of Isaac Sim. I have also found that there are many ways of breaking code such that the only recourse is to restart Isaac sim. A local PC is much easier to manage the restarts.

I am having the same problem with the HelloWorld tutorial, using the same setup. Through VSCodes (ssh-ing to a server + using Dev Container extension) I have added a cuboid to the scene in the hello_world.py file. However, the changes are not reflected in the stage, even if I relaunch again Isaac sim in headless mode in the container. I have also tried to toggle the enable feature for the extension (in the Window > Extensions > (3rd Party)) but I can’t find the HelloWorld extension in that menu. Are there any other options to try?

In addition, I have noticed that the HelloWorld example (without the cube) takes a long time to load and the UI gets blocked. Is that normal?

Unfortunately I couldn’t find a solution - and I’m also disappointed at NVIDIA’s lack of response. I’ve also attended their office hours last week and called out that my forum posts weren’t getting any response.

Pinging @Raffaello to see if he can help.

Right now I’m using the python standalone workflow as opposed to extensions - given there’s no hot reloading via Docker (and I’m set on using Docker) I couldn’t really reason the benefit of using extensions.

I’m unsure about your slow loading problem. There is an issue with the latest release (2023.1.0) where it will hang for ~2 minutes if you don’t have a local Nucleus server (optional for managing assets/sharing work) installed. More here:

I have a set up where in my Dockerfile I copy in a local version of nucleus.py that I modified given the above.

@Ashis.Ghosh - May I know the reason for using older Isaac Sim version? the latest one is 2023.1.1.

Also, apologies for the lack of response because dev team is currently working on the upcoming Isaac Sim release.

Also, extension workflow mentioned in the doc is supporting hot reloading!
https://docs.omniverse.nvidia.com/isaacsim/latest/isaac_gym_tutorials/tutorial_gym_extension_workflow.html

Yet to check on what are the issues with docker.

Whoops - I am actually using 2023.1.1 – I just copied the version from the post I linked.

I’m not sure what you meant by:
“Also, extension workflow mentioned in the doc is supporting hot reloading!”

  • I started off with the extension workflow
  • Found that using docker the hot reloading did not work. Found this thread where that seemed to be confirmed as the case.
  • I transitioned to using the standalone python workflow.

But really my goal has been to find an asynchronous way to work with Isaac Sim and rapidly develop. Extensions allow a way to do that (can press buttons to do things) but the developer experience is really bad when using docker (not hot reloading, and the setup to link to vscode outside of docker when you click to open a script wasn’t clear).

I’m going a little off topic but I’ll link my other (unanswered) forum post about trying to interact with Isaac Sim asynchronously here: FastAPI + Python Standalone? - #4 by Ashis.Ghosh

The issue for this thread is the developer experience to do extensions in Isaac Sim + Docker is difficult. Specifically, the hot reloading feature doesn’t seem to work in a dockerized environment.

p.s. I’m in the Inception program - I don’t know if that helps with this post getting attention

tagging for help getting support on this topic inception