How I created an evolving neural network ecosystem
Vložit
- čas přidán 18. 06. 2024
- After my last video I got a lot of comments (mainly on Reddit) asking me to make a video explaining how I did it.
It took me a while to learn how to video edit, voice act, and animate, so it was about time I presented and explained this project.
Made in C# on Unity
I highly inspired my algorithm from the following document :
Stanley K. O. and Miikkulainen R. (2002). Evolving Neural
Networks through Augmenting Topologies. MIT Press journals
=================================
The Bibites is an Artificial Life (Living AI!) simulation where I recreate some biological processes and let the lifeforms live, eat, reproduce, and mutate, leading to active evolution.
Their can evolve their body through a genetic algorithm and their behavior through a custom neural network algorithm.
=================================
Follow me on Twitter : / thebibites
Support the project on Patreon : / thebibites
Join the community on Reddit : / thebibites
Download and play the game : leocaussan.itch.io/the-bibites
Subscribe to the channel: / @thebibitesdigitallife
Music: "Perspectives" by Kevin MacLeod
incompetech.com/music/royalty-... - Věda a technologie
You could use shape to show the speed. A faster Bibit could be more slender.
Alternately, flickering the color inside the bibit could indicate speed or some other process driving the bibit.
and then slower bibits could be more t h i c c
@draqon ofwhitestars sounds personnel
@draqon ofwhitestars you fat?
@draqon ofwhitestars lmao someone has some insecurities
I would suggest adding three things:
1. Sexual reproduction, this would allow for much higher genetic diversity along with competition for mates
2. Objects other than food that the bibites can manipulate, allowing for the construction of structures
3. Vision? I don't know how easily this could be done, but if you could accomplish this, a whole range of new possibilities for the creatures would be opened up
Agreed on all of them !
@@TheBibitesDigitalLife bibite eat bibite.
cam K vision could use ray tracing but it might be a bit slow, vision when being used would be interesting to add in a relationship between field of view and a bit of uncertainty with depth perception so there’s a trade off
Also when it comes to food it would be simpler to just place food using some rng, it will limit itself as food would always be limited at the same rate. It would need some gentle adjustment of the probability of food placement per tick but due to the random nature you could also get times of abundance and famine making the population more dynamic
@@chrissmith3587 they are already implimented.
Add a pellet to individuals so they canibalize.
Make it run on an android with screen-sized ecosystems and provide communication by bluetooth to other devices so they can migrate to other ecosystems. And let them make audio noise by intentionally bumping an on-screen red button, and hear noise by listening to the device microphone.
Omg that would be incredible ahah
Real-life interaction and wireless migration... Might even be dangerous ahah
Haha that's a great idea! Somebodt get on this.
I'd download
@@TheBibitesDigitalLife That would be an epic program! A lot of people would be willing to run it and provide feedback.
great ideas
Since it's a computer program shouldn't they be called Bibytes?
Damn, missed a good opportunity right there....
Good, or maybe Bibites to Bibit's
@@DarckHardStyle No, the conversion is 8 Bibites equal a Bibit :D
B
@@NStripleseven C
This is pretty cool, I am working on a similar (Very similar, in fact, down to using NEAT) project myself.
One thing I have noticed in your video at around 3:35 is that your bibites can collide and grab each other, I suggest that you look at energy sharing, i.e. if two creatures are colliding and each are willing enough, they share their energy in proportion of how much energy the other has. I think it just might evolve synergy organisms or even multi-cellular groups of bibites, which would be very cool.
Here is another similar project, in case anyone is interested: czcams.com/video/tDqDRze9cmk/video.html
what kind of software do people use to make these things
@@raccoonman4691 Mine uses the Unity game engine
unity is nice because it takes care of the physics, collisions, etc. Already.
It does come with its limitations too tho
I actually do all of my calculations on a separate C# thread, and only use Unity to display the result, which helps to avoid some of the limitations, but I don't get to use any of the Unity physics.
Concerning the colors: You can have different viewing modes where colors represent different states like the current action (mating, laying egg, searching food) or other states (energy level, diet composition, ...)
I was thinking that the bibites don't have to be a solid color. The head, tail, and each side could be used to (debug) represent some trait that is not readily apparent. So, like five colors on each bibite, even though that complicates the rendering model.
@@briansepolen4917 They are kinda small tho
Did I search for this? No. Did I watch the whole thing? YES
Ahahah, it's my pleasure
While nutrients on earth are a closed loop system, Energy is not, plants absorb incoming energy from the sun, capturing it in chemical bonds. Maybe you could make a system where the food pellets are also evolving to cover maximum area to capture light.
That would be very interesting :o !
Evolving food?
Or make it possible that bibets evolve photosynthesis and make movement cost energy, thus giving them the ability to become photosynthetic plankton, while the pallets represent inorganic foodsources
Hmm yeah, so there could develop a true microcosm, with different "levels" of life.
The problem would probably come from computing resources
@@TheBibitesDigitalLife Don't let technology limit your vision. Don't let your dreams just be dreams! XD
But seriously, I have no Idea of the technical aspects. I'm more comfortable with the evolution part than the simulation part :/
This project is seriously interesting though. I love these kinds of simulations. Good work.
use graphs to represent what traits are most used, this would show what traits are the most favored for survival.
Absolutely also better brain graphs...
I've been searching for a solution, but without any luck so far
Will you share the source code on git in description ? I'd be curious to see how it works. Maybe people can contribute
I love this, its so interesting, i could see it for hours, if more variables were added id see it for even longer.
1:36 I love how there's just that one that just runs around in circles trying to get a pellet
Bibites can suffer from birth defects too 😢
I just found this and I haven't watched your other videos yet, but it's exactly the kind of thing I've been learning coding for! I love the idea of ecosystem simulators as sort of digital fishtank where you can experiment with different organisms and how they react to environments and each other, with no real animals getting involved. I'm excited to see where this goes!
Thank you, I absolutely feel the same way (I'm not sinking many hundred hours in this project for nothing ahah) !
Check out davidrandallmiller too. He does a pretty interesting breakdown of a similar setup, minus the realtime aspect.
czcams.com/video/N3tRFayqVtk/video.html
This is cool.
Have you considered using CPU cycles as your "energy"?
I don't know how to implement this but it would be aa more "real" limitation than an arbitrary amount of pellets.
Excellent concept particularly applied to the real world I'd think. 👍
Yeah, the Tierra simulation used that concept (RAM memory as ressource) it's truly interesting. I thought about it at the start but didn't really have any idea on how to implement it either ahah
@@TheBibitesDigitalLife Maybe you could use something like the time the app takes processing each animal as the energy consumption per-frame, weighted so that the total framerate of the app stays around the target (if the frame is taking too long to process, animals start running out of energy)?
@@TiagoTiagoT he could copy the current pellet spawner formula and make it use framerate as a multiplier for energy use.
@@ancapftw9113 That's actually a really good suggestion.
One would have to save the relative frametime over the last second or so before new pallets get spawned and then multiplay with the pallet amount. Do this by summing up all Time.deltaTimes during that timeframe and divide by the amount of samples.
When I saw this in my feed I was like cool a simulated evolving ecosystem I haven't seen yet! Then I saw the channel name and I was like ah bin tabarnak ! Very well done, this looks promising
Ahahah Esti de criss merci beaucoup !
you gave me some ideas and inspired me to do some project
Honestly glad to hear that :) please share
@@TheBibitesDigitalLifeMaybe I will start a channel with my projects? Some people asked me to share my projects, I think that it could be a good idea.
(For now I did some basic stuff, like camera etc, didnt have enough time for bigger things)
@@grevel1376 still, send me a link when you get around doing it :)
thebibites@gmail.com
Ok, I have working prototype, it works, but I want to tweak some energy constants and add few sensors for creatures. Because of upcoming week ._. probably I will finish it next weekend.
Ok, sorry I didn't publish that this weekend, I have ended project, recorded videos, recorded audio and preapred slides. I started to edit that into a video, but I have big history exam next week and unfortunately it is more important. I will upload everything when I will have free time. Thank you.
Merci beaucoup d'avoir entièrement traduis la vidéo en français. En plus, tu as très bien simulé l'évolution naturelle. Super vidéo
Brilliant. Thank you for this, its mesmerising. Great use of neural networks and I'm looking forward to future developments.
Thanks again
Thank you so much :)
I'm currently recording a video about it but in the meantime I've released the simulation if you want to try it out on your own computer :
leocaussan.itch.io/the-bibites
I like the one that's running in circles but still out surviving most of the others.
This video got me going crosseyed in a good way. Good job!
As far as having something to show their 'stats' in a visual fashion the first thing you need to do is limit the number of stats you want to show. Some are already visible. For instance speed. They already move on screen at their speed. The same thing with size as you can visually check that. If you can get the number down low enough then depending on how you have it set up you might be able to just have a few dots on their back of appropriate color. That way you can maintain their unique coloration.
Also you have probably already read or heard this but adding a predator will not make your population problems go away. Your closed system idea will however likely do it for you (if the ecosystem doesn't collapse somehow).
Do you have the ability to pause it and then click on them to get that info? Or maybe the ability output everyone's current stats to a file with a capture the current screen? This wouldn't give you a constant finger on the pulse as it were but would let you check on any one of them that seems to be acting weird. The first idea would be good for the videos as you can pop them up on screen as needed to explain what is happening. (also the mouth idea is a good visual cue)
you could have the antenna or mouths change color along the spectrum to indicate whether they're an omnivore or what.
i'm really interested to see if they'll develop as predators or scavengers when the food dropping feature is added. Great work!
Beautiful project my friend! :) Bibites are so cute!
Thank you for sharing!
What a great video! It mixes so many disciplines!
i think the colors should stay random. if it really works properly then the colors will end up being representative of different traits like speed anyway.
My suggestion is to give the bibits a way to determine the fitness of other bibits, and prefer mating with ones who are more fit.
another idea i had after watching many similar videos to this is maybe add more than one type of food. Like maybe 1 type is more numerous but provides less energy and another type is the opposite. Eventually I guess the idea would be that some bibits would eventually specialize in one food type (or maybe not, who knows).
i really like the idea of a closed energy loop where dead bibits and/or waste turn into new pellets eventually. I'm really interested in this project and like how you want to work with a community to develop it more.. I subscribed.
what about cannibal bibites who eats another bibites and choose target by color
That would already be possible (if they evolve to do so) in the most recent update
but why the would do that? they can use feromones to indentify their own kind
@@aricre8886 but they have to evolve to do so !
There's no cost function to prevent them from choosing to eat their own kind, ya? Maybe after they eat meat they get slowed down for a duration of time and the amount of slowing and duration of being slowed are a function of how similar they are to their pray
Kyle real cost function would be potential damage taken during the fight.
Bro, CZcams suggest me your video and I'm glad it did it ! I will devore all your content, it seems so interresting OMG
Very nice thoughts on how every feature brings with it an efficiency penalty! I'm very excited to see this unfold!
2:59 Neuro Evolution of Augmenting Topologies
3:16 Stanley K. O. 2002
3:19 RT-NEAT
For some reason most of the comments are people with experience with similar projects or at least have experienced programming such things. Wow
Yeah, quite an awesome community :)
Seeing this old prototype for the simulation is oddly surreal.
this was a very entertaining video, i hope you keep producing such video.
Add classical physics
Like basic Newton laws so they interact with environment
Just spawn few 2D objects that just interact and pass organism's momentum to it.
But floor should have slight friction as a fundamental property of basic area where it exists.
So while organism takes in food, the part of food which is taken is converted to waste as it moves more and more cause it's getting energy wasted from friction, but here's a catch, were will the energy go after it goes to friction?
Well that is take by the background (area where everything simulated exist) and that energy is collected, once enough of it is there background takes that energy and spawns an food particle, with random place.
This is a great convectional cycle that allows your organism to interact with objects to create things on 2D plane!
But things get tricker if u add something more....but what?
Adding a condition!
If and organism of specific type pushes few objects that could enclose an area but a little bit is still opened through which they can come in and out, then the background triggers to spawn food mostly inside that structure, this let's our organisms think and start reasoning for survival !
There is no limitations of what to expect as we really don't know how that kind of life would react to this type of change, *they are the once who change things not something already programmed to change without their will!*
In a nutshell *you give them freedom of choice, a path that divides into two, a will*
You say to them that, we grant you this power only if you fulfill this task, and so on.
So this is it.
I Hope this will be helpful
THANKS FOR READING SO FAR GREAT PERSON!
😊😊😊😊😊
Also I am new to this channel 😁
No way, you saw what happened with Cortana!
@@captainbadassitude1845 don't worry, his computer isn't enough to simulate her.
I think that "baby's color" should be something chosen by the neural network, so color could act as a job assigner, like in ants
So each color is associated with a job?
Came here from reddit, this is a really interesting project! Thanks for sharing.
Great Work! Love your stuff
They needs a purpose to collaborate, look for the exploration exploitation dilemma, zero sum games.
And thanks for the French subtitles :)
You can also example ensures that food is concentrated in one place instead of being distributed fairly.
he should be able to attack each other (besides predation) and be able to see the color of the others, to see if a form of rasism could emerge.
And we need to add sunlight to keep the " human simulation going
We recently updated the global warming patch to see how the humans react
its amazing to see what how much this have evolved from the beginning!
Excellent and inspiring. Thanks for taking the time to make a video
I'll be making more !
Feromones - add diffusion and hlaflife.
This looks very interesting. Have you considered using the GPU for computation? Algorithm would have to be changed a lot, but it would incredibly improve the performance. Or just try to utilize all CPU cores. Also you could add patterns to bibits to make them look more pretty, like dots, checkered, crosses and many others. Also you could add more needs than just food, like there could be a day-night cycle, weather, seasons, terrain with water sources and stuff. It would make the system so more complex but it would be incredible. You could make eggs need certain environments and make egg cost dependent on how quickly it hatches, how big of a range of temperatures it can handle and stuff. You could add more ways that bibits can communicate, for example sound, which transmits information instantly in certain range. You could also split world in chunks for optimization and allowing much bigger worlds. I know, all of the stuff I said is hard to implement and would increase project scope a lot, but I just think that it would be fun to experiment with those features. This project is just really awesome, I want to see it update and change over time. I wish I could run something like this on my pc.
Thanks !
Yeah I'll probably need help for performance optimization, but all your pointers will help a lot already!
I'm not experienced with threading and GPU ...
@@TheBibitesDigitalLife Thank you for responding to me, yeah, threading and GPU stuff is complicated, I'm just learning it, but it's a very interesting technology that has many uses. By the way, are you going to make this project open source? I would love to experiment with it.
What a cool idea. I'm fascinated by this story of the bibits.
Hey man, this project is really interesting!!. I love the idea. My only suggestions is add predation like you describe at the end of the video. Mix food/predation would be interesting. Another thing would add obstacles in their path. Another interesting is adding a seed which conduct to creation of pellets/food.
How is there only 1 comment this is CRAZY COOL!!!
The channel got banned by mistake by CZcams, and since being reinstated All my previous comments disappeared :(
@@TheBibitesDigitalLife that's a shame. You got a pretty cool channel brother, subscribed.
I think the obvious Additions would be flocking or non flocking, and housing, like a bee hive or anthill
Remember to post updates frequently! even if it's a small feature addition, since development isn't so fast i'm sure we'd love to see any small changes
Such amazing project
i would be very interested to see some source code. I dont know if you are ever planning on making money with this or not, but if you publish it on github, a lot of people could help out and build up from your already very impressive base.
Yeah I intend on making it open source someday, but I'm not sure I understand a lot about it yet... I'll need to do some research.
And yes, living from this and being full time on this project would truly be a dream come true, but I don't know if that's realistic ahah
@@TheBibitesDigitalLife I am fascinated with your work, I would love to know what language you programmed it in!! I can't find info about it...Greetings from Argentina!! You have inspired me and my little brother so much. When I showed him your work he was impressed!!
yay colour now we can have racism!
AI really is becoming more advanced these days
First:Lol
Second: this kinda remenbers me that colours could be used as mechanic in case of vision being added like how poisonous frogs do.
Super boulot, hate de voir la suite !
Simply amazing! Keep up the good work! :)
Thank you very much :) I sure will
they are already fighting each other for food. but they are reproducing asexually. my suggestion: try adding sex and sexual selection... at one point they'll start farming ;)
hi
Hi
Hi
Hi
Hi
Hi
A while ago I played a game “Sim life“ it made me want to program something like your simulation. I can think of a whole bunch of ways to make their behaviors more interesting, basically it’s make the world more complex and give lots of options for successful life strategies.
I really like this project. Keep us updated please :)
Absolutely ! New video coming out in like a week ;)
photosynthesis bibits that making eggs and green things
I am creating the similar project in 3d in godot engine and youtube suddenly suggested me this video. It highly motivated me and gave me a direction on what i should do next. Thanks
This is amazing!
@6:45 color for traits would still result in identifiable species since "families" should be similar in color.
you could use the three primary colors to represent 3 different important traits and the mix of how far those traits have drifted will determine color. You could also introduce simple patterns for this like stripe or XX pattern or something.
This looks great man.
2 years ago, I'm so happy that I found this channel
I mean found again
And it's a pleasure to have you back 😁!
I think it is a great idea to make evolution process to food as well
I think the idea of keeping color non-adaptive so that it can track genetic drift and speciation is really cool! Definitely worth keeping as a feature
Good work!
Absolutely fascinating work! I can't wait to see this develop further! You can have different amounts of pellets spawning on a timer to simulate seasons.
Pellet Spring--> Pellets are numerous, but small. Bibites might select for speed and being able to sense pellets at a greater range.
Pellet Summer--> Pellets are numerous and big. Bibites might select for making lots of eggs.
Pellet Fall--> Pellets spawn in smaller amounts, but they are big. Bibites might hoard food or even begin farming.
Pellet Winter--> Very few pellets spawn at all. Bibites might start hibernating if they can not sense food near them. Or, Pellets might develop seasonal diets, where they are vegetarian in the summer and carnivores in the winter.
I think for that to have any effect you also need to add the perception or at least comprehension of time in some way. I'm not sure if the neural net used is a recurrent neural network because then you can have some sort of memory of past actions.
fascinating project.. i think you want to have an evolution mode that is non-visual so you can evolve faster. my other suggestion is, yes, to put the pheremones on the board but maybe also have some kind of logic as to where pellets tend to appear in this way the pheremone trails may have the option to evolve to represent some sort of useful signaling between bibites
Nice simulation! I had similar project 10 years ago but less inputs. I used acceleration on output insted speed and creatures (mine was fishes) looked much more real.
First of all, this is amazing. I love it. I really enjoyed programming little population simulations back when I started computer science, but that was long before I knew anything about machine learning.
As for your question about color-coding, I'm more inclined to think you should leave it. My reason why is that I think there are too many traits/feature-weights to map them to colors and still have those colorful be meaningful.
I think displaying weights on input features may be interesting, if you can assign the size of the weight to the size of a shape, and place those shapes as identifiable parts of the Bibites. There's a Steam game called Eufloria, which gives an example of what I'm talking about - though with only 3 traits, not 20- input weights (more with hidden layers). It's not necessarily functionally useful information - because weights often don't tell you much information on their own - but it might allow you to create an even more unique visual character for them.
On second thought... maybe you could use a combination of shapes and colors to represent the weights, and thus give a unique visual character to each Bibite.
Yes ! I'll be working on that, I call it "procedural sprites" in my most recent video
This is like thrive but even more of a simulation
I’ve done something like this myself too! Very rewarding program
The pheromones are a good idea, perhaps a bibite would be willing to give a pellet to a bibite that it likes based off its signal
6:45 - One thing I did was to have two mechanisms available in the UI. Basically, when I click on a creature, I've "tagged it" and a translucent box with internal stats appears that follows it everywhere. I can click on that box to increase/decrease the amount of information present.
The other thing I did was have a set of options on which critical things I wanted alerts for. I never finished this, but the ones that I played with was literally writing "Pred" temporarily right over the creature to show an offspring had been produced that evolved from herbivore to predator.
For the colours: you can have the body colour being independent, and have another colour for the tail representing speed stats, mouth colour for strength, etc.
cool ces bibites, on attend les coucouilles avec impatience !
Complexity in behavior: you could add push, grab, release, break, try to eat.To really get things interesting you could make the environment more complicated so there are structures they can hide in or build to store food or protect their eggs, or whatever else they can evolve.
OOH OOH OOH ! make a really cool custom forest background!!
This is awesome! For the vision, you should use raytracing to draw a visual field for each creature with each ray as RGB input, although that may be too complex to optimise with the NEAT algorithm
@@TheBibitesDigitalLife I have seen similar projects using a ray cast system with only 4-5 rays which act more like feelers which can sense an environment without necessarily gathering an entire view of the terrain, for realism i would also suggest a cap on the angle it can detect the closes item of food so the creatures cannot see behind them. That might help to develop predatory strategies but nevertheless this is great work!
Very cute! Love it. If you want to communicate something visually went not add some fx? Like a simple aura or particles or maybe a toggleable overlay that brings up little tags on them
You could add a seperate sprite to your bibites for every stat they have and then scale that sprite with the stat. Those fin like things at the side could be for speed and scale with speed for example
This is amazing! As someone who's just getting into coding, this is absolutely mind-boggling.
Might I suggest using the color scale to indicate how carnivorous/herbivorous the bibites are (the more red, the more carnivorous, etc) and having stripes/polka dots as an independent gene that can identify species?
All in all, very entertained. Good luck and keep working!
And, is there an age constraint? I understand that they become mature, but I didn't see anything along the lines of old age; the older they get, the less likely they are to reproduce, the more energy it takes just to live, etc
No, they don't have old age as of yet. As of now they can easily live and grow up to 2000% maturity, which can get problematic
And check my most recent video ;) right now I'm working on procedural sprites
Not easily, but under the right conditions*
Neural Evolution of Augmenting Topologies sounds NEAT
I decided to call my implementation bioNEAT because there is enough differences from the basic NEAT algorithm, might even publish it !
This is a really really awesome and very inspiring project! Software engineering is a huge passion for me and AI in general is a super interesting topic :)
Thanks a lot for making and sharing this project with us, really really apreciated!
I have been playing around with neural networks and genetic algorithms lately, so obviously I take a lot of inspiration from your project and have learned a lot watching your videos already.
And I know this video is a couple years old now, but I have a few questions, maybe you'll see them anyway :D
1) At around 0:56 in the video you show an overview with inputs and outputs of the neural network. Input 0 is called "constant", what exactly does that mean? Are you feeding in some constant number or is this constant representing some sort of current state of the bibite or something thereabouts? Finding the right inputs is obviously pretty important and I've been thinking about that topic a lot lately, which is why it's very interesting and helpful to me to see how others do it :)
2) Is there any mechanism to make sure that bibites don't wander too far off the area they're supposed to be in? Or is the availability of food really the only thing to make them stay in that area? If so, I imagine that there's a very real risk for them to just die out early on if all of them just happen to race off into the sunset and never return, if you know what I mean :D
Or do they just kinda loop back to the other side if they go off screen?
3) Do you normalize all inputs into for example the 0-1 range or are some of them fed in as is?
I hope it's ok for me to ask those questions, sorry if they are too specific :)
As you can see, I have a very big interesting in this kind of thing :D I would love to see some videos going into more of the technical detail behind these systems :)
Though I can understand that you have got more than enough work on your hands already and maybe you might not want to share all your secrets :D
Anyways, once again thanks a lot :) I love The Bibites and am looking forward to seeing how the project evolves in the future!
Wow! I am impressed! Je suis vraiment impressionnée!
I've liked this video for a while, but the from-scratch way you explained it has convinced me to implement something similar. I'm making a little "fish tank" to be displayed on a screen and run in the background. I plan to increase the maximum number of nodes in their neural nets and add "adding a node" as a mutation so they start off simple and get more complex if they stop improving with the same number of nodes
You should see the most recent Videos!
Snaps! I like those neural networks
Could you share this code you made ? It's dope and i would like to see how this is done.
This is awesome, it is very similar to an idea I tinkered around with when I was first learning to program, but a lot more advance and better (I didn't have a neural network). Neural networks are something that intrigue me, but I've never really been sure where to start. It would be sweet if you made the code open source on Github or something?
I love this. You have a surprisingly complex ecosystem going. Well done.
Suggestion: Maybe allow them to pair up and travel together? Maybe even groups of 3 or 4.
This would make mating more efficient, and be safer if you implement carnivores. Downside the cost of covering less area when looking for food.
It would be very interesting if you had diverse diets. Looking forward to more.
Thanks a lot !
check my most recent video, you're in for a threat ;)
I created much the same, only added hunters and made the entities talk to each other and experimented with all kinds of neural network hidden layers and cost function. Seeing emerging behaviour after a total random start is awesome :)
czcams.com/video/ZIdCSBsxXnQ/video.html
I could imagine them instead of a trail or visual, you just have them "twitch" at each other, kinda like bees, or ant communication. Where they go up to each other, sort of dance, say something, the bees, or bibits, may understand where the food is now. On the map.
Some suggestions:
- keep the main body colour of the bibets as you have it, I agree with you on that
- Have a visual indicator for herbivore/carnivore ness, maybe the outline colour (what is currently black)
- to display the pheromones have a "pheromone cloud" basically a circle around the bibet that is the colour that represents the pheromone and translucency of about 5-10%
- have your bibets evolve to use the various pheromone and body colours (both the main colour and outline predatoriness) for determining mating i.e. some bibits are attracted to blue bibits and other prefer red or green bibits then you'll get to see if/how these attributes evolve
- have some other appearance genes like wing size/shape variations, tail length, spots stripes, include these in the mating as well, then hopefully you can evolve several bibet species
- rather than having a generic predatoriness, have the predators evolve preference for certain traits, some bibits might find longer tails more tasty and others might prefer purple bibets others might find red bibets poisonous and other might prefer to eat dead bibets
- use waste (excrement & decaying dead bibets) as fertiliser for different pellets that "grow" (now you don't need to spawn them) maybe over time some bibets prefer pellets that grew from excrement and others prefer pellets that grew from decaying dead bibets
Thanks for the interesting video hope you take some of these ideas
Some of these idea have already made it into the simulation 😁!
@@TheBibitesDigitalLife Hi I posted that after watching this video not realising how old it was, then I saw the newer videos, congrats on such a cool simulation, I think I still did give you some new suggestions, though I didn't think about the viruses that I saw you implemented that was very clever 👍🏼
This is really cool. For the pheromones, I think letting them produce and detect different colours of pheromone could potentially create more complex communications, especially if you introduce the carnivore/herbivore dichotomy.
Yeah, that'dd be very powerful, having an arbitrary infinte number of combinations, I'll have to figure out how to do that
Pheromones could be implemented as each bibite emitting particles of each type spread Gaussian in their vicinity proportionally to the strength of the output, either decaying gradually or being picked up by another bibite and being read as an intensity to it. You might have to make the inputs read lower when emitting, or it could be left as something for the bibites to control (although in that case maybe add extra inputs to let them know how strong the output rate is).
Oh god its this classic eco sim music everyone uses, fabulous fabulous
Nice is amazing and has good potential
Good production quality! It'd be neat to be able to cycle each lil critter and see what their own neural net is doing. Maybe add some sprites... To make it more intresting make amount of food vary more so they starve. More RNG
I like the idea of similar colors being an indication of homogeneity.
I would be super interested to see how much of a role 'intelligence' (the number of synapses) plays in natural selection, and how this number changes over time. Haven't watched your other videos yet though, so maybe this is already answered.
Wonderful work. ❤ Its really the kind of work that I crave to work on.
I have a suggestion : since you are using only natural selection/mutation as the only process to produce favourable/intelligent agents, how about using a feedback system? I mean when ever an agent performs an action, it can observe the changes (in its internal state and it's external state) and hence send back a positive/negative feedback to it's neural network to further strengthen or weaken it's connections on the path where the signal had passed in the last iteration the most. Basically incorporating a reinforcement learning concept. This would produce more intelligent agents even during their lifetime and not just in the next generation. Pardon if I got it wrong somewhere.
The kind of behavior I am trying to imagine is that: whenever an agent does something useful, it tends to repeat that action more, and when it does something bad, it refrains from repeating it again. This can be achieved by evolving the neural net at every time step, taking into account the instantaneous rewards/punishments.
Something that you could add to your function is like a nest or shelter, allowing their to be a certain growthpoint to where's there's a nest Queen and adding like a apex predator to go along with hunting