Articles, Blog

Real-Time Soft Body Dynamics for Video Games | Two Minute Papers #103

December 2, 2019


Dear Fellow Scholars, this is Two Minute Papers
with Károly Zsolnai-Fehér. We have had plenty of episodes about fluid
simulations, so how about some tasty soft body dynamics for today? Soft body dynamics basically means computing
what happens when we smash together different deformable objects. Examples include folding sheets, playing around
with noodles, or torturing armadillos. I think this is a nice and representative
showcase of the immense joys of computer graphics research! The key to real-time physically based simulations
is parallelism. Parallelism means that we have many of the
same units working together in harmony. Imagine if we had to assign 50 people to work
together to make a coffee in the same kitchen. As you may imagine, they would trip over each
other, and the result would be chaos, not productivity. Such a process would not scale favorably,
because as we would add more people after around 3 or 4, the productivity would not
increase, but drop significantly. You can often hear a similar example of 9
pregnant women not being able to give birth to a baby in one month. For better scaling, we have to subdivide a
bigger task into small tasks in a way that these people can work independently. The more independently they can work, the
better the productivity will scale as we add more people. In software engineering, these virtual people
we like call threads, or compute units. As of 2016, mid-tier processors are equipped
with 4-8 logical cores, and for a video card, we typically have compute units in the order
of hundreds. So if we wish to develop efficient algorithms,
we have to make sure that these big simulation tasks are subdivided in a way so that these
threads are not tripping over each other. And the big contribution of this piece of
work is a technique to distribute the computation tasks to these compute units in a way that
they are working on independent chunks of the problem. This is achieved via using graph coloring,
which is a technique typically used for designing seating plans, exam timetabling, solving sudoku
puzzles and similar assignment tasks. It not only works in an absolutely spectacular
manner, but graph theory is an immensely beautiful subfield of mathematics, so additional style
points to the authors! The technique produces remarkably realistic
animations and requires only 15 milliseconds per frame, which means that this technique
can render over 60 frames per second comfortably. And the other most important factor is that
this technique is also stable, meaning that it offers an appropriate solution, even when
many other techniques fail to deliver. Thanks for watching, and for your generous
support, and I’ll see you next time!

You Might Also Like

8 Comments

  • Reply Two Minute Papers October 28, 2016 at 11:14 pm

    A really nice community endeavor is taking shape where our Fellow Scholars collect papers and implementations that were showcased in the series. Make sure to have a look, and if you feel like contributing, we're more than happy to have you. Thanks! 🙂 https://www.reddit.com/r/twominutepapers/comments/58qa8p/github_repository_for_video_data/

  • Reply GaborBartal October 29, 2016 at 7:58 pm

    Could it be further improved with programming optimizations? I'm asking because 60 fps is awesome, but that's if it's the only object in the game world; if it gets included in a game world that already produces 60 fps, the performance would drop to 30 or so right?
    I realize it's about the underlying mathematics, though, and that it's a great breakthrough in itself

  • Reply michaelemouse1 October 29, 2016 at 8:08 pm

    In what way(s) is this different from Nvidia's Flex? If you haven't checked it out, here's a link: https://developer.nvidia.com/flex

  • Reply CynicatPro October 29, 2016 at 10:22 pm

    Another brilliant video! keep up the awesome Károly! X3

  • Reply killa524 October 30, 2016 at 7:51 am

    Yoooooo I couldn't stop laughing at the torturing armadillo's comment at 0:22

  • Reply jojolafrite90 June 1, 2018 at 5:49 am

    So, is this new and better than what Nvidia uses in FLEX?

  • Reply ハェフィシェフ October 21, 2019 at 7:03 pm

    Just looking at some old video's of yours, the stuff you post is consistantly really hq, just wanted to say that. It's really impressive

  • Reply TheLoneBit November 12, 2019 at 11:50 pm

    "-Playing around with noodles."

    Yes.

  • Leave a Reply