Hi! I’m trying to bring Isaac Sim in its PIP format to be used within a docker container.
I have some questions and I know it’s experimental, but if we can get these answered it may also help other people trying it now, or it may be useful as feedback to leave the experimental tag behind soon.
The questions are:
Which are the cache/logs paths when running this way? Are they configurable? I found out some cache is stored into .local/lib/python3.10/site-packages/omni/cache, but not sure if that’s all, or where the logs are. The idea is to have them mounted to avoid re-compiling shaders.
Which are the minimum needed pip packages to bring up a SimulationApp()? I’ve tried with isaacsim-app, isaacsim-core and isaacsim-kernel (plus the extscache- packages) and it seems it’s not enough since the USD library is not included. A lot of other packages (and I think punctually isaacsim-rl) had to be installed for it to work as expected. Also, it seems there’s a package that depends on the ROS 1 bridge, so even tho I only want to use ROS 2, I always end up with the ROS 1 bridge installed as well.
What is the base image of the isaacsim:4.0.0 docker image? If I wanted to craft myself my minimal image based on Ubuntu 22, should I instead start from one of the opengl images, or is there any other dependency I’m missing?
Also, the PATH_TO_PYTHON_ENVIRONMENT/lib/site-packages/omni/cache may store some extensions that are not included in the isaacsim-extscache-* packages (if any).
“Isaac Sim - Python packages” is an experimental feature and currently you need to install almost all the packages (the full Isaac Sim version, easily using pip install isaacsim --extra-index-url https://pypi.nvidia.com). Future releases will have a better decoupling between packages.
Hi @christianbarcelo, for now, we recommend using the Isaac Sim 4.0.0 container on NGC as a base container. The /isaac-sim folder in the container can be removed to reduce size and use the pip install instead.
If you would like to try create a base container from scratch, you can start with a CUDA container and add Vulkan to it. This is not fully tested yet but we may do in the future.
Everything I’m answering below is explicitly about the PIP packages, taking into account I’m using them in a docker environment.
Regarding (1), seems like logs in Linux should be saved in ~/.nvidia-omniverse/logs/Kit/Isaac-Sim, that’s fine. But, cache should be saved under ~/.cache/ov/Kit, but that folder remains empty. In ~/.cache/ov you can find the _cache.lock, and two dirs client and texturecache, both with a _cache.json inside.
The point is, if I mount ~/.cache/ov/Kit, every time I restart the container, Isaac Sim requires a long time to build the cache. If I instead mount the folder mentioned above (~/.local/lib/python3.10/site-packages/omni/cache) as the cache is generated there, only the first time I open the SimulationApp build the cache, then bringing up the simulator is something of a couple of seconds. So the request would be, if the folder I’m mounting is the right one, it could be documented both in the link you shared and specifically in the PIP packages docs (here, unless there’s a way of changing the cache path.
(2) Understandable, even tho the decoupling is not really decoupling that much, having the option of using the simulator as a normal pip package is being really useful, so I appreciate the effort the team is giving to this.
(3) Specifically the version from that repo that uses Ubuntu 22 has the actual isaac-sim image used as a base, and that’s what I was trying to avoid, but @Sheikh_Dawood 's answer is exactly what I was looking for, I had been checking the CUDA GL tags looking for 22.04 but hadn’t realized about the just CUDA registry that does include images for 22.04.
So, thank you so much for taking the time to answer (2) and (3) @Sheikh_Dawood and @toni.nv ! And just wondering if (1) works as positive feedback to add that information to the docs.