Realtime 2D Gravity Simulation

  Рет қаралды 403,482

Brendan Galea

Brendan Galea

2 жыл бұрын

This has been a fun side project I've wanted to work on for a while. I had originally just planned on doing a GPU based particle fluid, but I got sidetracked by the nice looking results of the gravity simulation.
(Sorry about all the compression artifacts, kind of impossible to avoid when uploading something like this to youtube)
It is still very much a work in progress. This uses a grid based approach to simulating gravity for extremly high particle counts. All calculations are performed exclusively on the GPU. Multiple levels of detail are used (I settled on 4), to get fairly accurate approximations for nearby particles, and rough approximations for distant particles.
There are quite a few known issues. Most notable would be a pretty significant dampening effect, since intra-pixel particle forces are very underestimated. Additionally, sometimes large collections of particles moving in unison seem to hit invisible walls. I suspect this might have to do with down-sampling always using accumulating the same pixels.
I wasn't following any particular resource for this. One of the more experimental aspects of my implementation was to apply a horizontal + vertical blur to the accumulated mass fields to "spread" out the mass information so that grid cells only need to sample their local gradient, rather than sampling every other grid cell within the 11 by 11 kernel radius. I definitely need to do a bit more research on this to see if this is a method that anyone else is using, as well as to measure the approximation error this causes. Perhaps by choosing better kernel weights the error may be possible to minimize.
------------------------------ MUSIC ------------------------------
Midsommar by Scott Buckley / scottbuckley
Celestial by Scott Buckley / scottbuckley
Luminance by Scott Buckley / scottbuckley
Creative Commons - Attribution 3.0 Unported - CC BY 3.0
Track: Adventures - CRASTEL [Audio Library Release]
Music provided by Audio Library Plus
Watch: • Adventures - CRASTEL ...
Free Download / Stream: alplus.io/adventures

Пікірлер: 932
@dialog_box
@dialog_box 8 ай бұрын
aw man, it's unfortunate how much the youtube compression seems to dislike these kinds of visuals. i bet it's absolutely gorgeous when viewed directly in-engine. still incredibly cool! i always love projects like these
@monx
@monx 5 ай бұрын
it seems there might have been some issue in the export format (it looks interlaced). usually the HD transcode looks pretty good.
@shavoshaco2402
@shavoshaco2402 4 ай бұрын
Probably cause its a very fast moving color gradient, so it has trouble comoressing it accurately due to being fast moving increasing the amount of pixels it has to change, and a color gradient which has a range of colors in which they change slowly making a large range of colors to compress too. What I mean to say its inaccurate due to the nsture of the video I guess, ir maybe its just a compression algorithm that favors performance over looks
@rocheuro
@rocheuro 3 ай бұрын
upload 4k60fps yt compression should not be the issue than.
@Polygarden
@Polygarden Жыл бұрын
It's fascinating how they form the exact same shapes as our galaxies... it's the stuff you would normally do in a super computer. Beautiful work!
@nullifier_
@nullifier_ Жыл бұрын
I wouldn't say exact shape of actual galaxies, but it's fascinating to see the simulation nonetheless
@chocoatemilk9227
@chocoatemilk9227 Жыл бұрын
@@nullifier_ from a gravitational standpoint i would say it really behaves as a galaxy like at 11:15
@ldvrrn8269
@ldvrrn8269 Жыл бұрын
I could agree more
@EccentricTuber
@EccentricTuber Жыл бұрын
@@chocoatemilk9227 Well, the thing with real galaxies, is that at a certain point the acceleration due to gravity starts dropping off at 1/r instead of 1/r^2. This means that gravity doesn't appear to weaken (in galaxies) as much as it should, making galaxies more stable and spin faster at outer orbits. It's actually not understood why this happens, and is one of the reasons why physicists conjecture dark matter or modifications to gravity! I'd recommend reading about Modified Newtonian Dynamics (MOND), because it's super fascinating.
@skinnymayo
@skinnymayo Жыл бұрын
I agree
@ibrozdemir
@ibrozdemir 2 жыл бұрын
feels so natural, i felt like a timeless being, wathcing universe in fastforward.. good job optimising it, its a hard work
@mrgoodpeople
@mrgoodpeople 2 жыл бұрын
It's 2D. 2D it's not natural =). Don't exist super flat object in the Universe. Galaxy thickness is 5-10% of its diameter.
@pilchu7978
@pilchu7978 Жыл бұрын
But still when you look from the side there can be illusion of 2D, some people still think the planets are discs not spheres so for visualization it is an amazing simulation!
@tiagogamer2540
@tiagogamer2540 Жыл бұрын
@@mrgoodpeople Yes, but vision is pretty much 2D (The depth approx the brain uses does not count for an extra D in my book. Motive: 3D vision would see inside closed boxes, we cannot. If disagreement enumerate whys.)
@ege8240
@ege8240 Жыл бұрын
@@mrgoodpeople a timeless being would have organic body, that means their vision would be diffrent than anything we can imagine
@quistador7
@quistador7 Жыл бұрын
This really helped me make sense of elliptical galaxies. The smaller ones with structure are just so cool and my brain had a hard time understanding why a white blob is way bigger.
@anykeyh
@anykeyh Жыл бұрын
If I may, you should instead use integral sum (I) of the weight of all particles at any given points into a Float32 buffer, then you can compute easily the total sum of any given area (x1, y1, x2, y2) which equals to I(x2, y2) - I(x1, y1). Less memory usage, and faster resolution, no "absolute borders" as described in your video. Still an approximation, but I think you would get better results and performance.
@BrendanGalea
@BrendanGalea Жыл бұрын
Great tip thanks!! I’ll give that a shot when I come back to this project
@_ramar
@_ramar Жыл бұрын
i wonder how large simulations with noticeable floating point precision would look, that'd be super cool to look into how weird it'd be, i wonder if it'd look more structured or chaotic
@slimeball3209
@slimeball3209 Жыл бұрын
@@_ramar look at "far lands" in minecraft, or border box of universe in space engine. you can't really imagine this, it's too large to be noticeable in any way for 32 or 64 bit numbers but for smaller bits is like graphics in old playstation, like vertex of model is jumping from voxel to voxel, and all mesh of the model is jittering.
@WeShallBeFreeAtLast
@WeShallBeFreeAtLast Жыл бұрын
Replying just so I can save a reference to this comment. Been working on a small project as of late and I'm looking for any methods to increase the size of the simulation I can run.
@dertyp3463
@dertyp3463 9 ай бұрын
so she lied, when she said "size doesn't matter"? :(
@kanerogers7717
@kanerogers7717 2 жыл бұрын
This looks absolutely amazing, Brendan!
@BrendanGalea
@BrendanGalea 2 жыл бұрын
Thank you!
@masela01
@masela01 Жыл бұрын
I love the way they merge into bigger objects in a way
@memor22
@memor22 8 ай бұрын
Yep thats how… our world works
@masela01
@masela01 8 ай бұрын
@@memor22 yeah and it's pretty cool how this emulates that
@openroomxyz
@openroomxyz 2 жыл бұрын
I must admit that this did even more inspire me to learn Vulkan and related things.
@mamadshonazaramonov3010
@mamadshonazaramonov3010 Жыл бұрын
I am almost feeling the gravitational waves from those massive clumps hitting each other! So cool!
@hubismal
@hubismal 2 жыл бұрын
Janice, please cancel my 3:00 with the President of the United States... brendan galea just uploaded
@storm14k
@storm14k Жыл бұрын
Whenever I hear about the big physics simulations done on matter I think about doing something like this myself just to explore the difficulties involved with scale. This is very neat! Thank you.
@kodirovsshik
@kodirovsshik 2 жыл бұрын
I don't know when and how I found this channel, but what I know for sure is that I really like it
@brandonver-non7573
@brandonver-non7573 8 ай бұрын
This was mathematically interesting, visually stunning, and one heck of a side project. Well done!
@DoubtX
@DoubtX Жыл бұрын
It looked like a spiral galaxy wanted to form at a few points but it never lasted. I don't know why spiral galaxies form in the first place, but it would be really cool to see it occur in a simulation.
@BrendanGalea
@BrendanGalea Жыл бұрын
Ya I think one problem to this approach is due to the grid and how I’m calculating forces, energy is lost over time. So the spirals are losing energy too quickly and dissipate.
@almicc
@almicc Жыл бұрын
if you want the scientific reasoning, it's that galaxies contain much more mass than the sum of the mass that's visible, allowing larger and more complex structures to form despite it not being possible with only what's visible. look up "dark matter"
@DFPercush
@DFPercush Жыл бұрын
I think it has to do with the fact that the orbits of stars around the galactic center isn't perfectly circular. There's some eccentricity to the orbit. So when a star is at its apoapsis, the farthest point from the center, it's moving slower. So you get clumps of stars that slow down and get closer together, and those are the arms. Something like that anyway.
@tonywells6990
@tonywells6990 Жыл бұрын
@@almicc You can say that the particles in this simulation naturally act like dark matter already since they only interact through gravitation.
@20ZZ20
@20ZZ20 Жыл бұрын
@@tonywells6990 in which case spiral galaxies won't form, as dark matter forms halos rather than the visible spiral galaxies we see. which looks more like what can be seen at the end of the formation, or a massive eliptical galaxy at least. more than just gravity would be needed to simulate actual galaxy formations. in this simulation it is like the entire universe eventually devolves into one huge blob. that might happen if the universe were fixed like this simulation, but in reality the expansion of the universe would have a factor on large scales. something that i doubt could be easily simulated at home! this would allow separate clusters to form perhaps. some kind of physical interaction between particles rather than just gravity would also be needed for spiral galaxies to form in a realistic way.
@ldvrrn8269
@ldvrrn8269 Жыл бұрын
It’s beautiful to watch and it makes me feel very timeless like a timeless being witnessing something we are all supposed to see.
@felipedorosario4793
@felipedorosario4793 Жыл бұрын
This is absolutely beautiful to watch! Outstanding work!!
@embergamedev
@embergamedev Жыл бұрын
This was a wild watch. So beautiful and I can't imagine the satisfaction of being able to say you built it yourself. I love coding anything with simulations or large amounts of data and visualizing it. This was fun, thanks for sharing!
@bottlekruiser
@bottlekruiser 2 жыл бұрын
Gotta admit, i watched most of the vid with the corner of my eye, like i usually do... Until the shot at 7:30ish just *stunned* me. Amazingly beautiful. There's just that **something** captivating in it.
@DescendDab
@DescendDab 9 ай бұрын
Thanks so much for the timestamp, this shot is incredible! Sure, it might not be 100% realistic (which probably is impossible at the moment anyways) but it felt like galaxies forming due to gravity. Love it!
@bottlekruiser
@bottlekruiser 9 ай бұрын
>which is probably impossible at the moment anyway Depending on how strict your definition of "impossible" is, it's either never possible in simulation, or already routinely occasionally done in high end astrophysics sims. You're welcome! :D
@sammchenry738
@sammchenry738 Жыл бұрын
Best video explaining how spiral galaxies form, and its not even about that. Amazing work!
@drsjamesserra
@drsjamesserra 4 ай бұрын
Man I love it, such a great way to visualize!
@DescendDab
@DescendDab 9 ай бұрын
You, sir, are amazing! I always love stuff like this. I wish you nothing but the best
@ChiaraWatson
@ChiaraWatson Жыл бұрын
Please make a couple hour long relaxing video with this. I totally can myself going to sleep with it. So mesmerizing.
@christianalejandro4963
@christianalejandro4963 2 жыл бұрын
Great work! Beautiful and inspiring! Congrats!
@BrendanGalea
@BrendanGalea 2 жыл бұрын
Thank you! Cheers!
@xandr1922
@xandr1922 Жыл бұрын
Thank you for inspiring me. I would love to see another project like this one from your channel
@perbojsen3433
@perbojsen3433 4 ай бұрын
Very nice work. The simulations are very beautiful and even with the approximations you're using you can see things that look like galaxies and how galaxy clusters and mergers form and occur.
@briandel8446
@briandel8446 2 жыл бұрын
this was an amazing video! you just inspired my to work on a new project and test expiriment with something similair.
@GamingDemiurge
@GamingDemiurge Жыл бұрын
Absolutely fantastic. Bravo.
@MrKohlenstoff
@MrKohlenstoff 3 ай бұрын
Really stunning result, amazing work! I've superficially experimented with similar things in the past and thought about using grids to approximate gravitational effects and get around the O(n²) problem - but never actually fully implemented it. But you did a damn fine job and the results are pretty amazing. :)
@Inderastein
@Inderastein Жыл бұрын
I love how the more particles you add, the more it's outer rings gets pulled faster into the center as if the center has an absolutely strong gravity despite it being only a group of particles ngl it feels so accurate
@_general_error
@_general_error 2 жыл бұрын
You could use a quadtree (or octree if you want to go 3-dimensional), which may increase precision and speed though hurt implementation simplicity. Not yet sure, what clustering method would work best, especially on GPU. Another optimization would be to use a different time step for each particle and simply not update each particle at each step. I am just looking into similar O(N log N) or better N-body simulations, but not quite on this level, only star system scale simulations, where you have up to a million small bodies and a handful of large bodies.
@BrendanGalea
@BrendanGalea 2 жыл бұрын
Different time step per particle: That’s an interesting idea that I didn’t consider! I’ll keep that in mind when I come back to this. I also should probably do some performance testing to find out which steps are the bottle neck.
@avatharbehemoth
@avatharbehemoth 2 жыл бұрын
@@BrendanGalea it could work out great, or turn into something really strange. Probably doing the lower level of detail comparison for all grids and then only checking if a particle is likely to go to another gridarea, and then doing the individual particles in groups/ timesteps if they are likely to leave the gridarea?
@PuzzledMonkey
@PuzzledMonkey Жыл бұрын
A quadtree or Oct tree is a key component of the fast multiple method. Edit: fast multiPOLE method
@fishercawkey
@fishercawkey Жыл бұрын
@@PuzzledMonkey Did you mean "fast *multipole* method?" Just asking because I've been reading about fluid dynamics simulations and FMM has come up a number of times.
@PuzzledMonkey
@PuzzledMonkey Жыл бұрын
@@fishercawkey yes, my autocorrect isn't numerical analysis literate.
@dr_j0nes
@dr_j0nes 2 жыл бұрын
OMG this is just stunning!!!!!!!
@locallyringedspace3190
@locallyringedspace3190 9 ай бұрын
5 minutues in, just wanted to say this is a really good video. I like the presentation and the format. Thank you.
@douglasnordwall3482
@douglasnordwall3482 4 ай бұрын
Stumbled upon this, very nice done! So "simple" but yet so beautiful :'] Reminds me of the universe
@lukewellcash
@lukewellcash Жыл бұрын
Instead of summing just the mass in each grid cell, average the position as well and store it in a 3 float texture. Expanding this in the same way done in this video would give a method that should be 100% accurate and one that grows in complexity at the same rate as the one you displayed. The only draw back is that it would be a bit slower (just because it is having to do more). Very nice project!! Well done.
@BrendanGalea
@BrendanGalea Жыл бұрын
Great suggestion, definitely going to attempt this for version 2!!
@busy_beaver
@busy_beaver Жыл бұрын
This is a good improvement that I also thought of. But it won't be 100% accurate.
@dhowitzer
@dhowitzer 8 ай бұрын
@@busy_beaver I thought the same thing, I agree that it may not be perfect. I remember learning in early physics that the earth's gravity can be "accurately" modeled as a point mass at the center of the earth but to the extent there are variances like mountains then the field 'fluctuates' a bit. i wonder how close of an approximation it would be at a distance. you'd certainly account for all the mass that way.
@andrewferguson6901
@andrewferguson6901 8 ай бұрын
​@busy_beaver it's a digital system. That must be the case. It can only be accurate to an arbitrarily fine precision
@Sporkabyte
@Sporkabyte 8 ай бұрын
​@@dhowitzerThis is true if you take the center to be the average position of all of the point masses. If you use the center of mass instead, then it's not an approximation anymore, it's just true
@vsevolodnedora7779
@vsevolodnedora7779 Жыл бұрын
Beautiful work. Very inspiring. Coming from the field of numerical relativity and finite volume hydrodynamics, I recommend using adaptive mesh refinement, i.e., the resolution of a given patch of space depends on the number of particles there.
@BrendanGalea
@BrendanGalea Жыл бұрын
Thanks for the tip! I'll definitely need to look into that
@NateJGardner
@NateJGardner Жыл бұрын
This is a really cool method! I like your idea about combining it with direct simulation. It'd make rendering beautiful space scenes with clouds of small particles very cool. Watching these scenes you rendered I'm already imagining them in the background of a 2D game, and how incredible that would be (especially with slightly different seeds every time). This is my favorite video I've watched this week. 👍
@BrendanGalea
@BrendanGalea Жыл бұрын
Wow thank you!! The cool thing too is that I should be able to make it interactive as well!!
@WalterSamuels
@WalterSamuels 8 ай бұрын
Very clever approaches to optimization!
@tunneloflight
@tunneloflight Жыл бұрын
By using a gridded version of space, you will always create artifacts. Your pseudo-random jitter is an interesting approach to overcoming this inherent limitation.
@danielquedenfeld2052
@danielquedenfeld2052 Жыл бұрын
You could probably get some emergent behavior if you added an additional force, like EM interactions, give each particle a random starting charge I picked EM because I feel like it’s the most applicable to this simulation, and it also counterbalances gravity with repulsive effects, plus the grid system would work really well for summing localized charges I think
@krccmsitp2884
@krccmsitp2884 Жыл бұрын
What does EM stand for?
@danielquedenfeld2052
@danielquedenfeld2052 Жыл бұрын
@@krccmsitp2884 electromagnetism So particles would attract repel based on their charges
@jamesking2439
@jamesking2439 Жыл бұрын
Using the blur and gradient is genius and the result is beautiful!
@ddopson
@ddopson 9 ай бұрын
I really enjoyed your description of the algorithms. It reminds me a little bit of K-Means clustering, which likes to be O(N^2) for approximately the same reasons, and is a problem that I've spent a fair bit of time working on at scale. Hope you get a chance to come back to these algorithms and push them even further. Your description of the work is excellent.
@DavidStruveDesigns
@DavidStruveDesigns Жыл бұрын
What I find the most amazing about this entire simulation - other than absolutely _everything_ about it lol - is the fact that, even though this simulation is happening on a completely 2d flat plane (at least I _think_ it is??), it somehow manages to _look_ three dimensional. Kind of lends creedence to the theory that our entire Universe _also_ exists on a flat plane, doesn't it? :) Amazing work I have to say!!
@BrendanGalea
@BrendanGalea Жыл бұрын
Thanks! Ya I was surprised how nice the 2D version ended up looking. I still want to give a 3D version a shot though!
@gamertardguardian1299
@gamertardguardian1299 Жыл бұрын
Maybe we are just one big petri dish, or, a not so big petri dish for the aliens who are messing with their particles for science lol
@leroywalton4348
@leroywalton4348 2 жыл бұрын
technically jaw dropping !
@MacElMasMancoDeTodos
@MacElMasMancoDeTodos Жыл бұрын
This is simply amazing. The simplest way to show how the complex Universe works. As explaining to the orbit problem, an orbit is the horizontal momentum needed to fall to the central gravity point passing always above the object's horizon, making a circle-like trajectory around it. If a particle weights, as example, 1, even a gravity center of 1000 is still way to less to make an stable easy orbit. If you make a larger obj, it should work better, but the orbiter will end ripping particles apart from the center. You could fix it with larger (and heavier) particles, both as center or to attach one to another and make big compact stuff. Great job anyway and please develop this further, it's incredible :D
@jimmyjohn5970
@jimmyjohn5970 Жыл бұрын
Absolutely beautiful, thank you for this.
@igorastral4816
@igorastral4816 Жыл бұрын
NASA, are you watching this??
@bennomomsen5554
@bennomomsen5554 Жыл бұрын
You have a good understanding of the problems you are facing here for massive particle based simulations. Getting up to speed with methods developed in the last 50 years in this area would benefit you a lot. I'd recommend a book like Hockney/Eastwood - Computer Simulations using Particles. Also you can always check GPU implemented particle simulators like HOOMD - I guess you could actually do the same simulation with that open-source software and it'd be interesting to see the differences.
@BrendanGalea
@BrendanGalea Жыл бұрын
Looks like a good read, thanks for the suggestion! Kind of expensive book though 😅 but am considering getting it
@matthewzimmers1097
@matthewzimmers1097 Жыл бұрын
@@BrendanGalea trust the guy
@lordpengz16
@lordpengz16 Жыл бұрын
@@BrendanGalea Hello, I’d like to ask what software you used to simulate this and to program it. And what is Vulkan for exactly? Thanks in advance
@lilcaps
@lilcaps 2 ай бұрын
I started work on a space exploration game and this is almost exactly what I have been looking for, thanks for making this
@BrendanGalea
@BrendanGalea 2 ай бұрын
Oh cool! Best of luck. Will it be 2D or 3D?
@swxxxb6301
@swxxxb6301 Жыл бұрын
amazing work. really good visualisation
@jojodi
@jojodi 2 жыл бұрын
Beautiful results and explanation :) The earlier suggestion to explore trees is a well-known approach called Barnes-Hut trees. Have you tried this? I have written simulations like this several times but have always been interested by the idea of simulating gravitational bodies without any particles, just as continuous mass and velocity on a grid. Haven't derived the equations yet though.
@BrendanGalea
@BrendanGalea 2 жыл бұрын
Thank you!! Some viewers provided some great articles on that topic (for example observablehq.com/@rreusser/2d-n-body-gravity-with-poissons-equation?collection=@rreusser/writeups) but I've never tried something like that myself yet. I've some past experience working with cpu-based particle fluid solvers, and originally when I started on this that was more the direction I was going to try. But then I got side tracked a bit by this idea for gravity. The no particle method you mention kind of reminds me of something like Stam - stable fluids: d2f99xq7vri1nk.cloudfront.net/legacy_app_files/pdf/ns.pdf That method probably could be extended with a multi-LOD approach to do a particle-less gravity simulation. That sounds like it would be something really interesting :)
@WaveofThought
@WaveofThought Жыл бұрын
Cool simulation. I tried to do something similar once, albeit with fewer particles, and I came across something called the Barnes-Hut algorithm for n-body simulations. This seems similar to your LoD approach but might be more robust, although I don't know if you could still make effective use of the GPU. Anyway, something to look into if you ever return to this project. Cheers!
@alexn3574
@alexn3574 5 ай бұрын
This was amazing. If you ever wanted to get an up close view of how a black hole/ Galaxy works this is your Video
@mathgeekification
@mathgeekification 11 ай бұрын
The formation of stars and galaxies! Excellent work!
@user-du9ch3tn2v
@user-du9ch3tn2v 2 жыл бұрын
I don't know a thing but what if you view this as a cheap algorithm and us the traditional or an other exact method for calculating check steps every minute or so. This could help to reduce errors if you use this guide data to reduce the errors in your simulation. And also thank you for this amazing videos. The showcase in this was like a scene from interstellar:]
@BrendanGalea
@BrendanGalea 2 жыл бұрын
Glad you like it! Ya that’s pretty similar to an idea I had. You could do a more accurate simulation offline and use it to train this cheaper algorithm by optimizing the kernel weights and some other features!
@_caracalla_
@_caracalla_ Жыл бұрын
that "expanding" particles demo was awesome. great work! also can i ask how much time you have on programming?
@BrendanGalea
@BrendanGalea Жыл бұрын
Thanks, and about 15 years now!
@kittinanpakboon8129
@kittinanpakboon8129 9 ай бұрын
Hmm thanks for the info! Might get to this level in 10 years alot less than i thought.
@tunneloflight
@tunneloflight Жыл бұрын
None the less - interesting and beautiful work.
@vmartme
@vmartme 9 ай бұрын
This is perfect mate! Thanks for sharing your thoughts and process :)
@suncrafterspielt9479
@suncrafterspielt9479 2 жыл бұрын
What about using kd trees or other tree structures to more efficiently process particle to particle interaction?
@BrendanGalea
@BrendanGalea 2 жыл бұрын
Ya I think that would work well with the split simulation approach I mention at the end. Use a kd tree for efficient particle to particle interactions, and then for the million small particles avoid neighbourhood lookup completely by using this "splattering" technique.
@loukitmyname
@loukitmyname 2 жыл бұрын
Hi. Can you do a tutorial on this? Are you using compute shaders for the simulation computation?
@BrendanGalea
@BrendanGalea 2 жыл бұрын
technically I should be, theres a couple steps that would benefit from using compute shaders, but I've done everything here just using rasterization pipelines even though some stages are unnecessary and just add overhead. The tutorial series will cover all the techniques required for this eventually, but trying to do a full tutorial on everything here at this point would be like 4 hours long
@krikusZ80
@krikusZ80 8 ай бұрын
Looks like sort of Mean Field Approximaton. Great work, btw🎉
@justaplayermsk
@justaplayermsk 4 ай бұрын
can't wait to watch 3D version of this P.S.: i absolutely stunned by this, insane work!
@MartinMizner
@MartinMizner Жыл бұрын
Nice project. I tried to simulate 2D gravity in Python, but it was inefficient and maximum was 200 particles before the frame rate dropped under 5 fps. I also tried to implement particle joining so they would create planets and stars. Good to know I wasn't the only one to have the same troubles.
@BrendanGalea
@BrendanGalea Жыл бұрын
Particle joining is a really cool idea! I've run into similar issues when I've done particle simulations in the past. Could never get enough particles before performance became an issue. One of the reasons I ended up learning c++ and vulkan, because it doesn't really get faster than that. But it can be a bit of a pain to program...
@DaminGamerMC
@DaminGamerMC 2 жыл бұрын
youtube decompressi kills it. Would you consider uploding the code or executable for us to look a this and hiow you did it?
@dr_j0nes
@dr_j0nes 2 жыл бұрын
Source code would be amazing 😍
@BrendanGalea
@BrendanGalea 2 жыл бұрын
ya, it really does unfortunately :( The code is a bit of a mess right now, so I don't really want to share it yet. I'm going to be cleaning it up and putting it in the tutorial series over the course of the next couple months. The raw/messy code I'm thinking of sharing as a possible patreon bonus if I end up making one of those.
@Sam-nt8nk
@Sam-nt8nk 2 жыл бұрын
@@BrendanGalea I have never subscribed to a Patreon before, but if you made one, it would be the first.
@matthewboire6843
@matthewboire6843 4 ай бұрын
It’s so cool that this is even possible, I love it
@strangeanimations2518
@strangeanimations2518 8 ай бұрын
This is the coolest thing I've ever seen, I'm blown away wow
@aSpyIntheHaus
@aSpyIntheHaus 2 жыл бұрын
Wow. this is a tremendous effort. I can see why astrophysicists really want dark matter and dark energy to be a thing. That rotating model coalesces way to easily into a rather homogeneous disc doesn't it?
@BrendanGalea
@BrendanGalea 2 жыл бұрын
Haha ya I can start to see why astrophysics is so difficult! It would be interesting to see how the simulation would change if more interaction types are added such as dark matter!
@DavidStruveDesigns
@DavidStruveDesigns Жыл бұрын
Not only that, but a previous theory that "the black hole at the center is what causes the rotation of a galaxy and the patterns of said galaxy" just doesn't work - not only because the actual mass of a black hole, even a supermassive one, actually only makes up a tiny fraction of the total mass of a galaxy - so there's not enough mass or gravitational force at the center to have _that_ much influence over the direction or speed of a galaxy, nor how a galaxy looks, but _also_ because it was discovered in many galaxies - including our own - the black hole at the center is actually rotating _in the opposite direction_ to the rest of the galaxy! _AND_ it can also be rotating along a different axial tilt to the rest of the galaxy! So something else is causing galaxies to rotate, and cause the patterns we see within galaxies as well as the changes to those patterns over time (like the arms of our own, or the more uniform disk shape of older galaxies). And that's not even including smaller halo galaxies that orbit their larger cousins. So they came up with a halo of dark matter surrounding every galaxy that keeps it rotating in a certain direction, keeps the mass within contained instead of having the outer mass launch away from the galaxy into the cosmic voids between, and influences the halo galaxies behaviour and the appearance of galaxies in general.
@DavidStruveDesigns
@DavidStruveDesigns Жыл бұрын
Although, _your_ simulation _seems_ to suggest the combined gravitational forces created by the combined mass being simulated actually _is_ enough to replicate the behaviours we see of real galaxies. It would be quite interesting to see what would happen if you could somehow also add a simulation of a black hole in the center of the largest mass - but rotating in the opposite direction to the rest of the mass in the simulation.
@aSpyIntheHaus
@aSpyIntheHaus Жыл бұрын
@@DavidStruveDesigns Any of those centralised areas where you can see the bulk of masses accumulating in points can be considered analogous to a black hole already. As in the gravitational effect is the same however without a horizon or accretion effects. That said though it would still be cool to see, especially things like relativistic jets that would wobble as the black hole builds in mass
@aSpyIntheHaus
@aSpyIntheHaus 2 ай бұрын
I came to post a comment only to see that I have already commented what I wanted to say. ☺️
@mikhailskylark8417
@mikhailskylark8417 Жыл бұрын
Bro just calculate the overall system's center of mass (which should stay at the same point if I'm correct) and apply force to your particles.
@BrendanGalea
@BrendanGalea Жыл бұрын
calculating the center of mass for each grid cell and taking that into account should improve things. But if I do it for the whole system that would be the equivalent of just using a 1x1 grid
@pikatheminecrafter
@pikatheminecrafter 9 ай бұрын
This could be made more interesting with two additions. One, some particles are around ten times heavier and rarer than the other, and two, the heavier particles tend to stick together with an additional force, making them "solid". Gravity and collision forces could break "solid" objects, but they may eventually stick together again. In a cloud of particles that rotates sufficiently quickly, some of these particles of "solid" would eventually form "solid planets" as they fall towards the "star" and the "solid" accumulates, while the lighter "gas", not attracted as much by the "star" as the "solid", stays further out, eventually creating "gas planets". A further extension could be a proper implementation of the electromagnetic force. This causes particles to repel each other at a short range. This would mostly apply to "gas" particles. Though it would make it more difficult for "solid" particles to combine, "solid" particles still have this force that sticks them together (which is still the EM force in real life). Perhaps they could be combined somehow? Also, have it such that that "gas" (or any such particle), when sufficiently compressed that two particles overlap, merges the particles into a heavier one, which in turn exerts a force counteracting gravity on nearby particles. More massive particles require more force to combine. This would allow for "stellar fusion", making "stars" puff out. Additionally, it could be balanced such that once a single particle gets to sufficient mass, the gravitational influence it has on nearby particles by itself is enough to cause this "fusion", regardless of pressure, so it can collapse infinitely, creating a "black hole".
@TheBrocktonBlockbust
@TheBrocktonBlockbust 10 ай бұрын
I'm starting to get into these topics and particle simulations. Thank you
@EvanG529
@EvanG529 Жыл бұрын
Now do it in 3D
@mwm48
@mwm48 Ай бұрын
No…4D 😳
@nyx1284
@nyx1284 2 жыл бұрын
6:04 he said it
@BrendanGalea
@BrendanGalea 2 жыл бұрын
😂
@statelyelms
@statelyelms 9 ай бұрын
There were many times watching this where I forgot it was 2d and thought I was watching 3d objects spin and rotate and warp. Incredible work
@WesleiMB
@WesleiMB Жыл бұрын
this is the coolest thing I have saw today !
@astria4157
@astria4157 2 жыл бұрын
This is amazing. It reminds me of a program from a small developer that I really enjoy. I don't know anything about coding but you might find some inspiration from his work. World really be cool you could get stable orbits going and have objects collide and become larger objects. Here is the other developer: kzbin.info/www/bejne/aJzWh52mrb5oo6s
@BrendanGalea
@BrendanGalea 2 жыл бұрын
Woah that’s pretty cool, thanks for sharing!
@gumenski
@gumenski 8 ай бұрын
This is fantastic. Good job.
@MateHomolya
@MateHomolya Жыл бұрын
Very impressive work! Excellent idea of using multiple LODs to account for local and global effects. Thanks for sharing. ❤
@MateHomolya
@MateHomolya Жыл бұрын
It looks like a physics simulation of galaxy filament formation they run on supercomputers.
@BrendanGalea
@BrendanGalea Жыл бұрын
Thank you!!
@TheBourbonWrench
@TheBourbonWrench Жыл бұрын
I didn’t understand a single word. Yet here I am, still having some sort of existential crisis seeing how your mathematics and thought process come to life into something I can visually grasp. Stunning video. Also super intriguing how many people in the comments seem to actually know exactly what you described in the beginning of the video, and it blows my mind to see people actually give you tips and critique you work. It just shows me how absolutely lame and boring my brain is.
@pyroblasted
@pyroblasted Жыл бұрын
I have no words... this is amazing!
@BrendanGalea
@BrendanGalea Жыл бұрын
thank you!
@sessionvideomag
@sessionvideomag Жыл бұрын
This caused an optical illusion, as soon as i turned the fullscreen off, my screen was deforming in a spiral shape Amazing job!!
@thatprogramer
@thatprogramer 11 ай бұрын
Amazing simulation!
@adamcordoue2096
@adamcordoue2096 Жыл бұрын
Looks like 3 dimensions. Super cool! Well done I have nothing but respect
@SkydivingSquid
@SkydivingSquid 8 ай бұрын
This is beautiful. Well done.
@victorbetini6204
@victorbetini6204 2 жыл бұрын
this is so amazing to watch
@deffoe
@deffoe 8 ай бұрын
amazing work!
@chefskies6215
@chefskies6215 3 ай бұрын
beautiful simulation
@eclipticokami2646
@eclipticokami2646 8 ай бұрын
This is beautiful, thank you for sharing.
@SMGJohn
@SMGJohn Жыл бұрын
Even a super basic simulation like this you can see the laws of the universe working as expected.
@N9GamingOfficial
@N9GamingOfficial 9 ай бұрын
I knee I recognized Scott Buckley's music - this was a really cool visualizer, will be cool to see more!
@nathanfredette
@nathanfredette 4 ай бұрын
I think adding a magnetism approximation and particles with differing interactability to the simulation would increase its similarity to stellar phenomenon even further, love it!
@FM-lo9vv
@FM-lo9vv Жыл бұрын
This is so beautiful
@Choiis
@Choiis 5 ай бұрын
7:17, The most beautiful simulation i have ever seen on how single dust particles inevetebly clumps to larger bodys. (Even if the early forces aint depending on gravity the outcome is the same). I loved it!
@skope2055
@skope2055 Жыл бұрын
beautiful approximation
@benjaminjacobs4022
@benjaminjacobs4022 8 ай бұрын
This is super cool, and I want to use it as my screen saver.
@Bratjuuc
@Bratjuuc Жыл бұрын
Absolutely beautiful!
@waymanharris1284
@waymanharris1284 Жыл бұрын
Beautiful, Great work!!!
@BrendanGalea
@BrendanGalea Жыл бұрын
Thank you very much!
@Maxarasta
@Maxarasta Жыл бұрын
what a remarkable work
@kevnar
@kevnar Жыл бұрын
Quadtree + Flowfield = bliss
@J0Goproxy
@J0Goproxy 3 ай бұрын
looks spectacular
@Povilaz
@Povilaz Жыл бұрын
Looks awesome!
@JonnyHuman
@JonnyHuman Жыл бұрын
This is absolutely mind blowing and a great explanation of how you did it!! For next time, if you upload @ 4K (even if the source footage is HD) KZbin will assign more bandwidth to the video and the compression shouldn't be so bad!
@BrendanGalea
@BrendanGalea Жыл бұрын
Thank you! And will do
@SeanStClair-cr9jl
@SeanStClair-cr9jl 7 ай бұрын
This is so frickin cool. I've been musing about something just like this (stemming from the idea of, oh yeah, it shouldn't have to be N^2 if you can just have each body contribute to the same field, and then draw from it). And I love seeing how you've solved / approached / approximated the fact that that pesky N^2 seems to want to just reshuffle into other parts of the problem. I like your blur idea. It would be cool to have a dynamic LOD, a la Unity's new "Nanite" tech, in order to maximize efficiency and resolution. Edit: What if 4:51 is just "home"? lol.
An Evolutionary Version of Particle Life
29:45
Programming Chaos
Рет қаралды 18 М.
A* (A-Star) Pathfinding Algorithm Visualization on a Real Map
0:57
ones and zeros
Рет қаралды 1,7 МЛН
Stupid Barry Find Mellstroy in Escape From Prison Challenge
00:29
Garri Creative
Рет қаралды 20 МЛН
ТАМАЕВ vs ВЕНГАЛБИ. Самая Быстрая BMW M5 vs CLS 63
1:15:39
Асхаб Тамаев
Рет қаралды 4,8 МЛН
Always be more smart #shorts
00:32
Jin and Hattie
Рет қаралды 23 МЛН
When Your Game Is Bad But Your Optimisation Is Genius
8:52
Vercidium
Рет қаралды 1,4 МЛН
Coding Adventure: Ant and Slime Simulations
17:54
Sebastian Lague
Рет қаралды 1,8 МЛН
Simulating an Evolving Microcosmos | The Path to Multicellularity
19:04
I'm Coding an Entire Physics Engine from Scratch
9:19
Gonkee
Рет қаралды 1,6 МЛН
Better Mountain Generators That Aren't Perlin Noise or Erosion
18:09
Josh's Channel
Рет қаралды 295 М.
Particle Lenia
4:15
Programmable Artificial Life
Рет қаралды 42 М.
Gravity Visualized
9:58
apbiolghs
Рет қаралды 139 МЛН
I Made a Neural Network with just Redstone!
17:23
mattbatwings
Рет қаралды 625 М.
I built my own 16-Bit CPU in Excel
16:28
Inkbox
Рет қаралды 1,4 МЛН
Stupid Barry Find Mellstroy in Escape From Prison Challenge
00:29
Garri Creative
Рет қаралды 20 МЛН