Transcription
Today, we are going to create crazy virtual worlds where we simulate squishy things. Yes, things that deform. This new method is incredibly impressive. It can do absolutely wonderful things. Elastic barbarian ships and rods, really squishy letters, super detailed cloth wrinkles, and then whatever the heck this is.
Now, that's really tough, but I'll try to summarize 30 years of research for you. Here it goes. We have fast simulations that are wrong, or we have accurate ones that are painfully slow. Why? Well, the input is a bunch of shapes and forces that act upon them, and the output is the new positions of every tiny point that describes these objects. This is a really tough problem because these things are squishy. So, every tiny point affects every other point, and there are millions of them. So, one small mistake can spread everywhere and break the whole simulation.
Okay, so what can this new technique do? Well, imagine a tree that you really don't like, and you hope to never see it again. So, what does a computer graphics researcher do? Well, of course, throw jack-o'-lanterns at it until there are enough so we never see it again. Can we do that? Let's see. Oh, yes. Kind of crazy.
So, what is going on here? Dear fellow scholars, this is Two Minute Papers with Dr. Karoly Zsolnai-Feher. So, previous techniques had a problem with scenes like this. You see, they split the problem into small pieces and solve them separately. But, the problem is that those pieces ignore each other and cause a problem called overshoot. What does that mean? Well, overshoot means that we apply a small fix locally at one part, but it makes the whole other thing worse. Things start to wobble, slow down, maybe even explode. That is a huge problem. I mean, you can't slice up the problem into many smaller pieces without ruining the thing. Kind of a deal breaker.
But that would be great. Why? Well, that is exactly what GPUs are good for. You don't solve slice one and then slice two, then slice 1,000. No. You give it all 1,000 slices and it is going to be solved in one go. But you can't do that. Or you couldn't until now. Because this method predicts how each of these small changes affect the whole project.
Okay, how? Well, through precomputed a co-rotated local perturbation subspace. What does that mean? That is a very scientific way of saying that each slice is able to tell how its own movement, stretch, and pull the rest of the object before it even moves. That is magic. Because finally, the simulation can be super fast and remain stable.
Now, that is remarkable. So, this simulation has a dragon given by 100,000 elements and it is pretty accurate. So, how long do we have to wait? Like overnight? Well, hold on to your papers, fellow scholars, because this dragon experiment runs easily in real time. Yep. That just happened. But note that this is not quite the whole truth. I'll tell you about it in a moment. And even if you have five barbarian ships given by two and a half million elements, I thought, "Surely, you'd have to wait overnight for this one, right?" It turns out, nope. This can still do three frames per second. You can actually see it in motion as you compute it. That Wow.
There are previous techniques that did that already. For instance, here is vertex block descent, VBD. It can do that. So, what's new here? Well, for one thing, get this. This is about 30 to 170 times faster than VBD. What? That is insanely fast. For a house of cards, it can also do 30 frames per second. For a simulation with about 400,000 elements, that is incredible. Wow.
But, it gets better. The paper says, wait, what? Infinite times faster? Did they just invent a time machine? No, no, no. Not quite. You see, there are cases where the previous VBD fails to converge at all. It never finishes the simulation. Okay, so how about this new technique? Ooh. Oh, look at that. What a beauty.
Now, limitations. We said it can run in real time. Yes, that's true. However, before the simulation starts, it has a pre-computation step. It has to run some calculations before starting. And for a huge scene, it can take a while. For a quick dragon scene, about 7 minutes. Huge scenes, 67 minutes. That kind of sucks. But wait, don't despair. This is my understanding of the paper. You pre-compute the rest shape Hessian matrix per deformable asset. What does this mean? This means that you can do the whole thing before shipping a game. So, when the user sees it, they won't even know about this part, and it will run super fast, which is excellent. And this is open science, so we get all this for free. What a time to be alive. And unfortunately, almost nobody is talking about works like this, so I really wanted to share this with you. Thank you.
We need new tools for the era of LLMs and Weights & Biases now has weave a lightweight toolkit to confidently iterate on LLM applications. Use traces to debug how data flows through each step of your app and use evaluations to measure your progress. It is the best. Try it out now at wnb.me/papers or click the link in the description below.