What's the difference between simulation_app.update(), world.step() and rep.orchestrator.step()?

Thank you for posting this. These functions serve somewhat different purposes. Specifically, from the docs:

World.step: Step the physics simulation while rendering or without. This class inherits from SimulationContext.
SimulationApp.update: Convenience function to step the application forward one frame.
Rep.orchestrator.step: Replicator step one frame (standalone workflow). Synchronous step function: only use from standalone workflow (controlling Kit app from python). If Replicator is not yet started, an initialization step is first taken to ensure the necessary settings are set for data capture. The renderer will then render as many subframes as required by current settings and schedule a frame to be captured by any active annotators and writers.