Before sharing where Ymir's development is headed, I want to take a moment to announce that the paper we presented at the conference is now publicly available online: Object-Centric Parallel Rigid Body Simulation with Timewarp. Give it a read and please feel free to share any constructive feedback!
Ymir's Near-Term Roadmap
In the paper, we presented a breakdown of of Ymir's current simulation profile on one of our test scenarios. These results are as follows:
Scalable and real-time yes, however, Ymir can be faster, much faster. From the graph we plainly see two places to start, namely: the time spent performing collision checks (Collision Check in orange) and the clean-up of old physical states in response to global time updates (GVT Update in maroon).
Regarding the former, the data-structure we use to support parallel simulation currently requires locking for mutual exclusion and collision between the same two objects being checked more than once. These two points can be dealt with directly, though getting rid of the locks will require a bit of creativity. We will be documenting our new lock-less data-structure along with (hopefully) improved performance numbers in the coming weeks.
As to GVT Update, we plan to take a hard look at our current implementation and optimize, optimize, optimize. Not a fun process, but one which must be done.
After we are confident in our performance tuning, we must also compare Ymir to other physical simulation engines such as Bullet. We will be keeping our fingers crossed that as we scale over many cores we are eventually able to perform better than Bullet on a single core. Regardless of the outcome, we will be sure to share these results as we have them.