# Revision history [back]

Models are inserted into simulation asynchronously. This is done to make Gazebo thread safe. The consequence is that your code will be ugly.

You can subscribe to the ~/model/info topic, which receives msgs::Model messages when models are inserted. This would take advantage of the asynchronous nature of gazebo.

You may want to pause simulation, insert a model, wait for the model to appear, then start simulation again. This would give you more control over the model.