https://www.researchgate.net/publication/326906476_The_techn...
2. Clone the repository
3. Open Godot and import the project by navigating to the directory containing the project.godot file.
Then open the project and away you go.
You would presumably need to download the Godot framework and open it in the framework.
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
Would be curious to see how it looks from different angles etc. as the light changes.
Wonder if they are a student, they seem to cite other work frequently and have a strong grasp on recently published materials.
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.
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?
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.
I found a video that records (in a few places) how the waves actually look: https://www.youtube.com/watch?v=8XBO-hen7_s
Maybe you can adjust the parameters of the tool to get waves like this, or perhaps I still should care even if the solution isn't realistic, and getting such an effect is hard by just using an arbitrary formula. In particular getting the detail right, but I imagine the recorded video is heavily subdivided and takes most of the resources that you just can't spend on a real video game.
It's still impressive, but I can't help but wonder why the formal maths if you don't arrive at anything realistic - perhaps because I'm a layman and I don't understand the difficulties of achieving this.
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
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..
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.
Things really have improved a lot.
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.
I'm not sure what you mean here, because this is made directly from research that was done 20 years ago and it looks the same, it's just being done in real time.
Go for it - we're all rooting for you!
I’m rooting for you!
If you freeze-frame this, the peaking waves look like snow-capped mountains. It feels unrealistic because for water to have features this sharp, it would have to be quite windy -- and the wind would never be blowing straight up. Here, the sharp features would need to be directional.
The simulation has the swell nature of the waves down pretty well though. There isn't as much horizontal movement, as more up-and-down, which is what you'd expect to see in open water.
I've been playing Nightingale and, oh boy, is the ocean water something special there. To be clear, they don't tackle spray and such by keeping the waves calm, which has allowed them to focus on other things. Whatever it is they are doing to simulate light transmission is working. The light shining through the waves at sunrise or sunset looks great and really sells the effect for me.
It could maybe be accused of being a bit painterly, but it doesn't look wrong.
It's a stunning-looking game oveall, wow. I had no idea :)
> If you’ve spent years living on the beach, blah blah blah
I wish I gave a flying fuck about your not very subtle accusation. Feel free to believe what you want. I’m retired and I still don’t have as much free time as you do. You are not very good at mind reading, but I’m glad you’re giving the old college dropout try.
Very impressed!
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.
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?
A lot of hobbyist gamedevs can think of tutorials where we "slap noise" on various things. While a good temporary use, there's an pedagogical gap between beginner and advanced methods.
Another that comes to mind is vegetation animation. Like ocean waves, we often see animators throw a few octaves of sin/cos on plants to simulate wind, but because it doesn't spectrally match what we see in the real world, it looks off.
Out of curiosity, I’m sure everybody has heard of the FFT. They are quite general and used all over the place, and I imagine they’d be the first thing somebody would reach for if they had to describe waves.
But I’d never heard of Gerstner waves. This leads me to believe that Gerstner waves are a more specialized thing. Since lots of work has already gone into rendering water, I tend to assume the method with a name I’ve never heard of was only reached for after very clever people rejected Fourier transforms for some reason.
But, the results look better than most of what I see elsewhere. Has something changed to enable the more conventional solution?
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!
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?
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...
For what it's worth, the real difficulty in gameplay is getting physics objects to interact with the waves properly.
I struggled in calculus over the summer but passed and am currently taking discrete math but recognized basically none of the math equations in the github project readme.
My feeling is that this problem is intractable alone. We need groups working towards liberation, and societal change to support healthy work/life balance.
What that looks like in practice is that wealthy people, especially those who won the internet lottery, should start giving something back. At the most basic level, that's paying one's taxes. Beyond that, they should start setting aside ego-based goals and start accepting requests outside of their attention so that the most pressing problems facing humanity can finally get solved.
Give a billionaire $1 billion and a year later they'll turn it into $2 billion. Give one of us $1 billion and a year later a form of cancer will be cured. That's why they have the money and we don't, and why it takes so long for things to get better, if they ever do.
B) This project is not an all-out attempt to make lifelike water, it is described as an experiment. I am making an observation about the result of the experiment, not criticizing the project for failing to meet standards it wasn't holding itself to.
But ultimately, does that model model vortexes or other fluid dynamics?
Can this model a fluid vortex between 2-liter bottles with a 3d-printable plastic connector?
Curl, nonlinearity, Bernoulli, Navier-Stokes, and Gross-Pitaevskii are known tools for CFD computational fluid dynamics with Compressible and Incompressible fluids.
"Ocean waves grow way beyond known limits" (2024-09) https://news.ycombinator.com/item?id=41631177#41631975
"Gigantic Wave in Pacific Ocean Was the Most Extreme 'Rogue Wave' on Record" (2024-09) https://news.ycombinator.com/item?id=41548417#41550654
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.
(Even if they are just "family" in the broader sense and not their own)