How to always enable python scripting components

Isaac Sim Version

4.5.0
4.2.0 (docker container)
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: RTX A4000
  • Driver Version: 550.90.07

Topic Description

Detailed Description

(Describe the issue in detail, including what you were trying to do, what you expected to happen, and what actually happened)

Steps to Reproduce

  1. Create a world.
  2. Add a python scripting component to a prim.
  3. Save and Reopen the world.

Screenshots or Videos

Is there a way to disable this prompt? The goal is to be able to automatically start Isaac Sim with my SimulationApp python script and allow it to start playing, however, this scripting component prompt seems to get in the way of any progress until someone clicks Yes.

I believe this warning is for safety concern. Let me reach out to the internal team to see if there is a way to disable this warning.

Could you please try --/app/omni.graph.scriptnode/enable_opt_in=false or --/app/omni.graph.scriptnode/opt_in=true?

I did the following steps:

  1. /isaac-sim/isaac-sim.sh --/app/omni.graph.scriptnode/opt_in=true --allow-root
  2. Switched to a USD file/scene with python scripting components attached.
  3. Still saw the yes/no prompt.

The same result occurred when I did the other option.

Note, I am using Isaac 4.2. Does using those flags work for you? Perhaps I am doing it wrong.

Additionally, I usually run Isaac Sim via a python script that creates a SimulationApp object. I am unsure how I would use the flag in that context. Would I need to modify the omni.isaac.sim.python.kit file in /isaac-sim/apps?

@alex.perez1 could you please share your script and USD file with python scripting components? Let me try it on my side as well.

Also 4.2 is EOL. Please try with Isaac Sim 4.5+. We will also officially release 5.0 by the end of this month. Thanks

Unfortunately, I cannot share my files.

But this behavior can be replicated by taking any empty USD world, adding a python scripting property to a prim in that world, adding any empty python script to that python scripting property, and then saving. When you re-open the world you will see the prompt appear. I replicated this behavior in an isaac-sim 4.5 docker container.

I tried launching via :

  1. /isaac-sim/isaac-sim.sh --/app/omni.graph.scriptnode/opt_in=true --allow-root
  2. /isaac-sim/isaac-sim.sh --/app/omni.graph.scriptnode/enable_opt_in=false --allow-root

Hi @zhengwang! I am just following up on this to see if there was any further insight.

1 Like

Also having this issue. Please advise on how to get past this so launching the simulation can be automated.

You might consider examining the extscache/omni.kit.scripting-106.1.1+106.1.0/omni/kit/scripting/scripts/script_manager.py source file. This could provide insight into how the scripting components are managed and potentially allow for direct modification if that is deemed appropriate for your specific use case.

Thanks! that script_manager.py script revealed the proper flag to modify when launching isaac sim is /app/scripting/ignoreWarningDialog.

Of course, this would potentially cause anything that uses this flag to be disabled. I am unsure if it is just the script_manager.py file that utilizes it. At least in isaac 4.2, grepping the entire /isaac-sim directory reveals that the only other potentially relevant script that uses this flag is /tools/isaac_people/sdg_scheduler.py, which actually sets this flag to true.

All this being said, I have a python scripting component that creates render products from cameras in the scene and publishes images on update. This script was causing me issues when I set /app/scripting/ignoreWarningDialog to true. Some issue with SyntheticData.py in _post_process_graph_tick. ValueError: Invalid object in Python_Graph in getWrappedGraphFromNode.

The only solution I found really at this point was to keep /app/scripting/ignoreWarningDialog set to false, and then in the same directory as script_manager.py, there is a utils.py, where I can comment out dialog.show(), and replace it with future.set_result(True), which effectively emulates that a user clicked Yes to the security prompt.

Overall, this last issue may be specific to my scripting component, but it is strange behavior overall.