:) Love seeing this at the top of HN! This project, along with sandspiel (by the same creator), are some of my biggest inspirations!
If you're not aware, there's a relatively deep technical explanation of how sandspiel was built which I found interesting. If you're into orb.farm then you'll probably find it interesting, too: https://maxbittker.com/making-sandspiel
And, shameless plug, I've been teaching myself Rust/Bevy/ECS lately and am creating a simulation ant farm. The project is still in its infancy, and is nowhere near as cool as these, but https://meomix.github.io/symbiants/ for some ants that scurry around and emergently create piles of sand. Pan/Zoom launching in a couple of hours, feeding them hopefully in the next week or so. If you have ideas for simple features I'd love to hear them or if you want to follow along with the project check my profile for a Discord link.
This is maybe a bit too specific to Clojure and more generally about concurrency in it, but Rich Hickey introduced Clojure with an ant simulation demonstration. The video quality is not great, but there's an article (sadly not up anymore, but on the way back machine):
I am a sucker for falling sand games, thanks for making this. Makes me want to make my own, I've been brainstorming ideas of complex "ecosystem" games for a while but never thought to just use a sand engine!
DonHopkins 3 months ago | parent | context | favorite | on: Making Sandspiel
I am a huge fan of Sandspiel, which Max described in this article from 2019, and recently I was delighted to discover that he and TodePond have been doing a huge amount of wonderful work since then.
What happens when you combine Sandspiel with a Scratch-like blocks based visual programming language that lets you look inside and see how rules work, tweak and modify them, and even define your own rules for different types of particles? And then form a community around it for sharing and learning from each other and building on top of each other's work.
Here is Max's and TodePond's brilliantly ambitious visually programmable sequel, Sandspiel Studio!
I've written more about Sandspeil Studio and related topics of artificial life, cellular automata, and visual programming, and quoted some interesting discussion with Max and TodePond from their Discord server (they actually already knew about most of this stuff, but they love it as much as I do), in the "Ask HN: What weird technical scene are you fond/part of?" discussion, in reply to api's comment about Digital Artificial Life:
api 67 days ago | parent | context | favorite | on: Ask HN: What weird technical scene are you fond/pa...
Digital Artificial Life -- as in evolving program ecosystems, artificial chemistries or cellular automata that can manifest life-like phenomena, etc.
Haven't done much with it in a while but was very into it in college. It's both a minor scientific field (would probably be grouped under both theoretical biology and AI research) and a hobbyist field with some really interesting projects.
DonHopkins 67 days ago | prev [–]
That's one of my long time interests and hobbies, which I write about on HN and discuss with other people frequently. I'm supposed to be doing something else right now so I'll quickly drop a few disorganized quotes and links here. (Sorry I didn't have time to be more concise!)
A few years ago I ran across Max Bittker's beautiful "Sandspiel", which is a delightful cellular automata toy that simulates sand and other rules:
A few days ago I saw him tweet some amazing stuff that resonated with me, which then led me to discover what he's been working with Lu Wilson (TodePond): Sandspiel Studio -- user definable rules using a block based visual programming language.
WTF. What starts out as boxes turns into some kind of recursive self-referential nightmare which can generate IFS fractals and then... wait that's not affine, stop, help, and now it's totally destroyed all frames of reference.
That's not a tech demo, that's an epistemological nightmare, that is.
The balancing seems a bit off. But oh man, this thing is so mesmerizing and addictive :)
Daphnia are too aggressive eating algae and produce too many eggs when doing so, so the algae population gets constantly suppressed in most settings.
Fish also barely eat daphnia so it is hard to control their population with them.
It is also too hard for daphnia to eat grass. It slowly grows uncontrolled to fill a lot of the tank, significantly reducing mobility and blocking light. Grass also produces too little oxygen.
Bacteria always end up dying off quickly because there is not enough material for them to decompose. It's unclear where the stuff they eat comes from and how the nitrogen bacteria produce affects plant growth.
As a result of all of this, oxygen is always fluctuating at the minimum, going into the red at night often. Which means fish always die eventually, which seems to be making people sad :(
You have to tinker a bit. I haven't figured out the role that the bacteria play yet, but too low of oxygen means you need more algae/grass to generate more O2 during daylight hours. (And yes, it will crash at night when there's less photosynthesis)
Don't put too many critters in there either. Mine is pretty stable for a few hours now with 3 fish, and ample grass and algae.
Side question: Is it in my head, or are the fish slowly growing?
For bacteria: I believe their role is to provide nitrogen in the sand by eating algae poop. Nitrogen in the sand is required for plants in that sand to grow.
You can test this a bit:
1. Create a new sphere and fill it with water. Add a bit of sand at the bottom
2. Add algae and fastforward.
3. The algae will multiply, causing the o2 to shoot up.
4. The algae will die off because of the high o2. Their dead bodies (purple dots) will litter the sea floor.
5. Put in some bacteria.
6. You can watch the bacteria eat the purple dots. Note that the sand changes color slightly as they do - I think that's the sand becoming nitrogen-rich.
Yes the sand seems to darken a bit under where bacteria were eating, that might be the nitrogen, although it doesn't seem to spread over the rest of the sand, not sure if the plants are getting it.
Also you need to keep adding bacteria because the keep dying off. They don't have the mobility to find all the dead algae, so they are gone pretty quickly.
Adding a lot of algae always makes daphnia reproduce a lot and eventually they eat all the algae.
But I think I figured out the solution: many fish. With enough fish you can keep that initial wave of daphnia under control, so that they don't eat all the algae and crash the oxygen, so the fish don't die.
This seems to last, although it is still right on the edge of oxygen.
I tried this out and it works, but it felt like cheating. The algae production counts towards o2 balance, but that doesn't make sense if their water is sectioned off.
I love these kinds of sandbox games, Orb Farm is super nice to have it running directly in the browser for a little procrastination break. Although my favorite is probably The Powder Toy [0], I've been following this project for years.
The guy that created orb.farm[0] is the same guy behind sandspiel.club[1], which is a browser-based Rust/WebGL powdertoy-like implementation. I added it to my phone's home screen so my kids have been playing with it for years!
In a similar vein, grass floats, and supports rocks, which are water tight. The rocks can support sand, and therefore more plants. The rocks also stack.
Nicely done take on the form. The original game of this type was a Japanese Java applet known as "Falling sand game". I'm not sure it's preserved anywhere though.
I'm pretty sure I played a similar game in like '95. It was called Logo. It had a turtle, and you could use the turtle (and your imagination) to draw pretty things on the screen. You probably played it too.
You need to build a stateless fish tank via replicas. It's pretty common that a new feature gets introduced into the upstream. You never even see it until one of your tanks crashes. That's why it's critical to have a backup strategy, n+1 redundancy, and a robust change control process to limit contagion risk.
I used to have a roommate that had like 12 tanks going all the time. I couldn't even complain, because I hosted my own kubernetes cluster, so I understood exactly why he needed them.
Fun! Also funny because I've gotten into container ponds, medaka (Japanese ricefish), daphnia/moina and other microfauna over the last 2 months. It's an interesting hobby. The biggest thing I've noticed is how much local bees need a water source.
>Sega’s Dreamcast was ultimately a failure, as Sony came to dominate the early-2000s market with the PlayStation 2. But Sega’s machine left behind a library of uniquely innovative and influential software. And perhaps no title was as memorable as Yutaka “Yoot” Saito’s iconoclastic Seaman, a virtual pet simulator that had you use a microphone to converse with a moody, sarcastic man-fish, with help from a narrator voiced by Leonard Nimoy.
They eat waste from algae, but they seems to devour it too quickly, and may even spur more algae growth. The balance and influences seems to be a bit of a mystery, despite the documentation.
If you create an isolated section where the top 1/3rd is algae and there's a tiny bit of bacteria at the bottom it's trivially self sustaining, until CO2 runs out. So these can be sort of "Oxygen generators" to power the rest of your system.
This seems to form the overall basis of the system since during the day the O2 rises and during the night the O2 falls. Further, at night the daphnea awaken to eat the algea, and the fish can eat the daphnea. In theory this should balance but in my experience daphnea are absolute monsters and need to be tightly controlled.
I create small stable environments and then a larger middle environment. The small stable environments regulate O2 and CO2 with algea and bacteria.
The middle environment is then some sand, grass, and fish. There's also algea, a very very small number of daphnea, and bacteria.
The middle is the chaotic one but if your 'regulators' are doing their jobs you can keep things stable. Make sure there's some shade so that your fish can hide from the sun (a thing?) and so far I think my system is ~indefinitely stable. I have 4 or 5 fish at a given time, although I have 7 at the moment but I suspect that's a peak value. edit: OK, I have 9 fish actually, so maybe I can sustain more than I had though. I may need a bit more O2 output for this many, but there's plenty of grass for them to eat.
Background image is distracting, otherwise, very good ! It could be gamified with points and fish reproducing, like try to find a way so that users have to maximize some kind of goal while making tradeoffs. Like city building games
Game probably needs some way of making the player feel more invested in the game. Maybe you can only place so many particles per day, and then you have to wait until the next day. Or you can pay to get more particles now.
If you could pay for some bonus materials that would be great too. Though I'd rather unlock them randomly from a kind of loot box system.
And how come I can't level up? I don't feel like I'm making any progress without an XP bar. Clearly this person does not understand game design.
Not everything needs to be a fully developed game. Sometimes people make things for gasp the fun of it and not to build a comprehensive game that will appeal to everyone and their demanding cousins.
OP is stating his love for the worst parts of games. This would be like someone saying they love pages filled with ads, chat bots, pop-ups, auto play and scripts which take seconds to load.
If you're not aware, there's a relatively deep technical explanation of how sandspiel was built which I found interesting. If you're into orb.farm then you'll probably find it interesting, too: https://maxbittker.com/making-sandspiel
And, shameless plug, I've been teaching myself Rust/Bevy/ECS lately and am creating a simulation ant farm. The project is still in its infancy, and is nowhere near as cool as these, but https://meomix.github.io/symbiants/ for some ants that scurry around and emergently create piles of sand. Pan/Zoom launching in a couple of hours, feeding them hopefully in the next week or so. If you have ideas for simple features I'd love to hear them or if you want to follow along with the project check my profile for a Discord link.