SimulationApp vs SimulationContext

I am a beginner to Issac Sim. I am so confused about the “stepping method” is Issac Sim.
I am confused when should we use:

1.SimulationApp → update() method
2.SimulationContext → step() method

What are the differences between them?

And, how about the world.step (render=True) method in the Hello World tutorial (link below)?
https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/tutorial_core_hello_world.html

How do we differentiate those methods?
Thank you.

Hi @berternats

According the documentation, those methods works as follow for each class.

SimulationApp.update: Convenience function to step the application forward one frame
SimulationContext.step: Steps the physics simulation while rendering or without

And looking inside the SimulationContext class, it provides a more granular way to control rendering and physics independently or together, while with the SimulationApp (from what I know), it is not possible or at least not in a straightforward or direct way with this class methods.

On the other hand, the class World inherits from class SimulationContext.
And according to its implementation, it calls its parent method (SimulationContext.step) but add some additional code to update bounding box cache and for data logging, among others

1 Like

I see. Thank you so much for the detailed explanation and the links!
Thank you ao much.

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