Тёмный

How I created an evolving neural network ecosystem 

The Bibites: Digital Life
Подписаться 90 тыс.
Просмотров 332 тыс.
50% 1

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-...

Наука

Опубликовано:

 

9 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 928   
@nikosaarinen3258
@nikosaarinen3258 4 года назад
You could use shape to show the speed. A faster Bibit could be more slender.
@bearnaff9387
@bearnaff9387 4 года назад
Alternately, flickering the color inside the bibit could indicate speed or some other process driving the bibit.
@Jachii9
@Jachii9 2 года назад
and then slower bibits could be more t h i c c
@Squirtledrool
@Squirtledrool 2 года назад
@draqon ofwhitestars sounds personnel
@aytj2073
@aytj2073 Год назад
@draqon ofwhitestars you fat?
@ChimneyCrab737
@ChimneyCrab737 Год назад
@draqon ofwhitestars lmao someone has some insecurities
@CamelCaseCam
@CamelCaseCam 4 года назад
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
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Agreed on all of them !
@water2205
@water2205 4 года назад
@@TheBibitesDigitalLife bibite eat bibite.
@chrissmith3587
@chrissmith3587 4 года назад
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
@chrissmith3587
@chrissmith3587 4 года назад
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
@water2205
@water2205 4 года назад
@@chrissmith3587 they are already implimented.
@NICK....
@NICK.... 4 года назад
Since it's a computer program shouldn't they be called Bibytes?
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Damn, missed a good opportunity right there....
@DarckHardStyle
@DarckHardStyle 4 года назад
Good, or maybe Bibites to Bibit's
@dirkmcnasty8585
@dirkmcnasty8585 4 года назад
@@DarckHardStyle No, the conversion is 8 Bibites equal a Bibit :D
@NStripleseven
@NStripleseven 3 года назад
B
@Idontknow-km5hp
@Idontknow-km5hp 3 года назад
@@NStripleseven C
@bertrandrodruiguez2614
@bertrandrodruiguez2614 5 лет назад
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.
@BrettClimb
@BrettClimb 4 года назад
Here is another similar project, in case anyone is interested: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-tDqDRze9cmk.html
@raccoonman4691
@raccoonman4691 4 года назад
what kind of software do people use to make these things
@BrettClimb
@BrettClimb 4 года назад
@@raccoonman4691 Mine uses the Unity game engine
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
unity is nice because it takes care of the physics, collisions, etc. Already. It does come with its limitations too tho
@BrettClimb
@BrettClimb 4 года назад
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.
@malekbensalem8430
@malekbensalem8430 4 года назад
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, ...)
@briansepolen4917
@briansepolen4917 4 года назад
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.
@tipoima
@tipoima 4 года назад
@@briansepolen4917 They are kinda small tho
@SMunro
@SMunro 4 года назад
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.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Omg that would be incredible ahah Real-life interaction and wireless migration... Might even be dangerous ahah
@bluedot7817
@bluedot7817 4 года назад
Haha that's a great idea! Somebodt get on this.
@axisodepeople1658
@axisodepeople1658 4 года назад
I'd download
@captainbadassitude1845
@captainbadassitude1845 4 года назад
@@TheBibitesDigitalLife That would be an epic program! A lot of people would be willing to run it and provide feedback.
@kiwi_2_official
@kiwi_2_official 2 года назад
great ideas
@lazartoncev1614
@lazartoncev1614 4 года назад
Did I search for this? No. Did I watch the whole thing? YES
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Ahahah, it's my pleasure
@Deez-Master
@Deez-Master 4 года назад
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.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
That would be very interesting :o !
@water2205
@water2205 4 года назад
Evolving food?
@thonktank1239
@thonktank1239 4 года назад
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
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Hmm yeah, so there could develop a true microcosm, with different "levels" of life. The problem would probably come from computing resources
@thonktank1239
@thonktank1239 4 года назад
@@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.
@auri1075
@auri1075 4 года назад
I love this, its so interesting, i could see it for hours, if more variables were added id see it for even longer.
@Potato-sg3wq
@Potato-sg3wq 4 года назад
use graphs to represent what traits are most used, this would show what traits are the most favored for survival.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Absolutely also better brain graphs... I've been searching for a solution, but without any luck so far
@greatestgrasshopper9210
@greatestgrasshopper9210 4 года назад
1:36 I love how there's just that one that just runs around in circles trying to get a pellet
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Bibites can suffer from birth defects too 😢
@ashtwenty12
@ashtwenty12 5 лет назад
Will you share the source code on git in description ? I'd be curious to see how it works. Maybe people can contribute
@peytonfastabend4319
@peytonfastabend4319 4 года назад
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!
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Thank you, I absolutely feel the same way (I'm not sinking many hundred hours in this project for nothing ahah) !
@Leftysrev3nge
@Leftysrev3nge 2 года назад
Check out davidrandallmiller too. He does a pretty interesting breakdown of a similar setup, minus the realtime aspect. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-N3tRFayqVtk.html
@bmobert
@bmobert 4 года назад
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.
@bluedot7817
@bluedot7817 4 года назад
Excellent concept particularly applied to the real world I'd think. 👍
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
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
@TiagoTiagoT
@TiagoTiagoT 4 года назад
@@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)?
@ancapftw9113
@ancapftw9113 4 года назад
@@TiagoTiagoT he could copy the current pellet spawner formula and make it use framerate as a multiplier for energy use.
@Kugelschrei
@Kugelschrei 3 года назад
@@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.
@warriorcast8567
@warriorcast8567 4 года назад
I like the one that's running in circles but still out surviving most of the others.
@purplehaze2358
@purplehaze2358 2 года назад
Seeing this old prototype for the simulation is oddly surreal.
@francoisrioux5869
@francoisrioux5869 4 года назад
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
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Ahahah Esti de criss merci beaucoup !
@sijohnson5632
@sijohnson5632 4 года назад
Brilliant. Thank you for this, its mesmerising. Great use of neural networks and I'm looking forward to future developments. Thanks again
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
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
@phills6732
@phills6732 2 года назад
This video got me going crosseyed in a good way. Good job!
@dols5712
@dols5712 3 года назад
Bro, RU-vid suggest me your video and I'm glad it did it ! I will devore all your content, it seems so interresting OMG
@flixou262
@flixou262 Год назад
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
@grevel1376
@grevel1376 4 года назад
you gave me some ideas and inspired me to do some project
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Honestly glad to hear that :) please share
@grevel1376
@grevel1376 4 года назад
@@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)
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
@@grevel1376 still, send me a link when you get around doing it :) thebibites@gmail.com
@grevel1376
@grevel1376 4 года назад
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.
@grevel1376
@grevel1376 4 года назад
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.
@Kiloristy
@Kiloristy 2 года назад
What a great video! It mixes so many disciplines!
@tyfoodsforthought
@tyfoodsforthought 3 года назад
Beautiful project my friend! :) Bibites are so cute! Thank you for sharing!
@AkhierDragonheart
@AkhierDragonheart 5 лет назад
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).
@AkhierDragonheart
@AkhierDragonheart 5 лет назад
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)
@Modusiticate
@Modusiticate 4 года назад
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!
@lutum5292
@lutum5292 2 года назад
Great Work! Love your stuff
@ProxyProof
@ProxyProof 4 года назад
Excellent and inspiring. Thanks for taking the time to make a video
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
I'll be making more !
@MattMajcan
@MattMajcan 5 лет назад
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.
@EveryFConcept
@EveryFConcept 5 лет назад
2:59 Neuro Evolution of Augmenting Topologies 3:16 Stanley K. O. 2002 3:19 RT-NEAT
@hasanyahya8384
@hasanyahya8384 5 лет назад
this was a very entertaining video, i hope you keep producing such video.
@dinoschachten
@dinoschachten 2 года назад
Very nice thoughts on how every feature brings with it an efficiency penalty! I'm very excited to see this unfold!
@KJOB
@KJOB 4 года назад
For some reason most of the comments are people with experience with similar projects or at least have experienced programming such things. Wow
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Yeah, quite an awesome community :)
@thatguynamedmorgoth8951
@thatguynamedmorgoth8951 4 года назад
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
@Kugelschrei
@Kugelschrei 3 года назад
So each color is associated with a job?
@fruitsicles
@fruitsicles 5 лет назад
Came here from reddit, this is a really interesting project! Thanks for sharing.
@hazardgoose2352
@hazardgoose2352 2 года назад
its amazing to see what how much this have evolved from the beginning!
@murkasp
@murkasp 4 года назад
what about cannibal bibites who eats another bibites and choose target by color
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
That would already be possible (if they evolve to do so) in the most recent update
@aricre8886
@aricre8886 4 года назад
but why the would do that? they can use feromones to indentify their own kind
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
@@aricre8886 but they have to evolve to do so !
@k.butler8740
@k.butler8740 4 года назад
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
@politicalcanadian
@politicalcanadian 4 года назад
Kyle real cost function would be potential damage taken during the fight.
@masterchief5603
@masterchief5603 4 года назад
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! 😊😊😊😊😊
@masterchief5603
@masterchief5603 4 года назад
Also I am new to this channel 😁
@captainbadassitude1845
@captainbadassitude1845 4 года назад
No way, you saw what happened with Cortana!
@masterchief5603
@masterchief5603 2 года назад
@@captainbadassitude1845 don't worry, his computer isn't enough to simulate her.
@bsphera4026
@bsphera4026 4 года назад
photosynthesis bibits that making eggs and green things
@kyleschroder9045
@kyleschroder9045 2 года назад
What a cool idea. I'm fascinated by this story of the bibits.
@preppertechnicianee6013
@preppertechnicianee6013 4 года назад
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
@antonstezhkin5991
@antonstezhkin5991 4 года назад
Feromones - add diffusion and hlaflife.
@grumbo8634
@grumbo8634 5 лет назад
Super boulot, hate de voir la suite !
@PaperDevil
@PaperDevil 4 года назад
Simply amazing! Keep up the good work! :)
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Thank you very much :) I sure will
@ilovehumongoushonkers
@ilovehumongoushonkers 4 года назад
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.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
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 ...
@ilovehumongoushonkers
@ilovehumongoushonkers 4 года назад
@@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.
@voodoodoll4960
@voodoodoll4960 4 года назад
They needs a purpose to collaborate, look for the exploration exploitation dilemma, zero sum games. And thanks for the French subtitles :)
@voodoodoll4960
@voodoodoll4960 4 года назад
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.
@MrRyanroberson1
@MrRyanroberson1 4 года назад
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
@ernestoramos520
@ernestoramos520 4 года назад
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.
@JeanJacket311
@JeanJacket311 Год назад
How is there only 1 comment this is CRAZY COOL!!!
@TheBibitesDigitalLife
@TheBibitesDigitalLife Год назад
The channel got banned by mistake by RU-vid, and since being reinstated All my previous comments disappeared :(
@isaacmendes1926
@isaacmendes1926 Год назад
@@TheBibitesDigitalLife that's a shame. You got a pretty cool channel brother, subscribed.
@FuZZbaLLbee
@FuZZbaLLbee 4 года назад
I think the obvious Additions would be flocking or non flocking, and housing, like a bee hive or anthill
@sebastianwette11
@sebastianwette11 4 года назад
I really like this project. Keep us updated please :)
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Absolutely ! New video coming out in like a week ;)
@vinisius
@vinisius 5 лет назад
Such amazing project
@shadowdragon2484
@shadowdragon2484 4 года назад
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.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
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
@matiascollado9926
@matiascollado9926 Год назад
@@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!!
@Aaqil6588
@Aaqil6588 Год назад
hi
@spor_ex
@spor_ex Год назад
Hi
@vivyanshakyaabhiyan5540
@vivyanshakyaabhiyan5540 Год назад
Hi
@justincrafty2683
@justincrafty2683 Год назад
Hi
@silasweber9633
@silasweber9633 Год назад
Hi
@bosanskirambo4066
@bosanskirambo4066 Год назад
Hi
@user-cd4bx6uq1y
@user-cd4bx6uq1y 3 года назад
2 years ago, I'm so happy that I found this channel
@user-cd4bx6uq1y
@user-cd4bx6uq1y 3 года назад
I mean found again
@TheBibitesDigitalLife
@TheBibitesDigitalLife 3 года назад
And it's a pleasure to have you back 😁!
@GameRocker
@GameRocker 4 года назад
This looks great man.
@ddAAntes
@ddAAntes 4 года назад
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 ;)
@sebastianeggleton5417
@sebastianeggleton5417 4 года назад
yay colour now we can have racism! AI really is becoming more advanced these days
@Jim_WoodPike_Gherkin_WangWick
@Jim_WoodPike_Gherkin_WangWick 4 года назад
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.
@Kiloristy
@Kiloristy 2 года назад
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.
@dskjhjksl
@dskjhjksl 5 лет назад
This is amazing!
@tomakist
@tomakist 4 года назад
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.
@ObeyBunny
@ObeyBunny 4 года назад
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.
@marcb1257
@marcb1257 2 года назад
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.
@AnishWagle
@AnishWagle 3 года назад
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
@vladkazakov4109
@vladkazakov4109 4 года назад
I think it is a great idea to make evolution process to food as well
@thismianeptunis
@thismianeptunis 4 года назад
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
@davidorr947
@davidorr947 2 года назад
Good work!
@mystwalker479
@mystwalker479 4 года назад
Neural Evolution of Augmenting Topologies sounds NEAT
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
I decided to call my implementation bioNEAT because there is enough differences from the basic NEAT algorithm, might even publish it !
@anubis63000jd
@anubis63000jd 4 года назад
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.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Thanks a lot ! check my most recent video, you're in for a threat ;)
@elchikoriko592
@elchikoriko592 4 года назад
@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.
@sailbatten2056
@sailbatten2056 2 года назад
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.
@NarattoRadians
@NarattoRadians 4 года назад
A good way to conserve energy is keeping the corpses around as food for scavengers, as well as allowing eggs to be eaten as they require a certain amount of energy to be produced.
@markathena4730
@markathena4730 2 года назад
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.
@garrettlich7140
@garrettlich7140 24 дня назад
This is like thrive but even more of a simulation
@cheeseymann
@cheeseymann 4 года назад
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
@david0aloha
@david0aloha 4 года назад
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.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Yes ! I'll be working on that, I call it "procedural sprites" in my most recent video
@owls6514
@owls6514 4 года назад
OOH OOH OOH ! make a really cool custom forest background!!
@rutgervandeputte3685
@rutgervandeputte3685 2 года назад
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 :)
@rutgervandeputte3685
@rutgervandeputte3685 2 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-ZIdCSBsxXnQ.html
@s.l.960
@s.l.960 3 года назад
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.
@mckryall
@mckryall 2 года назад
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
@TheBibitesDigitalLife
@TheBibitesDigitalLife 2 года назад
You should see the most recent Videos!
@AxeMurderer2222
@AxeMurderer2222 4 года назад
One of the things I noticed right off is the uniformity of the environment your creatures live in. Excepting the other creatures and food pellets there is nothing available for them to react to. Adding environmental obstacles which can either assist or repress the bibits' ability to survive and/or reproduce would be a great way to add interest to the project. Couple that with characteristics in the creatures that could potentially allow them to more effectively take advantage of the assisting type obstacles along with others that potentially allow them to more effectively resist the repressing type obstacles and I think the project would be far more interesting and diverse. Additionally, it would permit you to see what happens in different environments by altering what obstacles are present and in what ratios etc.. For instance, have two type of food pellets, one which is poisonous. Then implement a characteristic which determines how effective they are at discerning between the two. Also you have pheromone transmitters and receivers, but no antennas to determine the signal strength received or sent. This would be another good way to introduce more diversity into the population. For example, antennas can be either directional so they only detect pheromones in a forward cone or they can be omni-directional but weaker (less detection range). Food appears out of thin air. Instead, have an object that spawns the food somehow when they interact with it somehow. Maybe make it movable and make it so when two of them are positioned adjacent, they lock together and produce much more food, or much better food, than they do when separated. See if the creatures can figure out to push them all together.
@Agesilas2
@Agesilas2 4 года назад
cool ces bibites, on attend les coucouilles avec impatience !
@Rakinshu1203
@Rakinshu1203 4 года назад
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
@daveamies5031
@daveamies5031 2 года назад
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
@TheBibitesDigitalLife
@TheBibitesDigitalLife 2 года назад
Some of these idea have already made it into the simulation 😁!
@daveamies5031
@daveamies5031 2 года назад
@@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 👍🏼
@NoMercy8008
@NoMercy8008 3 года назад
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!
@nitrothunderbird6740
@nitrothunderbird6740 4 года назад
I think that when the bibets eat or move food to eat later, the food should drop 2 seeds, so that the bibets sort of act like "bees" and the flower releases "pollen". Then it need fertilisation to grow and maybe you could even awldd a water system. Little lakes (watering holes), where all the animals go to eat, some carnevoures maybe even would wait to ambush their prey there (by random evolution). Or maybe the foods only release seeds if they are moved around. This mechanic might force toffee to bibets to learn they have to move it around.
@tomakist
@tomakist 4 года назад
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.
@zatch7349
@zatch7349 4 года назад
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
@bernardlemay8563
@bernardlemay8563 2 года назад
As a French Canadian I find the name especially funny, as bibitte means critter to us. Great video btw.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 2 года назад
Je sais, je suis quebecois aussi 😂 Et merci!
@teambellavsteamalice
@teambellavsteamalice 2 года назад
This is very nice, for gonna check out newer videos. Ideas so far are: Take some inspiration from Gratuitous Space Battles, where some ships can be set to follow, escort or move in formation with other ships and some sort of aggression-avoidance parameters that make the flee or swarm enemies like piranhes. It should be doable to create swarm behaviour by copying/adjusting movement based on movement of creatures similar to them. Introduce an alpha-beta gene (scale 0-1) where alpha's will be bigger, stronger and possibly aggressive to other alpha's. Beta's will be more docile. Either will still be aggressive or protective against creatures that don't look very similar or have different pheromones. Introduce plant-creatures that use photosynthesis to produce seeds. Introduce some sort of shelter only small creatures can move through. And/or create a toxic environment that one can get resistance too. This can be combined with the pheromones into three different kinds of substances that affect different genomes differently.
@JadeReys
@JadeReys Год назад
This is so cooool!!! I've always wondered if we can do simulation of evolution. It would be awesome if we can play this as standby back ground on TV or desktop. It would be like an aquarium - then people would cultivate them like pets, where they have to monitor the parameters/environment to make sure they're alive or purposefully evolve cool looking species with lights or whatever
@JadeReys
@JadeReys Год назад
And you could also sell tools to maintain the "aquarium" like on the 100H simulation where it selectively kills non pink eyed mutation.
@seanhardy_
@seanhardy_ 5 лет назад
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
@seanhardy_
@seanhardy_ 5 лет назад
@@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!
@Sklasik
@Sklasik 4 года назад
Could you share this code you made ? It's dope and i would like to see how this is done.
@flawapawa214
@flawapawa214 4 года назад
I have two points : -Pressure is the key word to evolution. As you know, the reciprocal pressure of carnivorous-herbivorous is kind of mandatory. In order to make them have a pressuring behaviour, your should give them the capacity to detect not only close siblings but more importantly their place in your prey-predator gradient. But the point I wanna get to here is irl is more like a 2 pressure points ecosystem, as herbivorous and plants also do share a prey-predator relationship. As i'm maybe too much perfectionnist, I would suggest u to think about the ways dynamicly evolving species of "food" may be implemented, as i'm sure they can have surprising and interesting effects on the ecosystem if well thought. I recommand u to look at the "paper-cosplay" i did for fun long ago. I spent 3days of 18h creating plants ecosystems on "bad old" python 2, and I'm proud enough of my results to share them. It takes 2 minutes to fully understand so it can only help : www.ambryal.fr/ambry-flow-Une%20Petite%20Planete -One of the driving concept of life on earth is individual evolution (egg-baby-adult). It may not seem obvious, but this dynamic has major consequences, as it really is one of the main reasons the "species meta" gets a bit complex : species comes with many different ways to play around their youth weakness ! Implementing this kind of dynamics is really not simple as you would for the most part have to rethink the core. Although, I suggest you to think of some simple ways that can get you to approach this thematic : -Eggs costs ; time before born ; number of childs ; (child quality (hard with your core, but for example "do they become more quickly adults")). -Eggs as a privilegied source of food. Eggs are defenseless, and nutrient, plus the fact u kill ur ennemies before they are born. It sounds complicated, but I really think bibite's getting interest on eating others eggs and preventing others to do so (for example simply by laying far from others (and close to food sources etc...)) can grow the simulation to a next level. As a final word, i'm warning u that the main problem u will face is that "200 is not enough for a non trivial evolution simulation". Even if you only add prey-predator mechanics, i do believe 200 is not enough to get good results. I have unfortunately no tip for you about this issue, the only thing i can do is wishing u success...
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Wow merci ! That website is truly inspirational and epic ! I would really like to know the genes they have. Also, for the population problem I'll be looking at transitioning to ECS on Unity, might help a lot.. Everything else, very good points
@cooldog8580
@cooldog8580 4 года назад
I once did a similar thing, but this happened: After all the food was gone, leaving only a few bits left, all of the Bibites would clump together and share their energy while laying their eggs. When the food came back, they all rushed to consume it, and rinse and repeat.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Pretty cool 😄
@willmunoz1638
@willmunoz1638 2 года назад
8:50 "Ok lets rework the energy system to be more realistic." *shows a freakin LIGHTING bolt*
@phxf
@phxf 4 года назад
This is really cute and I love the idea of it. One thought I had, is that it might be nice if the sprites of the bibites themselves were also evolved, and if some sort of simple aerodynamic sort of analysis could determine things like their mobility. for example, you could check the two sides, seeing which pixels are bibites edges, and which are empty space, and look for any diagonal two pixels, and add those up to determine how forward pointy they are, to get some sort of speed score on that side. You could treat the internal color area as an Energy Storage capacity, to incentivise them to be large, but treat any holes in their edges as a deadly mutation so they need to be strong and well defined too. You could possibly even relate different colors to different traits, which might cause them each to evolve interesting patterns as they trade a pixel here and there for changing their stats
@phxf
@phxf 4 года назад
Like what if Meat Digestion was a red pixel and Pellet digestion was a green pixel and bibites could evolve whatever mix they like? omnivores would look like a christmas theme! Maybe the area the pixels are in could be important too, like, what if it were possible for a bibite to evolve to be green on one side and red on the other, and as long as it is intelligent and eats the food with the correct side, it got an efficiency improvement in digestion?
@phxf
@phxf 4 года назад
you could possibly have an “eye” pixel, which creates a set of input neurons that encode what objects are in that direction, just by determining the angle the pixel is from the centre of the sprite, and checking what objects are in a certain area in that direction around the bibite
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
All great ideas :o not sure how I would come around implementing that tho. You seem well informed, send me a message at thebibites@gmail.com if you have tips or technology suggestions for me
@watsoncasal4954
@watsoncasal4954 4 года назад
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!
@watsoncasal4954
@watsoncasal4954 4 года назад
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
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
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
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Not easily, but under the right conditions*
@sherifaboulnasr9261
@sherifaboulnasr9261 2 года назад
Perhaps consider adding static obstacles, as well as a method where the brighter their colors ae the more likely they are to be spotted and eaten by other organisms or vice versa, would be rather interesting
@BlackJacketWasp
@BlackJacketWasp 2 года назад
Very inspiring video! The 2nd NEAT-style video over 24 hours - it's a sign I need to start writing my very own AI aquarium. =D
@TheBibitesDigitalLife
@TheBibitesDigitalLife 2 года назад
I would encourage you to do so!
@Christopher-xe4lb
@Christopher-xe4lb 4 года назад
You could add some personality with characteristic traits, such as tails. You could use a sin-wave tail that varies in length relative to the bibite's speed. In terms of pheromones, they can spawn discrete pellets that broadcast with a geometric falloff in intensity, and fade over time. You could also make it so the A, B, and C pheromones have individual characteristics in intensity and duration.
@TheBibitesDigitalLife
@TheBibitesDigitalLife 4 года назад
Check my most recent video ;)
Далее
The Evolution of Predation in a Simulated Ecosystem
18:40
Coding Adventure: Ant and Slime Simulations
17:54
Просмотров 1,8 млн
I Created Life. Where is it going?
20:07
Просмотров 93 тыс.
Why Neural Networks can learn (almost) anything
10:30
Predation and Pheromones in an AI Ecosystem
11:01
Просмотров 89 тыс.
Why Does Diffusion Work Better than Auto-Regression?
20:18
How  I added Viruses in my Evolving AI Ecosystem
13:27
APPLE дают это нам БЕСПЛАТНО!
1:01
Просмотров 163 тыс.