How to get 30 fps Synthetic Data renders in standalone python?

I’m trying to generate synthetic data via a standalone python application, as in the Visual Synthetic Data Tutorial:

But I don’t understand the relationship between a world.step(render=True) and rendering. If I set render=True, won’t I get a rendered image for each physics step? I want a render at 30 fps.

Am I misunderstanding how this works? If not, how do I get 30 fps renders? Is there a more appropriate tutorial someone can point me to?

My current workaround is… since the physics step defaults to 60 fps, I am saving every other render as synthetic data. Is this the standard/best way of doing this?