I am working on a video game where every single block is physically simulated and can be interacted with. Imagine if you could pick up a large body of water, and smash that into a building, which would then break apart and come tumbling down. That is just one of the many things the custom physics engine in this game will be able to do.
I still have a ways to go before going "early access", but you can follow my progress on this channel as I build out my game and physics engine. I love reading feedback and suggestions and try to incorporate those in my videos as much as possible. Many of the scenes that I simulate are based on actual material and structure requests that I read in the comments!
Some videos on this channel are really old (I've been making physics simulations for over 14 years), but I keep them around because it can be really fun to look back and see where I started.
I think mainly I will release as web app as this will let it be cross-platform more easily. It is available to try here: grantkot.web.app/gp/index.html
I wonder what the steam release will look like. Will it have some kind of oecake editing controls or will it be more like a linear experience with a pre-built world like noita where the player goes down through layers of biomes and beat a boss.
Sorry for the late reply. I think initially kind of like oe-cake or other creative mode sandboxes. And then campaigns with time. Also, I went from planning some simple wasm demos to now thinking of going all in with it and WebGL/GPU webtech.
Awesome, thank you! But it would be better if you had explained the paper ! Plenty of people prefer watching someone boil down and explain a paper rather than reading it themselves
Yeah I think maybe I will cycle back to do some better tutorials. I got excited after doing this and wanted to work on the WebAssembly version. I have a set of demos I want to bring to the web.
So, what technique can [be better optimized to] simulate more particles? I assume MPM, because it doesn't involve costly closest neighbors searching. But this technique is much more easier to understand and implement for us mere mortals.
For more particles or large scale scenes MPM. SPH is good for smaller scale, the surface tension looks good for things like drink commercials. Multiphase with bubbles is fairly easy to get with this.
Yeah, I think there are definitely analogous concepts like keeping a target rest density and for example, something like the Game of Life rules. I was messing with the springs a bit yesterday and there were some cell-like things merging and dividing.
The particles are trying to reach a set rest density. Because there are no particles outside the surface, it tries to reach the target rest density by pulling other particles from the surface closer.
I guess it could be considered emergent. If the rest density gets set as 0 they stop bunching up at surface. There's still some bunching up at the wall because there's some underestimation of neighborhood density there.
Very cool work! Have you experimented with networked particle engines? I think there’s a lot to be done optimizing particle engines for networking and networking for particle engines; I haven’t seen any multiplayer games with advanced particle simulations which multiple players can interact with simultaneously. Maybe neural nets could be used to approximate chunks of the simulation with sparse data to stream and reconstruct on other clients. There are a lot of different ways it could be done
I haven't yet, only the cloud streaming Parsec thing. Syncing is pretty tough. Would be amazing if it was possible to patch multiple regions each simulated by a player. It may be possible to just sync grid chunks at the edges, like inflow/outflow. Maybe each player sends data to other players if they are in their simulated region. Perhaps if I extracted the fluid surface there would be less data to send.
@@GrantKot Those are all great ideas. Do you have a Discord server or anywhere viewers can meet and discuss simulation and rendering? Throwing around differing ideas and building off new perspectives can go a long way in finding innovative solutions. And it's fun.
For the time being, I don't think I have the bandwidth to do Discord on top of YT and X, which I try my best to respond to comments and incorporate the suggestions & scene requests etc. I have a pretty giant list of things for the sandbox I need to focus and work on.
I _really_ dislike professors who handwave _"Those are implementation details."_ *excuse.* The devil is in the details! Also, **Fred Books:** (Mythical Man-Month) _"Show me code and I'll have to see your data. Show me your data and I won't have to see your code, it will be obvious."_
Wow: very interesting & useful, thanks a lot! So you transposed that even in 3D, with 2 M particle (vs 2K here) from what I saw in all your incredible videos (but with a smaller Kernel size, to keep themn tighter together)? You are a CHIEF, Grant!
Thanks! My more recent simulations use MPM, which has an intermediary grid. I like this paper because people can implement from it even if they have no other papers about SPH. MPM might need a bit more piecing together.
how would you goabout making theit a solid? do you think you can blend between a water and foam material based on how fast a particle is going relative to it's neighbours?
For something extremely rigid, you might still want to just integrate it with a rigid body solver or use shape matching. I'll try to figure foam out a little better.