4 ms·
Show HN: A simple 2D fluid and gravity simulation with WASM and WebGL
The little particles will gravitate to your cursor (or touch location), and can even enter stable orbits if the conditions are right!
Mainly an excuse for me to experiment with wasm and WebGL, but it makes for a surprisingly good fidget toy.
- gorjusborg 2y agohttps://github.com/aestuans/blob https://github.com/aestuans/blob
- nand-less 2y agoThis is really neat. I bet if you made the blobs follow a target point that moved around randomly it could make a good screensaver animation.
- airstrike 2y agoThis is great! If you're looking for ideas on how to extend it, I'd love to be able to play with some of the parameters, or have presets to pick from. At some point I tried spinning it like a pizza dough but obviously these are way too liquid for that
- rigid 2y agomobile users should tap the canvas for the particles to move.
- bun_terminator 2y agoaww why does it not follow my finger as it does my cursor? this would be so fun!
- aestuans 2y agoGood point, added touch support :)
- fidotron 2y agoHow did you decide to divide the work between the wasm and webgl?
- rcarmo 2y agoThis has great potential as a cat toy (provided you get a tough touchscreen)
- tetris11 2y agosuper slow on Firefox, naturally
- seanisom 2y agoWorking fine for me on Firefox - their WebGL support tends to be good enough, although there are plenty of other resource issues.
- mft_ 2y ago60 fps for me in Firefox, with the processor <1% while running. 3060Ti was working, but not hard.
- taberiand 2y agoWorks without issue on my phone, Android Firefox
- vrtnis 2y agovery cool! if you're exploring wasm for graphics, take a look at Wander- lets you create and execute "renderlets" — portable modules containing graphics data and code compiled to wasm https://github.com/renderlet/wander https://github.com/renderlet/wander
- CSMastermind 2y agoThis is probably a dumb question but I assume anything leveraging WASM can only run on the CPU?
- vrtnis 2y agowhile it's true that wasm was originally designed to run primarily on the cpu(e.g., executed in a sandboxed environment on the main thread, which is generally managed by the cpu), the assumption that wasm only runs on the cpu might be becoming a bit dated. esp. as a result of webgpu and frameworks mentioned above, wasm is increasingly capable of executing on the gpu imho.
- seanisom 2y agoThis is pretty cool - great to see what a small codebase can do with raw WebGL. Have you looked at WebGPU at all?
- aestuans 2y agoI wanted something that can run everywhere and WebGPU support is still behind some flags in Firefox and Safari I think, but I'm pretty excited about trying that as well.
- justin_kempton 2y agoBeautiful!
- numberless 2y agoVery nice! Took me a while to realise it has mouse based gravity but very good! (I clicked directly on the link on a mobile device without checking here)
- aestuans 2y agoThank you. Yeah mobile support was an oversight from me, I added touch support now.
- jzting 2y agoNice use of smooth union SDFs :) I did a similar thing in 3D here: https://generator.artblocks.io/62000470 https://generator.artblocks.io/62000470
- max_ 2y agoThis is interesting. You need to post a write up. I would read it.