Which Simulation Environment Should I Use?

I keep seeing this question come up, so here’s a quick rundown based on what I’ve used and what I’ve heard from others:

Gazebo-based (best ROS integration):

  • VRX — surface vehicles, most mature, active community

  • LRAUV — long-range AUV with DVL, deep-sea scenarios, very vehicle-specific

  • Orca4 — lightweight, BlueROV2 model

  • DAVE — built on UUV Simulator + WHOI’s ds_sim, focused on manipulation. Now has a ROS 2 Jazzy / Gazebo Harmonic port.

  • SUAVE — self-adaptive underwater vehicles

Non-Gazebo:

  • Stonefish — C++ library, better underwater rendering than Gazebo, popular in European labs

  • OceanSim — GPU-accelerated perception sim from Michigan

  • HoloOcean — UE5, multi-agent with acoustic comms modeling

  • SMaRCSim — Unity-based, multi-domain (underwater + surface + aerial)

My rough decision tree: if you need tight ROS integration and your focus is control/planning, go Gazebo. If you’re doing perception work and need realistic underwater visuals, look at Stonefish or OceanSim. If you need multi-agent with comms modeling, HoloOcean or SMaRCSim.

I would love to hear other people’s thoughts on simulation? What’s missing? Are there better tools out there?