• kamranjon 3 hours ago

    The other two Godot repos by this person are very interesting as well. I love the level of detail they add to explaining their repos. This one is particularly interesting: https://github.com/2Retr0/GodotGaussianSplatting

    Wonder if they are a student, they seem to cite other work frequently and have a strong grasp on recently published materials.

    • codetrotter 3 hours ago

      > Wonder if they are a student

      Seems like they might be.

      One of their repos has this title and description:

      > ENGR96A-coursework

      > Relevant coursework for ENGR 96A Introduction to Engineering Design F23

      And F23, judging by the dates of the commits in that repo means Fall 2023.

      Of course, it could be that this and other UCLA courses referenced in the repos are open for everyone. So maybe you don’t have to be enrolled as a traditional student at UCLA to take them.

    • jesperwe 5 hours ago

      20 years ago I could spend months tweaking ocean surface in renders and not get even close to that. Amazing how good this is!!

      Although the demo clip feels a bit exaggerated (saying this having over 50k Nm open water ocean sailing in my logbook). Waves that sharp and high would need the wind blowing a lot stronger. But I am sure that is just a parameter adjustment away!

      Since it is in Godot I assume the rendering is real time? Does it need a monster GPU?

      • aithrowawaycomm an hour ago

        This is not a criticism, just an observation: it looks like what I imagine an ocean of hot corn syrup would look like (after dyeing it blue). The viscosity seems right; possibly the surface tension is not what ocean water would have (a colloid of salty H2O and biomaterial, which is common in real-world experience but quite ugly for computational fluid dynamics).

        Also note that the ocean spray here is a post-hoc effect, but for a real ocean the spray dulls the sharpness of the waves in a way that will be (vaguely) apparent visually.

        Of course there's almost no "physics" in this elegant, simple, and highly effective model, so I want to emphasize that suggesting directions to poke around and try things should not be construed as an armchair criticism.

        • lloeki 30 minutes ago

          > 20 years ago I could spend months tweaking ocean surface in renders and not get even close to that.

          There are tons of videos now about that making the whole thing (somewhat) more approachable, but there are still a lot of pitfalls!

          One of my favourites on the subject: https://m.youtube.com/watch?v=yPfagLeUa7k

          This one is nice too: https://m.youtube.com/watch?v=kGEqaX4Y4bQ

          • sails 2 hours ago

            Agree, based on the clips, it looks a bit random.

            I think it is looks to be very good, and probably the best I’ve seen having given it a cursory search recently to see what was possible.

            In terms of what I’d like to see, open ocean waves generally have more rhythm, I’d be very interested to see a simulation of 15 knots of wind blowing over 1km for a few hours and see if that matches what I observe, which would be relatively organised wave trains (sets) that build and disperse.

            • pjmlp 3 hours ago

              Back when I graduated, doing particle engines, with marching cubes and stuff like that, was a graduation thesis project.

              Nowadays it is a check box on a game engine, one of many.

              People don't imagine how good they have it with modern engines.

              Not to take any value out of this work, this is a great achievement and kudos to the author, only making the point how good we have nowadays.

              • kevindamm 3 hours ago

                Back when I graduated I was still holding my breath for the patent expiration on marching cubes, GPUs were still being made for PCI and even ISA slots, you could find some game engines but you would have a better time writing one specialized for the type of game or graphics you were targeting.

                Things really have improved a lot.

                • pjmlp 2 hours ago

                  I guess we might have a similar age, first computer Timex 2068. :)

                  • kevindamm 2 hours ago

                    sounds like it, my first computer was an Atari 800 XL that shared the family TV as its monitor (and fortunately there was an RF switch to toggle between it and the antenna so we worked out a kind of timesharing system)

                    • pjmlp 18 minutes ago

                      Sounds familiar. :)

              • ryanjshaw 5 hours ago

                There's 2 demo clips, the second one shows quite a number of parameters you can adjust.

                • pixelatedindex 2 hours ago

                  I think the point is that these parameters you adjust are being rendered near real-time, whereas back in their days you’ll have to enter these values, and add custom tweaking because the hardware just wasn’t powerful enough to do the things we can do now at many times the speed. Not to mention the vast improvement in mileage for your time.

                  • dylan604 an hour ago

                    yeah, the "in real time" is what kills me. the old joke of blue bar races, rendering, buffering, and any of the other things us gray beards had to put up with is just unimaginable to the whippersnappers of today.

                • matsemann 2 hours ago

                  > I could spend months tweaking ocean

                  I have a game project. But I always get nerd sniped by cool game stuff, and want to implement them myself. My progress so far could probably have been achieved in a 48h gamejam if I just used/bought existing assets. Instead I have also spent weekends playing with water shaders and getting them to look how I want.

                  But my game is a puzzle game. I don't need water, except that I now have a cool splash screen..

                • fcatalan 3 hours ago

                  Things like this brought me into computers, but along the way I fell for the easy and boring life of glueing libraries, endpoints and corporate bullshit that leads to burnout. Perhaps some day...

                  • kevindamm 3 hours ago

                    Someday could be today...

                    • Trasmatta an hour ago

                      My problem is I'm so burnt out from the aforementioned stuff I don't have the motivation or energy for the cool stuff anymore. I feel like I need a year long sabbatical first, but reality says otherwise.

                      • otteromkram an hour ago

                        Sounds like you just need more coffee :-D

                      • maaaaattttt 3 hours ago

                        There are only two good moments to plant a tree: 20 years ago and today.

                        • Aeolun 3 hours ago

                          Isn’t it like: the best time to plant a tree is 20 years ago. The next best time is today.

                          • epaga 3 hours ago

                            Though I never understood why 19 years ago wouldn’t be the second best…

                            • airstrike 2 hours ago

                              Because you didn't think of it then.

                              You thought of it 20 years ago and didn't do it, and you're considering it again now.

                              Instead of telling yourself it is too late to do it now, just go for it, so that in 20 years more you will be happy you planted this tree.

                              • plasticchris 3 hours ago

                                Because the statement is meant to motivate the reader.

                                • rbetts 3 hours ago

                                  That would make today the worst day to plant a tree?

                                  • phn 2 hours ago

                                    The worst so far, and the best when compared to all of your remaining days.

                        • Eddy_Viscosity2 2 hours ago

                          This is great, but this approach will break down a bit for REALLY big waves as they become non-linear. Water waves are not sinusoidal, but are close enough for small and medium wave heights that these methods work really well. The big big waves are not only much farther from sinusoidal but the waves start interacting with each in a non-linear way that can't be captured by the linear superposition approach used here.

                          So for most sea states, this is fantastic. But if you want to do the 'perfect storm' wave or something like that, you need to use a different approach for realism.

                          • tomcam 5 hours ago

                            I spent years living on the beach. When you live on the beach, you watch the ocean for hours at a time because it’s mesmerizing and feels sensational. I wouldn’t guess for a second this was a render.

                            • tsurba 6 hours ago

                              Shadertoy also has nice ones https://www.shadertoy.com/view/Ms2SD1

                              • viraptor 6 hours ago

                                Different approaches, but if someone's interested in waves/ocean simulation, Acerola published some awesome (as always) videos on this topic. https://youtu.be/PH9q0HNBjT4 and https://youtu.be/yPfagLeUa7k (edit: just realised one is linked in the references, just under the real name rather than nick)

                                • shireboy 32 minutes ago

                                  Nice, but may need to adjust the limits: https://news.ycombinator.com/item?id=41631177

                                  • convivialdingo 3 hours ago

                                    Fourier was measuring tidal waves when he came up with wave frequency transforms - so in a way this is almost a full circle.

                                    Very impressed!

                                    • bnegreve 5 hours ago

                                      It is very impressive, and better than anything I've seen before but think something is bit off with the swell. If I had to explain I would say that high frequency waves don't travel on top of low frequency waves the way they do in the video.

                                      • lukko 4 hours ago

                                        Oh my - this is great!

                                        Does it mention what the density of the mesh is, or is it a flat plane with no displacement?

                                        Also, I wonder if there's a way to optimise the foam particles in some way. It does seem very wasteful to generate them across the whole plane, when most are culled. I wonder if the particle emission / creation could be linked to foam density?

                                      • julosflb 2 hours ago

                                        Very neat! I'm hydrodynamics by background and I wondered a long time ago why this kind of approach was not used as I always found ocean waves to look awful in movies. Once you describe ocean sea state in frequency domain, it is quite easy to give to floating objects like ships realistic motions using what we called RAO in this field (linear operator). You can also model sea disturbance (diffracted and radiated waves) caused by an object in a similar fashion.

                                        • eps 7 hours ago

                                          Don't have any substantial comments, but I must say that the result is really impressive. Just wow.

                                          • lambdaone 2 hours ago

                                            This is astoundingly good work; even though, as other commenters have said, it could still be improved on, the fact that it achieves such a level of realism with such a simple and elegant framework is truly impressive.

                                            • HL33tibCe7 4 hours ago

                                              This is beautiful, I'd love to have this as a lockscreen or even a screen panel on a wall somewhere

                                              • kroolik 6 hours ago

                                                That's some National Geographic clip. Now, show us the demo!

                                                • cheschire 4 hours ago

                                                  While I appreciate ever more realistic water bodies, the part that game makers really struggle with is where the water encounters an obstacle.

                                                  I did not see any mention of this in the description. Conceivably though, this is not a huge conceptual leap right? A game maker would simply need to add logic to impact the frequencies near objects, no?

                                                  • magicalhippo 3 hours ago

                                                    The referenced paper "Simulating Ocean Water" talks about this in section 5. Indeed the FFT approach makes this difficult, where a different approach[1] for waves reflecting off obstacles.

                                                    That approach uses convolution, however you can perform convolution using FFTs[2], so perhaps there's some nice way to combine the two approaches.

                                                    edit: I just skimmed the papers, and it seems[1] does indeed mention combining the FFT approach with the convolution approach in the section on Ambient Waves.

                                                    [1]: https://people.computing.clemson.edu/~jtessen/reports/papers...

                                                    [2]: https://phys.uri.edu/nigh/NumRec/bookfpdf/f13-1.pdf

                                                    • thom 2 hours ago

                                                      To an extent you can get away with just sampling the output of the water shader to work out the water's effective height at any given point. Big changes in height, or buoyancy for non-static objects, indicate bigger angles hitting the waves and you can fake some splashes with particles while the wave itself just gets occluded. Apply forces at just three or four points and you can make a boat rock pretty believably on top of this kind of water.

                                                    • bobim 2 hours ago

                                                      I would like a Silent Hunter III remake with this.

                                                      • jkmegtu 40 minutes ago

                                                        Free fire

                                                        • aetherspawn 3 hours ago

                                                          I think the downside of this approach is you can’t ie split the waves with a ship.

                                                          • coldcode 2 hours ago

                                                            Yeah I wondered how that could be done, otherwise this would only be good for backgrounds.

                                                          • Archelaos 5 hours ago

                                                            The demo looks unrealistic. The waves never break. Increasinlgy steeper slops with pointy peaks travel from left to right until they just sink down towards the left.

                                                            • AlunAlun 5 hours ago

                                                              This is explicitly a simulation of ocean waves, and ocean waves do not break.

                                                              • Archelaos 4 hours ago

                                                                Okay. That makes sense. What about the steep elevation? Shouldn't it be smoother at the top?

                                                                • UniverseHacker 2 hours ago

                                                                  As someone who has done offshore sailing… the waves also look unnaturally steep/tall/pointy to me. It’s very cool, but needs some tweaking still.

                                                            • rkagerer 6 hours ago

                                                              The sample video is really impressive, it's worth a peek.

                                                              • chhs 6 hours ago

                                                                Looks incredible!

                                                                • pmarreck 3 hours ago

                                                                  How do I get this masterpiece running locally to play with? I don't even know what Godot is (but I've used makefiles and such)

                                                                  • jimmySixDOF an hour ago

                                                                    If you have a Quest VR device Godot just released an editor with live scene updates I am bookmarking this to try see what it looks like in there.

                                                                  • wslh 3 hours ago

                                                                    Great! I've shared this with every physicist I know who's not directly involved in animations.

                                                                    Quick question from my swimming class yesterday: We know that professional swimmers use a range of technologies, both old and new, in their training. Is there currently a model that fully simulates the physics of swimming across different styles? If not, this seems like a great project idea!

                                                                    • ReptileMan 5 hours ago

                                                                      That looks wet. And honestly it is the best compliment I can give.

                                                                      • Mattish 6 hours ago

                                                                        2 of the linked references have full implementations of very similar things, with some shared references.

                                                                        Is there something here which godot is enabling which wasn't previously possible? It seems to be entirely GPU compute workload with particles which are available as part of all mature rendering engines