SproutLife – Evolving version of Conway’s Game of Life
github.com
github.com
I recommend checking out the gallery, and working off the latest source https://github.com/ShprAlex/SproutLife/tree/master/gallery
As far as "evolving towards what", here are my thoughts on the subject:
The inspiration for SproutLife was to create an open ended genome with unlimited potential for evolution.
The initial success was that this was possible.
Anticlimactically, it turns out that an open ended genome in a turing complete environment does not lead to some kind of transcendent evolutionary product. The solutions that emerge are still limited by the simple problems they are tasked with.
It is the evolutionary journey, rather than a specific destination where SproutLife can be most informative. It can be used to study the role that disruption plays as a threat to stability and a necessity for progress.
In particular, the process of "collapse" is an interesting topic for investigation. From Covid to the popping of stock market bubbles, political upheaval, and even global warming, we are surrounded by real and potential falling of the established order. SproutLife also exhibits this kind of behavior and can let us understand how to quantify and perhaps predict it.
Can you explain how you are evaluating fitness? Your readme says that it's based on collective success rather than individual. How do you score that?
Thomas Ray's "Tierra" would be as good of a starting point as any, or either of the two Artificial Life volumes published by Addison Wesley in that era.
I've got some passing familiarity with the A-life literature, and I'm not aware of anything like OP. So it's not clear what benefit mentioning Tierra has to a reader beyond name-dropping.
Tierra was among the first documented examples of evolving code/evolving rules and led to many other ALife experiments with simple rules governing evolution yet complicated outcomes. The work done then didn't lead to any particular conclusions, but it could be inspirational when thinking about how to apply selection pressure, what degrees of freedom to allow, and the nature of the rules controlling the CA.
I wasn't name-dropping Tierra, I was giving it as one entry point (and an early one at that) into the prior work on this sort of thing. I could have left the name out, and then some other commenter (perhaps even you) would have said "oh yeah, why not actually give some examples?"
That same bewilderment might not happen if you read about all the amazing things that already exist before you even get started. If you read or see too much of what's already been done first, you might just end up feeling starting from scratch is boring, because it isn't as interesting as the more advanced stuff other people had already done.
This is pretty much my feeling in every side project idea I've thought up :D
Now that I check back, sure enough it's the same commenter :D
https://news.ycombinator.com/item?id=24789536
in which the end of my final comment was:
"I know what the differences are - I've worked in this field for 20 years. I was just trying to give you a gentle smiley faced nudge to jump in on a "better" version of what you've already done in order to Make The World A Better Place."
It seems that this attitude rubs some people the wrong way, and I certainly apologize for that. I don't apologize for my belief that it's better when exploring new projects to find out as much as possible about what has been done before. I made the mistake of not doing that when I was younger, and my software has been the worse for it ever since. If you feel that you or others are immune from this, awesome, go for it, but give me room in the skeptics corner.
no need to talk about 'better', etc.
That said, I don't think "Show HN" should be considered a public academic peer review. The internet is full of enough negativity.
If you want to offer advice on HN, try framing it like this:
[GREAT WORK] I especially like [FEATURE 1..i] the [SOMETHING ELSE] is [WELL WRITTEN|WELL DOCUMENTED].
If you are looking to [EXPAND/EXTEND/DEVELOP] [FEATURE/DEPLOYMENT/APPLICATIONS] I recommend [BOOK|BLOG|PAPER]
> If you feel that you or others are immune from this, awesome, go for it, but give me room in the skeptics corner.
You are quite keen on feedback, so take the feedback offered by myself and others here into consideration. Communication skills are not a weakness, they are a strength.
[ You can see this comment was written in a positive, hopefully helpful manner ]
Nobody here is suggesting it's bad to tell someone about prior work. They're suggesting it can be done without belittling the person's project.
(Also, in my case you were hardly just telling me about other projects. You said that my web app did something that can already be done in an existing native language/environment, so I should have "just" ported that whole language/environment to the browser instead of building my web app.)
ShowHN needs comments like Paul's. Tact and expertise never come equally in the same package. We should appreciate this and grow some thicker skin in the meantime.
There is no reason at all for an expert to act like an asshole, and being an expert should not mean that bad behaviour should be tolerated from them. In fact, experts should be held to a higher standard, because they are examples people look up to.
Whereas, if the feedback was rude but also pinpoint-accurate and incredibly actionable, I don't think there'd be a big subthread about it.
> the feedback that sparked this discussion does seem like useful feedback
The former was a summary of the latter. The "feedback" we're talking about gave no actual information about what the person thinks is wrong with TFA, it just said that TFA's author is ignorant and maybe look at XYZ.
Here is a video where these loops compete - https://www.youtube.com/watch?v=MGRPwuVvErs&list=LL&index=14...
SproutLife is a passion project for me. I would like to give attention to previous works, and more importantly highlight some kind of practical benefits that studying alife has. We are surrounded by living evolving structures, and having a better mathematical concept of this can be pretty useful which is essentially what alife give us.
I think Tierra was featured in Steven Levy's book Artifical Life.
In another thread on HN, people are talking about where programmers of the 90's thought we were headed and your mention of Tierra reminds me that I thought artificial life was going to be a big, big deal.
I bet you could create a very interesting version of this with simple neural networks that start with random weights and determine the (x, y) coordinates to which an organism grows - reproduction is simply a matter of randomly selecting weights from two or more identical networks, and organisms that grow inefficiently are naturally selected against. I believe you could capture an increasingly complex range of organism shapes and introduce natural lifespans with a sufficiently deep network.
previous discussion: https://news.ycombinator.com/item?id=11078471
There’s also an Avida-ED version designed for classroom use.
I wonder if they also encountered the issue where the genomes/programs get simpler over time. In some ways one would expect evolution to increase complexity, but what I found happening is that prioritizing reproduction means creating pressure to decrease complexity, thereby increasing the reproduction rate and decreasing the footprint for negative mutations. The way SproutLife counteracted this was to add a "competitive" metric where bigger organism win over smaller ones, kind of like big trees casting shade to block smaller shrubs.
If the author models some kind of resource (like food) it may make it easier. Or even make possible for an organism to be a parasite of another and so on.