Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Play with Shaders Inspired by Slime Mold (observablehq.com)
67 points by Yenrabbit on March 30, 2021 | hide | past | favorite | 23 comments



This reminds me of a coding adventure YT video that replicates slime molds in Unity, look at the end to see some high res videos of it - https://youtu.be/X-iSQQgOd1A


Coding Aventure is one of my favorite intellectual(?) exploration channels, along with Primer, who's had a great string of genetic/evolution simulation videos exploring the emergent evolution of society

https://www.youtube.com/watch?v=goePYJ74Ydg


The article credits that video directly for inspiration.


Whoops, didn't see that. I thought it was a little peculiar that there were two things about simulating mold in a week in my feeds; but I just chalked it up to frequency bias. Now I'm wondering if all the 3d printed cycloidal drive stuff I've been seeing is more than just coincidence...


I wonder if previous 'Coding Adventures' videos have prompted similar 'coincidences' with people wondering why they are suddenly seeing procedural planets popping up all over the place :)


Somewhat related, here's an interesting video about the behavior of Slime Mold:

Nova - Se47 - Ep10 - Secret Mind of Slime https://www.dailymotion.com/video/x7z6ycz

(Someone shared it here on another post.)


This is super interesting. I've actually been looking for a way to render 100,000s of points in an animation similar to these so I will definitely take a look at using shaders now.


Great - good luck!


Author here, happy to answer any questions about the implementation. I'd also love to see any interesting patterns you find :)


Like you, I also loved Sebastian Lague's video on slime mold. Would you suggest starting on a CPU based version if I have no knowledge of shaders?


That's what I did when I recently came across the same model. Here's my CPU-based implementation (in Rust): https://github.com/mindv0rtex/physarum


You can get some fun patterns even at much smaller scale, so a CPU-based approach should be entertaining enough. That said, I had no knowledge of shaders either before this project! I'm johnowhitaker on twitter or email - happy to chat if you want to talk specifics.


here's something else interesting about slime mould https://www.nationalgeographic.com/science/article/slime-mou...


Does not seem to work in Safari on Big Sur, all I see is js errors where the animations should be.


Doesn't work in Firefox either, including the dev edition which is usually more up to date:

"viewof gl = TypeError: can't access property "viewport", gl is null"

It does work in the new Edge and Chrome. Doesn't load at all in IE, but I take that as a good thing.


No problem for me in Firefox Nightly 89.0a1.


Hmmm... my work laptop can't run it with Firefox (regular, dev edition, or nightly), but my home PC can on regular Firefox. And it does run on my work laptop in Chrome. Curious.


Safari is a bit behind on javascript and animations. I'm excited for the current Safari preview to become mainstream.


Same in Safari in iOS.

`viewof gl = TypeError: null is not an object (evaluating 'gl.viewport')`


I tried turning on WebGL and WebGPU in the Safari settings, but it just shows a black box on my iPhone 11


I'm guessing there's no collisions from the original paper in this implementation?

Edit: also, are boundaries being blurred properly with wrapping enabled? It seems to create rectangular patterns(it could just be because of the initial conditions though).


I'll be honest I found the paper AFTER finishing the project - my implementation was based on the rough description in the video :) Collisions would be very hard to implement, but I will definitely take a look at the blurring - at the moment it doesn't wrap around.


In green slime I saw a central ring that seemed to be reinforcing itself. It stayed circular for ages. And then equidistant parallel lines along each side.




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

Search: