Hacker News new | past | comments | ask | show | jobs | submit login
Water (oimo.io)
1231 points by thunderbong on Aug 6, 2023 | hide | past | favorite | 133 comments



Hmmm. I feel guilty for seeing such a cool thing and asking for:

Surface tension, viscosity, air bubbles, foam, loss of energy, 3D liquid (matching the depth of my phone), sound, momentum haptic feedback, and orientation appropriate light beams.

Also, choice of water, beer, wine or whiskey.

Exceedingly exceptionally cool things raise requests for far more features than they deliver!


They have a better demo for that

https://oimo.io/works/water3d/


I get a shader compilation error on that page.


It is one step away from bringing Refik Anadol's work to mobile. Nice idea.

https://vimeo.com/685011426


Amazing, runs great on iPhone even on the super resolution setting.


A web 2D fluid simulation with surface tension, viscosity and air bubbles is this one:

https://cselab.github.io/aphros/wasm/electrochem.html


Ah, the famous user request: “it’s simple, just add X”

Followed by: “any update on X?”


Followed by a string of “+1”s


And the eventual "pull requests welcome"


I’m curious about what’s the best way to go about gathering user feedback and feature requests. You can’t develop a product for people to use behind closed doors, because you run the risk of building the wrong product. Conversely, if it’s too out in the open then anyone and their parents might have suggestions to improve which will drag you away from the core thesis of your product/PMF.

I guess another way to ask my question is - is the aforementioned sequence of steps (please add X, string of +1s, PRs welcome, etc) a bad thing?


> I’m curious about what’s the best way to go about gathering user feedback and feature requests.

IMO, building in the open is still the best way. But to ensure that you don't end up with a mongrel of a thing that tries to do every single thing requested by everybody, It does help to have a rigid set of goals about what we want to build. And the courage to say NO to feature requests that stray too far from the original design goals.


I believe the latest Rich Hickey talk ‘Design in Practice’ might answers your questions in detail - I haven’t seen it recently, but it says something along the lines of don’t build features because they were requested, but instead ask why were said features requested, what’s the reason behind that and solve that problem.

As every Hickey talk, I can only recommend watching the whole thing, it is not clojure-specific at all if that were off putting for you.


The answer is you grow up, make decisions "behind closed doors" and live with the consequences.


> You can’t develop a product for people to use behind closed doors, because you run the risk of building the wrong product

Then again you could develop a product behind doors despite the risk of building the wrong product ... :)


this is still my favorite. https://oimo.io/works/life/ That dev has a bunch of cool projects.


Wow, that is so cool! I’ve fiddled with Conways game of life a lot, implementing it recursively in SQLite, various languages, explored variations of it; I knew you could simulate it inside the game, but this is mind blowingly cool! And it’s so smoothly done, it’s like stepping through the looking glass.


Yeah, that’s insane. (For the initiated, make sure to zoom in and out).


I had seen the one layer before, but they way they get it to go forever and make it work so smoothly by dynamically adjusting the speed is pure genius!


The zoom out is just chef's kiss


I would like to check later on if the rules for this "cellular automata" (if it is one) are documented and the fractal nature naturally concludes from it or whether the fractal was simply manually forced when you zoom a certain level.



I’m pretty sure it’s manually forced, but I would be delighted to be educated otherwise.


Good clues in its previous posting to HN https://news.ycombinator.com/item?id=33978978


The clock is also pretty cool: https://oimo.io/works/clock/


Hmm, just says Loading and not actually loading for me on my phone.


Me too


Same on Brave, shields down makes it work


This little app makes me feel, perhaps more than I ever have before, that CA might be what's under the hood of the whole universe. (Not a Wolfram fanboy, just reporting on a new sense of awe and mystery!)


the Bell Inequality is one of the things that really puts a damper in that idea. It's like OK everything is local with a speed limit, but there is a little but of superluminal stuff it's just not actually useful in any way except to wet blanket ideas like this.


That is really amazing.


that is crazy trippy in a fractal-y kind of way. very smart.


Looks nice but not like water. It keeps moving forever. A bucket of water would stand still after a few minutes.

Edit: Seems to lack simulation of friction between water particles?


Funnily this is usually something you need to fix in water simulations like this one since a lot of solutions have artificial too rapid energy loss. So the fact that it acts this way is sign of more mastery rather than less (it’s trivial to reduce energy faster).


Came here with the same nitpick. It settles down too slowly. Also takes too long to start moving after changing angle. So it's in this weird spot where it's both more + less reactive than real water.


Just seems like some fun art to me, could have been named anything.


It may be some special water or water in special circumstances.

Could it be that in space or low gravity water behaves more like this?


Nope, in space/low grav you would still have the friction between the water molecules. Additionally, in space/low grav the water would want to clump.


how about: it's a 2d simulation, not a slice through a 3d one, so you should probably not expect any intuition to apply? (Fun to watch, though!)


It does calm down, but never stills. But the ocean never stills, so I would still give this full credit/an A+


I looks like it is more compressible and elastic than normal water which may cause the behaviour shown. If I'm not mistaken normal water is very hard to compress.


Would be neat if it simulated the air too. As-is, you can open up bubbles in the middle of the volume of water. Still a fun project.


Same. Feels like gravity on the moon rather than earth. Perhaps a gravity setting would be nice.


It could be water, under different pressure and gravity. (or not).


Laggy on mobile devices also.


What's the point of this comment? Are you worried that someone wouldn't know that it doesn't look realistic? And might get sick by drinking something with fluid dynamics that resemble the simulation?


Browsed around. This one is my favorite so far: https://oimo.io/works/cloth/

Dope projects


And if anyone wants to see the source code[1], it's all on GitHub.

[1] https://github.com/saharan/works


so siiiick and flawless in my browser. wowowow


Now they're just showing off.


This one is insane!


My dad worked on the Apollo program In The 60s. They were using analog computers to simulate fuel slosh in the tanks. He also had a flight sim display that allegedly could go from space (earth as a circle?) To low level horizon and grid. I never saw either but am about to toss schematics for the later with the rest of his stuff. Personal note - he died in '03 and I'm done hanging on to stuff. :-)


I don't have the domain expertise or interest to know what's important or rare, and I can completely understand not wanting to hang on to it personally any longer, but that sounds like something a lot of people might be interested in, that ought to be exhibited somewhere, if (as it sounds like) it's work-oriented and not too personal.


My grandfather did also.

Please don't trash them, I will take them and pay you for shipping and your time. My email is in my bio.

I understand why you don't want to hang onto them, no judgement.


If you are planning to toss schematics used in the Apollo program, I would love to frame something and put it on the wall. I understand the weight of historically significant junk (and I don't think I would want to have tons of it myself), but that's very different from a piece of engineering history.


You should upload them to the Internet Archive.


And/or donate them to somewhere that'd be interested in preserving them.


I’m sure there are historians or historical societies that would love that stuff. Please don’t trash them. I’d recommend that you go to the AskHistorians subreddit and ask who would want them. I’ve seen people ask similar questions there and they seem to usually find a good home for the stuff. It would just be a little more effort than throwing it away but could mean a lot to future generations of historians.


I sent you an email -- happy to help (virtually) with finding a good home for these. Cleaning out a lost relative's possessions can be hard. I think a lot of other people here might be able to help in some ways too.


Don't toss those- they belong in a museum


Sorry for my ignorance, I don't pretend to be rude, but is this not just the same as one of the first iPhone apps where you pretended to drink a beer? I understand it was impressive 15 years ago, but I don't get why is so impressive today. Again, I don't pretend to be rude, just to understand why is people so impressed by this.


The beer thing was a glorified level app.

This one has a fluid dynamics simulation.


Also guessing this is cross platform and runs in the browser :)


Wow, very cool. Works best if you lock your phone to not rotate views as you rotate your phone.


Well, it looks like something, but if you're not talking to me that it's water, I can not say. I just have a strange feeling about it. It's not water, it's something different. I don't know why, maybe it's the way you visualize, or maybe it's just the two-dimensional nature of the simulation. Or maybe it's the reflection, maybe it's the post-processing procedure. We don't have some ray tracing, we don't have those normal calculations, reflection index, all those crazy stuff.


This actually strikes me as a good example (analogy?) to illustrate quantum effects -- if you let it sit it mostly approaches a flat average level, but there's still occasional "random" splashes that can reach much higher than you'd expect. Makes me think of things like electron tunneling

Don't know if that makes sense to anyone else


This should make a lot of sense. Quantum is particles acting like waves. Then remember that absolute zero was originally formulated as the impossible state of no particles moving. But I'd also be careful taking this as a great analogy to quantum because really what you're just seeing is wave effects (which is really important to quantum) but not seeing some of the other effects. Especially the weird ones.

At first I thought this was SPH (smooth particle hydrodynamics) but the site says it is PIC (particle in cell).[0]

[0] https://yzhu.io/publication/mpmmls2018siggraph/



How come on the iPhone I get a prompt saying " would like to access motion and orientation" but not on Android?


The motion doesn't even work running Bromite on Android, presumably because of the fingerprinting protection.

Its crazy how our phones have all these sophisticated sensors, yet they are mostly used for something related to tracking for ads. So much so that I don't notice when its blocked.


Chrome on Android allows it by default. You have to got to Site Settings to disable it. Safari on iOS prompts the user before allowing it.


It used to be available as standard on both but iOS locked it down after some truly insane demos showing how it could be used for fingerprinting or (IIRC) even detecting what users were typing.

This is why we can’t have good things.


Are you using the same browser on both...?


They cannot be, because all browsers on iOS are reskinned Safari (due to Apple's App Store policies), and Safari is not on Android.


Good point, I was using Firefox on both but as you said Firefox on iOS is just Safari. To be fair to Mozilla, I am running Firefox nightly on Android.


I get the feeling it’s missing an implementation of surface tension.


Very cool, beautiful. I did a kids toy kind of thing like this using Unity for Android taking input from the handheld's accelerometer to make a sphere (ball) roll around (according to how the handheld device is tilted) and bump into targets.

As regards to "the water should eventually stand still" I found the accelerometer input to be sooo sensitive that even when you placed the handheld on a level surface (sussed out with a carpenter level) the sphere would slow down a lot but never stop moving.

A glass of water placed on a table eventually stops moving - according to our senses. But does it really?


Looks like coordinates are inverted on my iPad (landscape mode). The water is falling to the higher part of the screen.


On mine too. iPad is locked into place on the Magic Keyboard. ‘Water’ goes to the top of the screen.


Interesting. Sometimes pockets of not-water (vacuum?) appear in the middle of the liquid. Based on observation of real water, such cavitation would not form in water splashing around in a bucket.


You mean a bubble?


The term bubble implies that the not-water is (mostly) air. But these voids are appearing in the middle of the water, there is nowhere for the air to come in from.


I'm confused by the labelling, normally "super" implies speed but here the interaction gets slower while the pixels increase. Maybe Max is a better descriptor?


In video game terminology, higher rank words mean more graphical fidelity. Normally this is "Ultra" but "Super" is also common.


I've realized that every few months somebody posts a link to one of the many (cool) things on oimo.io. I wonder what the next one will be :)


I opened it on my laptop, which doesn't have any motion sensitive device on it.

Where does the left-right asymmetry arise from?


The universe actually has a very slight tilt.


There's too much random noise, tried to make it to stand still but I think its just impossible


Pretty cool, but it acts more like a dense gas than water. Very bouncy and not sticky enough


For a similar simulation but using a different method, you can find one here[0]. It obviously lacks the force control, but has the viscosity tunable parameter.

[0]:https://matthias-research.github.io/pages/challenges/fluid2d...


Decade or so ago, I had made a water simulation myself in JavaScript: https://asadmemon.com/SPHjs/

I should find some time and modernize it with some more features.

Code: https://github.com/asadm/SPHjs


A one liner CSS to disable selection would help a lot on mobile devices.


When people talk about us living in a simulation...you have to wonder if they have ever tried to simulate real liquids (e.g. computation fluid dynamics).

Computer graphics in films gives people an unrealistic expectation of what we can do. I would think a lot of people look at this CGI and then think such things are possible in real-time gaming/simulation.


The damping could use some extra value. Cool to see it move with my phone. I would like to see more love on the CSS of the selection radios though. Surely you can do better. My phone lost 35% of its battery on this. Happily lost.


Need more damping.


Probably you want to check Water3D also https://oimo.io/works/water3d/


Just curious: why is it not totally symmetric, when opening in a desktop browser (i.e. no motion sensor)?

In real world it's due to chaos but how is it "simulated" in this simulation?



While very cool, what's not realistic is the liquid coming to a rest.

Even 5+ minutes after resting my phone against the wall (to ensure no vibrations), there were still sizable currents.


I thought the same thing when looking at the ocean the other day. I found it very unrealistic that it was still moving about after all this time.


I thought the same thing when looking at my pool the other day. I found it very realistic that the water was still after no movement in it after a period of time.


My point is that we don’t know the forces that the simulation is intending to model. There may be water flowing in/out along the z-axis, for example. Or there could be wind. Assuming that the author intended to simulate the same conditions in your pool, and then criticising them for not modelling it accurately enough, makes no sense to me.


Really cool, I could pair it with some ocean or river noise from mynoise & it will be a nice things to have on a separate screen while working.


This is really cool. Thanks for building it.


Would run this webpage as a screen-saver/entertainer on a debian/ubuntu machine if it were easy to setup.


the Conway's Game of Life Universe explained here, this one is deadly cool!

> https://blog.oimo.io/2023/04/10/life-universe/


This shows how much compute power is in our hands, yet some websites can not even ...


I left my device still and eventually I ended up with a wormhole of not-water spinning.


Very cool!

FYI: you need to run it on your phone with motion and orientation access provided to the app.


Everyone, don't forget to shake your phone!


Apparently my device is in orbit :)



It also decouples frame rate from simulation speed so even if frames are dropped the whole thing doesn’t feel sluggish.


Resizing the window is really fun


it’s upside down on landscape ipad safari, but it’s cool nonetheless !


What the hell is water?


Extremely beautiful


That is amazing!


Super cool!


differential equations ftw


Woah! Almost like 15 years ago!


Nice project. Keep. Pushing.


crashes on firefox


does not crash on firefox

(More seriously - you need to provide more information. On Windows 10, Firefox 116.0.1, it does not crash. But it's a laptop so there's no device motion.)


Uncaught TypeError: this.g is null main.js:81:239

Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0


iWater?!


Meh, I've seen better.


url?



I always took water for granted. In my country where I grew up, we had water available to us in the sink 24/7, 365.

Pure, clean. Drinkable.

As I am now traveling the world, I am experiencing places where water is not to be taken for granted. But only in mild ways. Not in actual life-or-death ways. That happens in countries I have not yet visited.

It’s weird. Most of my time at work I deal with pretty mundane things. And if I am thirsty, water is always available.

Water simulations are extra interesting to me now, because I am realising that in the future maybe I can help bring water to places where people are struggling because of unreliable access to water.

I think it would be very nice to be able to help other people on that way.


This makes no sense.


ChatGPT?


Nope


Ok




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: