Jan 8, 2025 Update: After discussion and some bug fixes there is a new comprehensive report by the Genesis Team, I highly recommend you read their new report. I have not had time to verify everything but their code is open source and the new report is more accurate and representative considering various contexts and typical robot learning workflows. The report also highlights critical issues in my benchmarking and does a good job diving deeper into simulation topics than my higher-level post. Notably, their latest simulation version achieves the claimed 43M+ FPS with just the robot arm and self-collisions enabled, and 27M FPS when random actions are added. Additionally, the simulation now features more stable grasping capabilities. Although achieving 43M FPS (430,000x real-time speed) may not be typical in most scenarios, you can still see sim speedups compared to other simulators when using the same scene and setup.
It is nice to see articles about Genesis and I learn a lot. I have two questions:
1. Can Genesis "catch up" when objects start moving, or does it just assume they are static and never simulate their motions? If the former is true that genesis can be adaptive in simulating motions, then does it mean hibernation is a good strategy when most of the scene objects are static?
2. Suppose genesis can simulate in 430,000x real-time without rendering, what is the corresponding speed for Issac or ManiSkill in this blind simulation setting? If genesis is much faster in blind simulation, it may still be a very good advantage?
Sorry if these questions are dumb; I am a complete newbie in simulators. Thanks for your time!
1. Genesis can simulate object motions, but if you want to simulate accurately it will run slower. The original benchmark code from Genesis however barely has any motions so it looks like it’s faster. Hibernation is useful if you have a very large scene but only want to simulate a small part of it (eg one robot and one or two objects). This is typically called sleeping in PhysX and other simulators.
2. The blind simulation speed is also known as physics only simulation speed or state simulation speed. The two bar charts in my post show the blind simulation speed. It is slower than existing GPU simulators when an object is being manipulated by a robot. If there is just the robot by itself it seems maybe Genesis speed is close to others
Hi Stone, thanks for writing this article. I read through your report and also the new benchmarks that Genesis published. I also personally know one of the developers of the Genesis project and was able to talk to him regarding the simulation speeds.
Essentially what he told me was that Genesis excels at 'contact simulation'. For example, a robot with complex joints and each joint's physical interface needs to be modeled. Or a scene where you need to interact with many rigid body objects and forces bumping into each other.
However, if the scene does not require 'contact simulation', then Genesis will likely not run any faster. To your point, the original benchmarks were misleading because it led people to think that Genesis was 100x faster than other simulators in all cases. The new benchmarks give a more balanced view showcasing under what instances Genesis are faster.
yes the new benchmarks are well appreciated and explain much better where they excel and what is still limited
while they excel at contact simulation, i’d argue other sims also do that fine as well. The big question mark still is whether you can tackle simulating more dynamic/complex environments involving complex contacts at a speed notably faster than other sims, this is still unclear. The most novel part of genesis is nice multiphysics and their new hibernation method for rigid body (doesn’t exist in physx and mjx afaik).
It is nice to see articles about Genesis and I learn a lot. I have two questions:
1. Can Genesis "catch up" when objects start moving, or does it just assume they are static and never simulate their motions? If the former is true that genesis can be adaptive in simulating motions, then does it mean hibernation is a good strategy when most of the scene objects are static?
2. Suppose genesis can simulate in 430,000x real-time without rendering, what is the corresponding speed for Issac or ManiSkill in this blind simulation setting? If genesis is much faster in blind simulation, it may still be a very good advantage?
Sorry if these questions are dumb; I am a complete newbie in simulators. Thanks for your time!
1. Genesis can simulate object motions, but if you want to simulate accurately it will run slower. The original benchmark code from Genesis however barely has any motions so it looks like it’s faster. Hibernation is useful if you have a very large scene but only want to simulate a small part of it (eg one robot and one or two objects). This is typically called sleeping in PhysX and other simulators.
2. The blind simulation speed is also known as physics only simulation speed or state simulation speed. The two bar charts in my post show the blind simulation speed. It is slower than existing GPU simulators when an object is being manipulated by a robot. If there is just the robot by itself it seems maybe Genesis speed is close to others
Thank you!
Hi Stone, thanks for writing this article. I read through your report and also the new benchmarks that Genesis published. I also personally know one of the developers of the Genesis project and was able to talk to him regarding the simulation speeds.
Essentially what he told me was that Genesis excels at 'contact simulation'. For example, a robot with complex joints and each joint's physical interface needs to be modeled. Or a scene where you need to interact with many rigid body objects and forces bumping into each other.
However, if the scene does not require 'contact simulation', then Genesis will likely not run any faster. To your point, the original benchmarks were misleading because it led people to think that Genesis was 100x faster than other simulators in all cases. The new benchmarks give a more balanced view showcasing under what instances Genesis are faster.
yes the new benchmarks are well appreciated and explain much better where they excel and what is still limited
while they excel at contact simulation, i’d argue other sims also do that fine as well. The big question mark still is whether you can tackle simulating more dynamic/complex environments involving complex contacts at a speed notably faster than other sims, this is still unclear. The most novel part of genesis is nice multiphysics and their new hibernation method for rigid body (doesn’t exist in physx and mjx afaik).