Shouldn't the foxes also have thirst and only eat if they need to? It might be more stable if they have other things to think about than to kill everything in sight
I think the foxes kill all of the rabbits, because of balancing issues. The foxes should reproduce slower and take longer before they are hungry, resulting in more rabbits per fox. The foxes also don't have any preditors, so the growth is only controlled by the survival meters. Also can the animals die of old age?
I was thinking a long the same lines. A fox would only eat one-ish rabbit per day, breed slower and, have other things to occupy their time when they aren't hungry. Rabbits would also be more defensive, like those hiding rabbits via burrows.
That's only to show that playing God ain't easy. Nature certainly has some self-balancing parameters at play, though it provably provides catastrophes and extinction events in case something overly disruptive happens, so these self-balancing parameters appear to be part of the gradual evolution of the species across the board, and not a part of some general design. In other words, Seb's approach to modelling this is fairly accurate, it's just that balancing it is HARD. It has to work by iteration and you simply cannot expect it to be absolutely perfect ever (unless an AI was implemented to address this self-correcting behaviour on its own, which would be interesting to watch; and since the AI would also have to learn the rules on the fly, it wouldn't do things any better than a human would, it would only learn more reliably and apply changes faster; by this argument, God is imperfect by definition lol, hence any theological God cannot possibly exist, because the omnipotence there is assumed). All being said, this is definitely not a simulation, but a playful exploration of how to implement a basic living ecosystem in Unity.
@@milanstevic8424 lol, the omnipotence paradox is solved if the omnipotent being created a rock he cannot lift in superposition with one he can: That's exactly us, human beings, both under his will and with free-will at the same time. We are the rock God cannot lift, so yes, a omnipotent being is not impossible to exist (neither he needs to create something stronger than him to be omnipotent, he could do that with himself, being infinitely omnipotent)
@@iago1840 absolutely true, but that argument presupposes free will, while mine is completely mechanical, or at least I tried to make it as such. from that point on, of course strictly theologically speaking, God could exist, but he would have to abandon the notion of omnipotence. therefore things could happen without his own volition (in other words, he's ought to make a mistake), and this is basically what Devil is -- clearly a religious notion of free will/err as you described it. but still no omnipotence anywhere to be seen. I guess it would violate all laws of thermodynamics anyway :) anyhow, all of this is practically a nod in the direction of simulation hypothesis imho. not that I'm prescribing it as a solution per se, but it's definitely a strong suggestion. not to mention that here we are, in a cascade down the ladder, commenting a simulated ecosystem as if we're Gods, yet we can all agree that we're not omnipotent.
@@milanstevic8424 well, there's still omnipotence there, an omnipotent being should just be able to do something, not forced to do it to prove he's omnipotent, and teologically speaking, he would not even be part of reality, violate thermodynamics is as easy as stopping imagining the world (because this is kinda what it means teologically: God don't create things and let them alone as we humans "do", he keeps "thinking" or "recreating" everything to these things exist on our reality, just as how we imagine things: if we stop imagining, it simple vanishes from the "imagination reality" - that kinda creates other paradox, as he's not omnipotent if he needs to be imagining all things, but he's omnipotent, omniscient and omnipresent, related to what WE call reality, just as we're omnipotent, omniscient and omnipresent related to our imagination)
Yep. This is why I would have the worst time making a survival simulation game, though it is cool to see when survival game devs put in that extra touch of realism over just "hunger bar thirst bar" without diminishing gameplay, like Saurian's minor digestion delay/fullness bar thing over the normal hunger bar.
Haha yeah. Every time something is added it becomes more interesting though. If I had more time to learn to create this stuff I would want to mess around with this 24/7
It also reminds me of Maxis's Sim Life from back in the 90s. You can play it free online, I believe. Worth checking out. classicreload.com/res/simlife.html
The concept you touch on at 6:16 is interesting, and there’s actually a similar situation in real-world ecology! In the wild, it’s common for prey animals to re-establish from areas called “refuges,”which predators can’t access easily. This usually occurs after predator populations decrease and is partly responsible for boom and bust reproductive cycles like the ones you saw in your simulation. If you want to play with this model more, you might wall off a couple of areas to foxes and see what that does.
Thats a very interesting point. Also it may benefit to have some sort of aggression between foxes to emulate territories as that appears to be how modern large predators protect their food sources from over predation. Also fitness may also have an important role. ie healthy rabbits should always escape. Only old, sick or young rabbits should be easily caught which means their should always be a stable adult population.
I coded a simulation like this when I was a biology major, using fish and sharks. Adding something we called an 'atol' will indeed stabilize the predator/prey cycle. The atol was a sectioned off space that predators could not enter (due to being too big to fit through the barrier for example). This will create a safe space where the fish can procreate without the chance of being eaten, ensuring there is always a small population of prey that can repopulate the rest of the area once the predators start dying off.
one reason why the foxes dominate is that there's no rest mechanic. in real life apex predators have to expand markedly more energy to acquire their food and generally run their bodies. this is why lions, for example, spend most of their time resting. they preserve their energy so they can hunt successfully. if the foxes need to rest for a time after a certain amount of kills then the rabbit population would have time to recover. one way to do this organically would be to give the foxes an exhaustion meter and allow them to hunt until said meter has run out, then have them rest for a while to get it back up to a certain point before being able to hunt again. you can create more genes around this mechanic. so some generations of foxes would be able to expend energy more efficiently, lower the threshold required for hunting, or speed up their energy recovery!
One way to simulate this would be to allow energy expenditure depend on current speed, and not always moving at top speed. But there are tons of way to simulate populations, and this one shows (more or less) when it does not pay to be a predator.
@@ranjithrans In general yes. Cats (of all sizes) sleep most of the day, while gracing animals tend to eat most of the day. But the largest herbivores really have no other safe spot that herds. Smaller animals like deer can hide in tall grass or bushes, rabbit in burrows. They would really gain from an efficient food source.
@@57thorns hmm... I had this idea (without any research) that herbivore food takes more time to digest and get transferred into energy than carnivorous (maybe watching cows etc gave me the idea). Anyway, adding nutritional values to food leads to more complex code with little gain in the outcome for a simplified simulation. Reducing energy with respect to speed looks like a good approximation.
Woah, I thought I recognized your name... Love your videos, I always drop whatever I'm doing when I see a new one is out :) I'll have to try it with larger populations in the future, thanks!
It looks like bigger domain will do. If new bunnies may grow during L/Vfox, the fox may feed itself forever, IMHO. And new seed bunnies may survive because of they are just far enough 🤞🏻
@@DmitryRomanov I was also thinking about a new attribute of rabbits that would decrease distance from which a predator can sense the rabbit. It would be like: > predator sense distance: 1000 > rabbit hide attribute: 100 > outcoming predator sense distance for this perticular rabbit: 900 Young rabbits may have this attribute multiplied (so if a rabbit borns with this attribute equal to 120, when he's young it should be multiplied by ~3, decreasing over time to the value of 120 as he grows).
@@whenyournameisduoduos1282 Sorry but I'm currently doing homework :/. It's on who asked. The equation is x = 1 - (24/24). X stands for who asked. Could you help?
TH-cam cares Shit for that, they just sometimes pretend so people think they're doing their job. But actually, you can find anything on TH-cam. ANYTHING. It's disgusting sometimes.
The bunnies should have had a certain % chance to escape the fox; I think in the wild, most of the time a predator doesn't make the kill. The fox should also have a certain amount of energy - enough energy to only make like 5 attempts at killing a bunny. If it fails to do so in those many attempts, it should die off.
Wow, amazing... Having a safe place for the bunny like a burrow would be good... that way they only take risk when certain need arise... not always being exposed to be hunted...
Shimakee Makenza in addition you could add a “Fear Gene” with lower fear the bunnies don’t care about the foxes, getting more food but having a higher chance of getting eaten. Higher fear means the rabbits constantly stay in holes even if they are starving and they have a higher risk of death for that! Great idea
Yeah, my guess is the bunnies all died because they could hardly take a step without entering a fox's detection range. Running would work fine if there weren't threats everywhere you go...
The TH-cam channel CodeWithMosh created a huge leap in knowledge for me. The guy has an online school, where you can pay for courses but depending on the programming language, he has full TH-cam videos online.
"if she rejects him he'll add her to his mental list of unimpressed females and wont approach her again" good guy rabbit "until he's forgotten about it a little while later" typical guy rabbit
@@baronvonbeandip nooo what. If you've been overtly rejected, never ever pressure the person you're interested in. It's nearly always highly uncomfortable for them and your chances of success are low anyway. Just stop. :(
@@lelrond hiGhLy uNcomPfoRtAbLE. Yeah right mate, that is life. If you're uncompfortable with being asked again way later you should just stay inside, because that is what babies are supposed to do. A generation of wimps man, I hate them.
He could do make this on a sphere instead of a plane so it would resemble a planet. Similar to how he did in one of his ludum dare games. Would be cool to see that.
i think a way to balance things a bit would be tohave the foxes work more like the bunnies, where they only eat if they are hungry, need to drink and reproduce. Also you can make their gestation and development period much higher. you could also make the growing of plants dynamic so that they actively spread and can be eaten to extinction. tbh this system could be expanded upon endlessly, it's pretty neat
I don't care how long it takes you to post it, but thank you thank you thank you so much for announcing that you will be posting source code for this eventually. You have no idea how excited I am to add on to this. Thank you again so much. keep making videos like these, the coding adventures. I really like them and this one in particular.
If you're trying to create something , that's usually the highest skill ceiling you would ever reach in any profession provided they are getting better with practice.
If you do an update to this simulation, it would be interesting to see you include other variables, like how each animal acts during day/night, temperature, weather, diseases, greater variety of plants, issues with plants (not fully developed, rot, undersized, oversized, etc.), and communal/social aspects (burrows, dens, etc.) If you would like some inspiration that isn't from a research paper, I'd recommend reading Watership Down. I'm reading through it now, and it's really great!
The relationship between fox and rabbit populations, with one rising and the other falling, is generally what happens with predators and prey in real life, like wolves and deer. This is a pretty good sign that your simulation is at least somewhat realistic. Awesome video!
I've been fascinated by the idea of creating a simulation like this for ages but never quite got around to doing it, so thank you. I look forward to having a peek at the source code when you're ready to release it.
You know what would be cool? An instructional series like : here's how to go from a default new project to an overhead view with some terrain. Then something like ' Here's how to add characters and here is how to setup one basic behavior', and then build in complexity from there. I know, it sounds like a lot of work but I know I would be interested in seeing ho you do it!
The main mechanic that you are missing is a defense mechanism for the prey. There needs to be a cost to engaging the mechanic (so they don't just engage it all the time) and it needs to offer pretty good protection. Here are some examples from the natural world: Ponds/Aquariums: Dense cover/vegitation allows spaces where larger fish can't get in to find smaller fish; but since only a small portion of the biom has dense cover; to increase population density small fish need to venture out to feed. Rabits & Holes: Rabits can hide in holes with multiple entrances & exits to evade predators that they cant outrun over long distances. The cost is pretty obvious; you cant feed or anything while in a hole, nor can you see much. Buffalo & Protective circles: Water buffalo will often form walls of flesh and horn when repelling a predator. This works for a while but eventually they need to spread out to feed. Honestly there are as many of these as there are predator prey relationships. That is because whenever a hunter has an extreme advantage over its prey, they basically hunt them to extinction as their own population explodes.
100% agree, to get a balanced ecosystem the environment can't favor one over the other - or to put it in other words, both species have to be able to coexist without a crushing advantage for one species.
I also think the simulation could benefit from some additional work which puts the populations under stress if they overproduce. Changing the breeding desire mechanic could help here have both populations have needs like Rest, Hunger, Thirst etc that they will prefer to satisfy first before looking to breed. Thus simulating the reality that when merely surviving gets hard for the adults birth rates tend to fall. This in combination with having an effective floor on the per capita death rate by adding a limited lifespan for the animals would perhaps help to curb excessive population spikes. The closer the population got to outgrowing it's food supply the more time animals would spend trying to find food only to come home exhausted and hungry. Make it so they have a reduced desire to mate when that happens to simulate the natural tendency for the growth curve to flatten out and fall into decline when members of the population have to invest pretty much all their time just to try and support themselves and their existing offspring to have time for breeding so much.
Hello everyone! Thanks for all the great suggestions so far on how to balance the system, and where to take it in the future. Will definitely work on an updated version sometime! Just want to clear up something I inexplicably failed to mention in the video, which is that foxes do have their own hunger/thirst/etc properties, so they’re not just constantly hunting as it appears from the little clip I showed. They do also have longer reproductive cycles, get hungry less quickly than rabbits, and die from old age. The code for this project is a total mess, so I don't really want to release it. However, I'm currently reimplementing and expanding on it for a second part, and you can find the work-in-progress code for that here: github.com/SebLague/Ecosystem-2/tree/master If you'd like to support the creation of more programming videos like this, please consider becoming a patron of the channel here: www.patreon.com/SebastianLague.
Really cool! I bet if you put more species in and alternative food sources for the foxes, the rabbits and foxes could reach an equilibrium. Now I really want to try this for myself!
I think the introduction of an ability like burrowing, where the rabbits could create a safe place could have been implemented to help the two animals coexist. I think that the rabbits having to choose to hide from predators or hunt for resources would have given the rabbits the edge they needed to last longer.
I would love to see you explore this a lot more. There are so many things to add and interesting discoveries to make! Really enjoying your adventures :)
To fix the extinction problem, you could try making the foxes territorial, so they fight each other, becoming more likely to fight each other as the population density increases. That would put negative pressure on large populations. Something like parasites could model the same effect. Or allow rabbits to hide? Hiding rabbits can't be eaten by foxes, but their hunger+thirst meters continue to rise. The most successful rabbits will find the right balance between cowardice and bravery. Hiding rabbits could give a 'backup' population of rabbits to survive explosions in fox populations. Also, you could try a larger map, so that oscillations in either population are statistically less likely to hit 0.
I would really love to see more of these series. It's sooo interesting. Please make foxes more balanced with hunger and thirst and add genes and all that genetic stuff to them. Also it would be really nice that eating one rabbit reduces foxes hunger to zero and it stops hunting for some time (i.e. make them hunt only when their hunger is high enough). Would be very interesting to see various versions of this - for instance, make rabbits that have more speed/vision/attractiveness consume more energy and get hungry or thirsty quicker appropriately. Maybe add shelters for rabbits where they can hide from foxes but can't do anything. Also would be very nice to see some kind of triangle food chain like in rock-paper-scissors. Overall, amazing series, please make more of these!
you should try making day/night cycles and sleep cycles, rabbit burrows, maybe adjust fox so they have hunger and thirst as well (not clear in the video if you already did this), make terrain that favors rabbits over foxes and vice versa (open terrain grants boost to fox speed, trees grant boost to rabbit speed, or something along those lines), this could turn out to be a awesome follow up video :)
This very simple but effective simulation is pretty cool. The fox to rabbit pop almost exactly matches real life examples of predator and prey except for the going extinct part XD
Your first mistake was using paint. A false red coating such as this couldn't possibly attract a female which evolved to have superior eyesight. You must tan your skin red naturally. Secondly, you must reduce your memory capacity so that rejections won't weigh you down for long and you'll get back in the game looking for a GF. Implement these and your chances should increase by 63% by my estimations. Good luck, and do your best!
Very cool! I will use something similar running on the background for my Survival gamethat way players have a direct impact on the ecosystem. I like what you did here.
"of course I wasn't going to give him such an easy life so I gave him hunger and thirst" my god, that litteraly sounds like a quote from some creation myth for some religion, that's almost eerie lol
Nice simulating I need to say rabbits died due to territory was so small and they are haven't some shalters But that experiment so cool and amazing, respect!
I’d love to see a remake of this same thing but modify the foxes and rabbits so that you could make them possibly co exist more so. Like adding in the possibility of rabbits ability to hide in different varying ways through the map as they would reproduce and become better at it depending on natural selection. as well as foxes to stalk through hiding and waiting and the addition of foxes becoming thirsty and becoming full after a certain amount of food dependent on size and speed of the foxes and the size of the rabbits they’re consuming that are also slower, faster or more efficient dependent on the size of them as well. The more complexity you add to this the more interesting it becomes. Love this stuff.
This is so cool. Those kind of things motivate me to learn programming and do something similar on my own in the future. Man you are awesome. I hope I'll be able to make such amazing things.
@@SebastianLague hey sir, can I ask if how I can animate an obj or .stl file or maybe if those can't be animated,what the best file format for animating 3d models in games
@@j_respect5948 you can import obj or stl file in blender and "rig" them, then you can animate the object and export as fbx, or you can use the blender format if you use unity
For analytic study of this issue look at Lotka-Volterra equations. It was used to study real fox and rabbit populations, as well economic and epidemiologic studies. These rules and various factors, are often simulated just like that on grids and time, but also very often as differential equations, which makes them a bit more analytic and can study the influence of parameters in more rigorous way. Some of these systems lead to chaotic behaviours too. Usage of Lotka-Volterra equations analysis could help you achieve stable oscillations.
bunnies which had off spring more quickly shows us the fox will have to eat its way though the slower children to get to the mother (as well as other advantages you mentioned in the video) there is no cost of eating. no delay between meals, no slows after eating a adult bunny and there is little (no) cost other than searching for creating off spring the idea of rest could be introduced in your next coding adventure too, see what you want to do with it
Awesome video! Could you give some more information on how you created the animation (which program did you use and how did you translate output from your code to an animation)?
Hello Sebastian. You made a pretty Hunt and Prey simulation. I am working on something similiar and would like to give you more detailed feedback on this video and your potential following videos. I have done quite some hunt and prey simulations in my coding career and am happy to put in the time to share what i have learned in exchange for quality videos and content from you. The hardest part of a hunt and prey simulation is the balance as you have already realized in the end of this video. Why do foxes in the simulation cause the extinction of all prey but in the real world adding wolves to forests improves the general health of a forest? Aren't wolves optimal hunters and would cause the death of all prey in any environment? Wouldn't evolution just optimize them to do that even better in every enviroment? What is different? I am guessing that you are starting to hand tune genetic traits and values right now to create something more stable for your next video. But you will run into a problem. As soon as you hand tune variables you will start to maybe introduce other changes that will destroy that balance and you will see yourself restricting the possible power of evolutionary changes to stay in your balanced state. What you want to discover is how to create symbiosis between species that are in a competitive relationship with each other. In your simulation there currently is no balance and one species wins over the other. That makes sense since Evolution will drive both species towards maximized existence by optimized replication. Until one can't keep up and dies out and the whole environment goes stagnant. I will list how you can achieve that. 1. You need to punish species whenever they reach the burnout point. Generate smaller areas that are closed off from each other. In your simulation you could add temporary land bridges between land to achieve that. Something like high and low tide. Each island with over achieving foxes will be closed off long enough to weed them out without giving them the chance to spread to the neighbor island. As soon as the low tide rolls in only the foxes that managed to balance themselves with the bunnies will be able to repopulate the other islands. The over achieving foxes will burn themselves out during a high tide. In real life nature this is done mainly by the day/night cycle and the seasons. 2. Dampen the relationship between bunny and fox populations by increasing the bearing time of foxes. I guess you are planning to do that with the next video anyway since you already introduced this feature with the bunnies. Foxes that take the same or less time to bore offspring will follow the bunny population very rapidly and easily follow their volatile numbers. Similar to feedback noise of a guitar and a sound speaker. Foxes with a longer bearing time will not follow the bunny population so rapidly and will literally dampen out their volatility. In the guitar example this would be the same as cutting off the high frequencies with an audio mixer and only amplifying the low frequencies. If you manage to introduce number 1. (the tides) correctly the foxes should be able to optimize for this themselves. They will time the bearing time to bore offspring with the period of the tidal waves. 3. The success of hunting. Foxes that miss bunnies with a probability can live next to bunnies without killing them. In your implementation the bunnies will always be turned into foxes because foxes are perfect hunters. You can further reinforce it by adding a hunting punishment: Hunting could also stun the foxes to take them out from the hunting pool for a while. The hunting probability with the hunting punishment will make it possible for foxes to leave exactly as many bunnies to sustain the next generation of both of them. A good example for this is the squirrel-tree relationship. If the squirrel would be able to remember every nut it buried it would kill the complete tree population by eating all its offspring. If it forgets a few each year it helps sustain its own environment by basically planting trees. This way the squirrel has a symbiotic relationship with its own food source. Note that remembering more nuts is a short term advantage for the squirrel but forgetting them is a long term advantage for all squirrel offspring (the squirrels competition). 3. The plant relationship with the bunnies is not correct. If i understand it correctly in your model the plants just gain MASS with every tick instead of ENERGY. This is different from the plant - herbivore relationship you find in nature. The overall biomass is a constant in our world (until we stared to unbalance it up by bringing all the oil back in and now we grow exponentially and will die like your foxes). That means that the [plant -> bunny -> fox] is not a pyramid going all the way up to the apex predator but it is actually a circle. Since bunnies and foxes poop, they fertilize plants again and we get the following two overlapping circles of life: [plant -> bunny -> fertilizer ->plant] and [plant -> bunny -> foxes -> fertilizer -> plant]. ENERGY is the rate at which fertilizer is turned into plants. If you have an unbalanced system as in your simulation that circle breaks apart and the bio sphere stagnates (= dead). If we barely make it through one circle, the circle will have big waves of: plants than bunnies than wolves than plants again. We get something like a mexican wave seen in a stadium. A real life example of this can be found in Australia, where big waves of bunnies eat everything there is, then starve. Next spring the plants regrow from the dead bunny corpses that act as a fertilizer. It is the same biomass just differently arranged. One day as a bunny and the next as a plant. The biomass is doing a mexican wave through forms of existence. Instead of people having their hands raised or lowered we have biomass being a bunny or a plant. This waves of bunnies will lead to a competition under the foxes. They will lower the bearing time to reproduce faster than the other foxes. Everyone tries to find a shortcut in the circle of life trying to increase its own metabolism. Such an environment is super competitive for the foxes as having an edge in the beginning of a fox wave gives them a very high probabilty to win the whole next generation by out reproducing the competition and turning a big chunk of the bunny mass into children. This competition is called evolutionary pressure. A fox that gains an advantage with a mutation will flourish and the fox population will see rapid changes. If the fox population is big enough many mutations can occur at the same time and this might lead to the inability of the foxes to reproduce with each other. They start to drift apart and we now have a second fox species. If they start to directly compete which each other one the of species will die out (as the neanderthal). But if they keep drifting they might dominate the other species in specific parts of the environment. For example longer legs + thinner body make them hunt bunnies in the open better but stronger shorter legs might help them hunting them in the forest. Now we have two distinct species that stop competing. Both fox species will start to drift more and more over time. We have now added a new Circle to our Circle of life: [plant -> bunny -> mutated_foxes -> fertilizer -> plant]. Since different foxes will behave differently, the biomass stays longer in one of the fox species and dampen the death wave behavior. You can image this as the mexican wave participants being slower or faster from their neighbors. Now the wave breaks up. The biosphere has stabilized by itself by creating a new species.
4:14 "So i made something that hopefully looks at least a little bit like a fox"
*shows a beautiful low poly fox model*
IKR I wish I had that level of awesome rendering skills
The rabbit model: **jealous**
@@icegod4849 he may have just picked an opensource fox model
@@luxraider5384 no, Sebastian Lague ain't no liar
These low-poly models would look even better if they were rendered using subdivision surfaces.
Shouldn't the foxes also have thirst and only eat if they need to? It might be more stable if they have other things to think about than to kill everything in sight
Same exact thoughts. Running (or moving in general) after rabbits should cost calories and thirst.
And they should be full after a certain amount of rabbits eaten
@@nalissolus9213 or make them not eat if they arent hungry enough
Vohasiiv predators don’t just prey, they eat drink and ante as well. And most predators eat and don’t eat for a long time after a meal
Exactly, big reason for failed hunts is a predator runs out of energy and prey gets away.
Great video Sebastian! Super interesting use of Unity! - Matt
Thanks Matt! :)
Hey Unity are you the best thing to use for game designing.
The lord speaks!
TheItalianPizza Can You Make A Sequel With Salmon And Eagles And Bears?
Bear Eats Eagle Eats Salmon
The worst part of this video is that it ends
ya
The foxes should hunt only when they are hungry, the foxes should also need to drink water as well.
They should also get more hungry and thirsty the longer they hunt and die if they don't eat or drink enough.
And they should take a little more time to eat the bunnies instead of instant.
do it
Are foxes omnivores or carnivores?
@@T1Oracle Isn't that a self feeding cycle
I think the foxes kill all of the rabbits, because of balancing issues. The foxes should reproduce slower and take longer before they are hungry, resulting in more rabbits per fox. The foxes also don't have any preditors, so the growth is only controlled by the survival meters. Also can the animals die of old age?
I was thinking a long the same lines. A fox would only eat one-ish rabbit per day, breed slower and, have other things to occupy their time when they aren't hungry. Rabbits would also be more defensive, like those hiding rabbits via burrows.
That's only to show that playing God ain't easy.
Nature certainly has some self-balancing parameters at play, though it provably provides catastrophes and extinction events in case something overly disruptive happens, so these self-balancing parameters appear to be part of the gradual evolution of the species across the board, and not a part of some general design. In other words, Seb's approach to modelling this is fairly accurate, it's just that balancing it is HARD. It has to work by iteration and you simply cannot expect it to be absolutely perfect ever (unless an AI was implemented to address this self-correcting behaviour on its own, which would be interesting to watch; and since the AI would also have to learn the rules on the fly, it wouldn't do things any better than a human would, it would only learn more reliably and apply changes faster; by this argument, God is imperfect by definition lol, hence any theological God cannot possibly exist, because the omnipotence there is assumed).
All being said, this is definitely not a simulation, but a playful exploration of how to implement a basic living ecosystem in Unity.
@@milanstevic8424 lol, the omnipotence paradox is solved if the omnipotent being created a rock he cannot lift in superposition with one he can: That's exactly us, human beings, both under his will and with free-will at the same time. We are the rock God cannot lift, so yes, a omnipotent being is not impossible to exist (neither he needs to create something stronger than him to be omnipotent, he could do that with himself, being infinitely omnipotent)
@@iago1840 absolutely true, but that argument presupposes free will, while mine is completely mechanical, or at least I tried to make it as such.
from that point on, of course strictly theologically speaking, God could exist, but he would have to abandon the notion of omnipotence. therefore things could happen without his own volition (in other words, he's ought to make a mistake), and this is basically what Devil is -- clearly a religious notion of free will/err as you described it. but still no omnipotence anywhere to be seen. I guess it would violate all laws of thermodynamics anyway :)
anyhow, all of this is practically a nod in the direction of simulation hypothesis imho. not that I'm prescribing it as a solution per se, but it's definitely a strong suggestion.
not to mention that here we are, in a cascade down the ladder, commenting a simulated ecosystem as if we're Gods, yet we can all agree that we're not omnipotent.
@@milanstevic8424 well, there's still omnipotence there, an omnipotent being should just be able to do something, not forced to do it to prove he's omnipotent, and teologically speaking, he would not even be part of reality, violate thermodynamics is as easy as stopping imagining the world (because this is kinda what it means teologically: God don't create things and let them alone as we humans "do", he keeps "thinking" or "recreating" everything to these things exist on our reality, just as how we imagine things: if we stop imagining, it simple vanishes from the "imagination reality" - that kinda creates other paradox, as he's not omnipotent if he needs to be imagining all things, but he's omnipotent, omniscient and omnipresent, related to what WE call reality, just as we're omnipotent, omniscient and omnipresent related to our imagination)
In the quest for a perfect simulation the more variables you add, the more you realize there are more variables to add.
yep...
also
CLICK HERE AND GET A PRIZE...OR SOMETHING...
Lol, yes. I took a different approach: bio-digital life that emerges from simple rules.. Search my channel for "Heartbeats and blood flow".
Yep. This is why I would have the worst time making a survival simulation game, though it is cool to see when survival game devs put in that extra touch of realism over just "hunger bar thirst bar" without diminishing gameplay, like Saurian's minor digestion delay/fullness bar thing over the normal hunger bar.
More subjects = more variables, but more variables = less subjects because they die off due to having more things to worry about.
Haha yeah. Every time something is added it becomes more interesting though. If I had more time to learn to create this stuff I would want to mess around with this 24/7
Reminds me of Thin Matrix's project Equilinox.
I was just thinking the same thing. It's a fun little game to play.
that video where he gets throat cancer hits hard! like he is trying to live so healthily by eating right and escaping the city to the parks, then bam!
It also reminds me of Maxis's Sim Life from back in the 90s. You can play it free online, I believe. Worth checking out.
classicreload.com/res/simlife.html
same
Same actually thought that’s what I was clicking on. 😂
god: But unfortunately i wasn't gonna let him have such an easy life.
Underrated comment
Why God WHY!?!
World History in a nutshell
I looked at this comment just when he said that lol
I read this comment as i heard him say it?!
The concept you touch on at 6:16 is interesting, and there’s actually a similar situation in real-world ecology! In the wild, it’s common for prey animals to re-establish from areas called “refuges,”which predators can’t access easily. This usually occurs after predator populations decrease and is partly responsible for boom and bust reproductive cycles like the ones you saw in your simulation. If you want to play with this model more, you might wall off a couple of areas to foxes and see what that does.
Some foxy cannibalism would emerge, surely.
Thats a very interesting point.
Also it may benefit to have some sort of aggression between foxes to emulate territories as that appears to be how modern large predators protect their food sources from over predation.
Also fitness may also have an important role.
ie healthy rabbits should always escape. Only old, sick or young rabbits should be easily caught which means their should always be a stable adult population.
I coded a simulation like this when I was a biology major, using fish and sharks. Adding something we called an 'atol' will indeed stabilize the predator/prey cycle. The atol was a sectioned off space that predators could not enter (due to being too big to fit through the barrier for example). This will create a safe space where the fish can procreate without the chance of being eaten, ensuring there is always a small population of prey that can repopulate the rest of the area once the predators start dying off.
*Deploys foxed that can instantly kill a rabbit and never stop eating until everything is dead*
Ecosystem!
that's sound like the first capitalist ;P
Sounds like Epic Games Store. *Capitalism!*
Thats not a fox thats a human!
@@dawgie1253 AH yes, we should be employing communism instead. Cuz that always worked out /s
Weasle bit defensive are we
one reason why the foxes dominate is that there's no rest mechanic. in real life apex predators have to expand markedly more energy to acquire their food and generally run their bodies. this is why lions, for example, spend most of their time resting. they preserve their energy so they can hunt successfully.
if the foxes need to rest for a time after a certain amount of kills then the rabbit population would have time to recover. one way to do this organically would be to give the foxes an exhaustion meter and allow them to hunt until said meter has run out, then have them rest for a while to get it back up to a certain point before being able to hunt again.
you can create more genes around this mechanic. so some generations of foxes would be able to expend energy more efficiently, lower the threshold required for hunting, or speed up their energy recovery!
One way to simulate this would be to allow energy expenditure depend on current speed, and not always moving at top speed. But there are tons of way to simulate populations, and this one shows (more or less) when it does not pay to be a predator.
Interesting. May I ask if the resting duration of rabbits (also herbivores, prey) in general are lower than their predators? What is your opinion?
@@ranjithrans In general yes. Cats (of all sizes) sleep most of the day, while gracing animals tend to eat most of the day.
But the largest herbivores really have no other safe spot that herds. Smaller animals like deer can hide in tall grass or bushes, rabbit in burrows. They would really gain from an efficient food source.
@@57thorns hmm... I had this idea (without any research) that herbivore food takes more time to digest and get transferred into energy than carnivorous (maybe watching cows etc gave me the idea).
Anyway, adding nutritional values to food leads to more complex code with little gain in the outcome for a simplified simulation. Reducing energy with respect to speed looks like a good approximation.
bullshit...
Foxes: **Eat rabbits**
Rabbits: **Die**
Foxes: (・□ ・)
??? That made absolutely no sense.
@@___xyz___ no
@@___xyz___ the foxes eat all the rabbits, the rabbits die, fox regret
@@___xyz___ I think "All Rabbits: Die" would've made it clearer
Guys it's a surprised pikachu face
I know this is 3 years old now, but I really want a part 2 please.
a
@@ziphy_6471 b
1:15
Rabbit: “searching for mate”
Later: “mating”
Later: “SeArChInG fOr MaTe”
Must FuCk
Realism: 100
So uh.. could you reduce my List of unimpressedFemales? My ForgetRejection Timer seems to have stopped working...
kekkeke
Grow red fur, incel
*hands you a can of red paint* there you go m8, now good luck
My ForgetRejection timer overflown functions as My Happens
@@anthonyconde7604 woa, brutal
You and SethBling both doing this kind of thing!
And yeah, getting predator/prey simulations to be stable usually needs much larger populations
Woah, I thought I recognized your name... Love your videos, I always drop whatever I'm doing when I see a new one is out :)
I'll have to try it with larger populations in the future, thanks!
I'm guessing the diversity of species would make a bigger difference compared to raw population size.
It looks like bigger domain will do. If new bunnies may grow during L/Vfox, the fox may feed itself forever, IMHO. And new seed bunnies may survive because of they are just far enough 🤞🏻
@@SebastianLague Haha, same to you :)
@@DmitryRomanov I was also thinking about a new attribute of rabbits that would decrease distance from which a predator can sense the rabbit. It would be like:
> predator sense distance: 1000
> rabbit hide attribute: 100
> outcoming predator sense distance for this perticular rabbit: 900
Young rabbits may have this attribute multiplied (so if a rabbit borns with this attribute equal to 120, when he's young it should be multiplied by ~3, decreasing over time to the value of 120 as he grows).
"Which I hope looks a little bit like a fox." Dude your modeling skills are pretty good no need to flex on us like that...😂
bunnies: jump up and down
youtube: DEMONETIZED FOR SEXUAL CONTENT
69 likes so cant add one more
@@sethdesilva You are doing a good deed my sir.
@@whenyournameisduoduos1282 Sorry but I'm currently doing homework :/. It's on who asked. The equation is x = 1 - (24/24). X stands for who asked. Could you help?
your brain is the equation
TH-cam cares Shit for that, they just sometimes pretend so people think they're doing their job.
But actually, you can find anything on TH-cam. ANYTHING. It's disgusting sometimes.
The bunnies should have had a certain % chance to escape the fox; I think in the wild, most of the time a predator doesn't make the kill. The fox should also have a certain amount of energy - enough energy to only make like 5 attempts at killing a bunny. If it fails to do so in those many attempts, it should die off.
You seriously need to make another one of these videos.
These Coding Adventures are fantastic! 😁
Also that reproduction animation though... thought TH-cam would take this down for a moment 😂
Thanks Sam!
lmao
@@SebastianLague how do u know everyones name? u also knew the unity guys name
@@ebrahimmomin7518 The Unity guy signed their comment he left with his name
@@absolutewisp oh
Wow, amazing...
Having a safe place for the bunny like a burrow would be good... that way they only take risk when certain need arise... not always being exposed to be hunted...
Shimakee Makenza in addition you could add a “Fear Gene” with lower fear the bunnies don’t care about the foxes, getting more food but having a higher chance of getting eaten. Higher fear means the rabbits constantly stay in holes even if they are starving and they have a higher risk of death for that! Great idea
@@diepssuarez2676 And at 0 Fear you get Okunoshima.
Yeah, my guess is the bunnies all died because they could hardly take a step without entering a fox's detection range. Running would work fine if there weren't threats everywhere you go...
All I want for Christmas is this man's knownledge in programming
All the knowledge is out there, the question is if you´re motivated enough to gather it and develop it.
Me too! I'm trying to learn to code and I am simply not smart enough to get it. I managed to copy a few lines like hello world.
The basics of coding are pretty easy, actually, and from there you can learn whatever you're interested in. If you really wanna learn, give it a shot!
The TH-cam channel CodeWithMosh created a huge leap in knowledge for me. The guy has an online school, where you can pay for courses but depending on the programming language, he has full TH-cam videos online.
"if she rejects him he'll add her to his mental list of unimpressed females and wont approach her again"
good guy rabbit
"until he's forgotten about it a little while later"
typical guy rabbit
Good Guy Rabbit with bad memory.
Lolol *codes in "ForgetRejection"*
Also called persistence.
@@baronvonbeandip nooo what. If you've been overtly rejected, never ever pressure the person you're interested in. It's nearly always highly uncomfortable for them and your chances of success are low anyway. Just stop. :(
@@lelrond hiGhLy uNcomPfoRtAbLE. Yeah right mate, that is life. If you're uncompfortable with being asked again way later you should just stay inside, because that is what babies are supposed to do. A generation of wimps man, I hate them.
Hey Sebastian, amazing video! Would love to see more videos like this one
I feel like you will end up simulating a whole planet. And I love that idea.
He needs GPUs the size of a planet.
He could do make this on a sphere instead of a plane so it would resemble a planet. Similar to how he did in one of his ludum dare games. Would be cool to see that.
He could also just code a little planet.
I've been waiting for this! Can't wait to see more stuff on terrain generation, keep up the awesome work (your graphics are always amazing!)
i think a way to balance things a bit would be tohave the foxes work more like the bunnies, where they only eat if they are hungry, need to drink and reproduce. Also you can make their gestation and development period much higher. you could also make the growing of plants dynamic so that they actively spread and can be eaten to extinction. tbh this system could be expanded upon endlessly, it's pretty neat
"H's not likely to have much luck though, on account of being the only rabbit in existence" LMAO
I don't care how long it takes you to post it, but thank you thank you thank you so much for announcing that you will be posting source code for this eventually. You have no idea how excited I am to add on to this. Thank you again so much. keep making videos like these, the coding adventures. I really like them and this one in particular.
The true goal of every Programmer: Becoming a GOD
LMAO so true
If you're trying to create something , that's usually the highest skill ceiling you would ever reach in any profession provided they are getting better with practice.
@@benevolentmadman5225
The words every programmer dreads:
finally, it works, but is it efficient?
Yes!!
i mean technically if you think about it, if God exists, he literally is a programmer xD
If you do an update to this simulation, it would be interesting to see you include other variables, like how each animal acts during day/night, temperature, weather, diseases, greater variety of plants, issues with plants (not fully developed, rot, undersized, oversized, etc.), and communal/social aspects (burrows, dens, etc.)
If you would like some inspiration that isn't from a research paper, I'd recommend reading Watership Down. I'm reading through it now, and it's really great!
This is a great example of the very delicate balance necessary to keep populations. Love it!
Wow that was some pretty disturbing and graphic bunny porn.
Please make a continuation of this!
I am in awe of your proficiency in coding, video creation and execution of your ideas!
Try adding field of vision; ie predators with narrow field of vision (maybe with depth perception), and prey with large field of vision
The relationship between fox and rabbit populations, with one rising and the other falling, is generally what happens with predators and prey in real life, like wolves and deer. This is a pretty good sign that your simulation is at least somewhat realistic. Awesome video!
well its a good sign that the simulation does exactly what it should do.
realisticly the foxes wouldnt need to hunt that eagerly
It’s really amazing to see natural selection so simplified 😍
No one :
Sebastian : ok guys ive added humans and now theyre trying to see if theyre simulated, no biggie !
dead meme
@@betin731 AI takeover isn't a killable meme by merit of being possible
@@thecuriousgorilla6005 Not what he's talking about you fucking idiot
@@jensb3946 mean
@@thecuriousgorilla6005 he is talking about the no one:
someone:
format
I've been fascinated by the idea of creating a simulation like this for ages but never quite got around to doing it, so thank you. I look forward to having a peek at the source code when you're ready to release it.
You know what would be cool? An instructional series like : here's how to go from a default new project to an overhead view with some terrain.
Then something like ' Here's how to add characters and here is how to setup one basic behavior', and then build in complexity from there. I know, it sounds like a lot of work but I know I would be interested in seeing ho you do it!
Stephen Owen Livestream??
He published the code on Github, just take a look at it.
@@saito853 code and step by step aren’t the same thing
think this would be a great idea, from implementing basic terrain to basic entities to behaviour.
I really like this style that primer and Sebastian use its very cool! Keep it up both of you!
i hope you plan to do more with this, as it's a really cool concept and im sure im not the only one who wants to see more.
The main mechanic that you are missing is a defense mechanism for the prey. There needs to be a cost to engaging the mechanic (so they don't just engage it all the time) and it needs to offer pretty good protection. Here are some examples from the natural world:
Ponds/Aquariums: Dense cover/vegitation allows spaces where larger fish can't get in to find smaller fish; but since only a small portion of the biom has dense cover; to increase population density small fish need to venture out to feed.
Rabits & Holes: Rabits can hide in holes with multiple entrances & exits to evade predators that they cant outrun over long distances. The cost is pretty obvious; you cant feed or anything while in a hole, nor can you see much.
Buffalo & Protective circles: Water buffalo will often form walls of flesh and horn when repelling a predator. This works for a while but eventually they need to spread out to feed.
Honestly there are as many of these as there are predator prey relationships. That is because whenever a hunter has an extreme advantage over its prey, they basically hunt them to extinction as their own population explodes.
@dolofonos huh?
100% agree, to get a balanced ecosystem the environment can't favor one over the other - or to put it in other words, both species have to be able to coexist without a crushing advantage for one species.
I also think the simulation could benefit from some additional work which puts the populations under stress if they overproduce. Changing the breeding desire mechanic could help here have both populations have needs like Rest, Hunger, Thirst etc that they will prefer to satisfy first before looking to breed. Thus simulating the reality that when merely surviving gets hard for the adults birth rates tend to fall. This in combination with having an effective floor on the per capita death rate by adding a limited lifespan for the animals would perhaps help to curb excessive population spikes. The closer the population got to outgrowing it's food supply the more time animals would spend trying to find food only to come home exhausted and hungry. Make it so they have a reduced desire to mate when that happens to simulate the natural tendency for the growth curve to flatten out and fall into decline when members of the population have to invest pretty much all their time just to try and support themselves and their existing offspring to have time for breeding so much.
What amazing timing!! I was literally googling for tutorials on this topic for the past few days!!
Hello everyone! Thanks for all the great suggestions so far on how to balance the system, and where to take it in the future. Will definitely work on an updated version sometime!
Just want to clear up something I inexplicably failed to mention in the video, which is that foxes do have their own hunger/thirst/etc properties, so they’re not just constantly hunting as it appears from the little clip I showed. They do also have longer reproductive cycles, get hungry less quickly than rabbits, and die from old age.
The code for this project is a total mess, so I don't really want to release it. However, I'm currently reimplementing and expanding on it for a second part, and you can find the work-in-progress code for that here: github.com/SebLague/Ecosystem-2/tree/master
If you'd like to support the creation of more programming videos like this, please consider becoming a patron of the channel here: www.patreon.com/SebastianLague.
Yeah Primer's videos are great, I discovered him a couple of weeks ago. Your simulation is also more detailed than the Equilinox game from ThinMatrix.
remake the planet generation series its outdated please
Really cool! I bet if you put more species in and alternative food sources for the foxes, the rabbits and foxes could reach an equilibrium. Now I really want to try this for myself!
Can you show the code?)
Incredible video! Like many others said any change to get the code of this Code Adventure?? Thanks and awesome job as always!
I think the introduction of an ability like burrowing, where the rabbits could create a safe place could have been implemented to help the two animals coexist. I think that the rabbits having to choose to hide from predators or hunt for resources would have given the rabbits the edge they needed to last longer.
You could add some code for day and night so that all foxes fall asleep at night allowing the bunny's to regain a bit of their population
I don't think that most people understand just how gifted you are.
"Source code: Coming soon.."
Any ETA on this? I'd love to learn how you handle the programming for this! Thanks.
Same here!
This. Bump!
bump
bump
Yeah same here
Im really liking these "simulations of complex systems" videos lately on youtube
I would love to see you explore this a lot more. There are so many things to add and interesting discoveries to make! Really enjoying your adventures :)
An excellent tutorial for anyone thinking of getting into computer science. Top marks!
To fix the extinction problem, you could try making the foxes territorial, so they fight each other, becoming more likely to fight each other as the population density increases. That would put negative pressure on large populations.
Something like parasites could model the same effect.
Or allow rabbits to hide? Hiding rabbits can't be eaten by foxes, but their hunger+thirst meters continue to rise. The most successful rabbits will find the right balance between cowardice and bravery. Hiding rabbits could give a 'backup' population of rabbits to survive explosions in fox populations.
Also, you could try a larger map, so that oscillations in either population are statistically less likely to hit 0.
Agreed. I recommended similar things. I think it's a right direction to move in and see what happens.
I would really love to see more of these series. It's sooo interesting. Please make foxes more balanced with hunger and thirst and add genes and all that genetic stuff to them. Also it would be really nice that eating one rabbit reduces foxes hunger to zero and it stops hunting for some time (i.e. make them hunt only when their hunger is high enough). Would be very interesting to see various versions of this - for instance, make rabbits that have more speed/vision/attractiveness consume more energy and get hungry or thirsty quicker appropriately. Maybe add shelters for rabbits where they can hide from foxes but can't do anything. Also would be very nice to see some kind of triangle food chain like in rock-paper-scissors. Overall, amazing series, please make more of these!
Heavily related to the Lotka-Voltera-Equations
you should try making day/night cycles and sleep cycles, rabbit burrows, maybe adjust fox so they have hunger and thirst as well (not clear in the video if you already did this), make terrain that favors rabbits over foxes and vice versa (open terrain grants boost to fox speed, trees grant boost to rabbit speed, or something along those lines), this could turn out to be a awesome follow up video :)
Your channel has become just another level of quality. Love it!
This very simple but effective simulation is pretty cool. The fox to rabbit pop almost exactly matches real life examples of predator and prey except for the going extinct part XD
Most likely the foxes and rabbits can’t coexist for two reasons: 1, the foxes aren’t thirsty and 2: the rabbits can’t burrow
Instructions unclear, am covered red paint and still don't have a girlfriend
You didn't use enough
You have to hop around randomly then when you see them hop up and down in place!
Your first mistake was using paint. A false red coating such as this couldn't possibly attract a female which evolved to have superior eyesight. You must tan your skin red naturally. Secondly, you must reduce your memory capacity so that rejections won't weigh you down for long and you'll get back in the game looking for a GF. Implement these and your chances should increase by 63% by my estimations. Good luck, and do your best!
Great video, it’s fun with all your experiments. Reminds me when I started coding on my C64, trying all sorts of techniques, algorithms etc out.
Very cool! I will use something similar running on the background for my Survival gamethat way players have a direct impact on the ecosystem. I like what you did here.
"of course I wasn't going to give him such an easy life so I gave him hunger and thirst" my god, that litteraly sounds like a quote from some creation myth for some religion, that's almost eerie lol
"Alright, it's safe to look again"
_oh thank god lmao_
Nice simulating
I need to say rabbits died due to territory was so small and they are haven't some shalters
But that experiment so cool and amazing, respect!
I’d love to see a remake of this same thing but modify the foxes and rabbits so that you could make them possibly co exist more so. Like adding in the possibility of rabbits ability to hide in different varying ways through the map as they would reproduce and become better at it depending on natural selection. as well as foxes to stalk through hiding and waiting and the addition of foxes becoming thirsty and becoming full after a certain amount of food dependent on size and speed of the foxes and the size of the rabbits they’re consuming that are also slower, faster or more efficient dependent on the size of them as well. The more complexity you add to this the more interesting it becomes. Love this stuff.
This is so cool. Those kind of things motivate me to learn programming and do something similar on my own in the future. Man you are awesome. I hope I'll be able to make such amazing things.
Sebastian: "Simulating an Ecosystem in 6 minutes"
ThinMatrix: Guess I'll die
Could you try making a rabbit easier to detect if they have redder fur? That way it isn't just this amazing trait they all should get.
This is so interesting!!! What Library did you use for the graphics?
Thanks! Models were created in Blender, and everything put together in the Unity game engine.
@@SebastianLague hey sir, can I ask if how I can animate an obj or .stl file or maybe if those can't be animated,what the best file format for animating 3d models in games
@@j_respect5948 you can import obj or stl file in blender and "rig" them, then you can animate the object and export as fbx, or you can use the blender format if you use unity
You are a mad genius and I admire you greatly because you inspire me to learn to do similar creative projects and more!
This explanation is too professional...
.
.
.
.
This is exactly what I love. 👍🏾
I can't wait to see them realize they're in a simulation
Would you ever consider releasing your source code for these projects? How about as a Patreon reward tier?
He does for a lot of them I'm pretty sure (he did for the erosion thing)
dude this channel is so great. Inspiring me to try and improve at programming
This channel is a goldmine. Just watched your video about how computers remember and now this
MAKE IT BIGGER and fox thirst if not already in there.
ThinMatrix made a game similar to this concept called Equillinox.
Equilinox doesn't really have evolution through natural selection, just evolution.
Perhaps giving them homes/burrows would have helped them coexist?
I would love to see similar videos to this one. I think it would be interesting to gradually add more things and to watch the complexity grow.
I'm enjoying your channel a lot, impressive work Sebastian!
Thanks TH-cam for the recommandation. This is so f**ng interesting.
Could you put a link to the source code or the project because this looks so fun to mess around with ourselves.
Yeah I'd love that too. Or a tutorial series.
Definitely a tutorial series :D
ThatGuy that would be great
@@ThatGuy-qv1uu Sebastian Hear us, we want a tutorial series ...
how life sadly is :
foreach(female f in females )
{
unimressedfemales.Add(f);
}
sure for everyone?
For analytic study of this issue look at Lotka-Volterra equations. It was used to study real fox and rabbit populations, as well economic and epidemiologic studies. These rules and various factors, are often simulated just like that on grids and time, but also very often as differential equations, which makes them a bit more analytic and can study the influence of parameters in more rigorous way. Some of these systems lead to chaotic behaviours too. Usage of Lotka-Volterra equations analysis could help you achieve stable oscillations.
I love how enjoyable you manage to make these videos!
"Too much mouths and not much food to come by. The world need balance."
-Thanos
He was practically right for the fox.
THINMATRIX: Makes Equilinox.
Sebastian: Hold my beer...
my channel lol
This is so cool! Would love the source code to be able to play around with it :)
Yes, please, I also want the source code!
AgelessSin I’ll try find some time to clean it up and release it.
Seriously enjoyed it, single video I finished in whole day!
Always coming back to this one :)
I was developing a genetic ecosystem like yours and I received the notification, what a coincidence!
I'm not joking, I was doing the exact same thing, except it was based on a village, that's really weird.
@@lethn2929 I started working on a new AI system like a week ago to make something similar too
Hey, I'm making one also. I guess soon the world will be filled with virtual genetic simulations.
Now it’s a quadruple coincidence... the world is being invaded by those simulations. Soon, we will recreate the matrix! 😂
In which language r u developing it?
This would be such a cute game tho
equilinox is a game you are looking for then
There is a game made in 1992 called SimLife. It's by the same people who did SimCity and SimEarth.
It looks amazing! And I m also thinking of doing similar things!
Which 3d engine/environment are you using for visualization? Thx!
I am 100% sure that this is Unity
Would love to see another episode with more things added like natural death and also hunger levels for the fox.
As always the video was 💯% perfect
I agree with this guy , whoever he is
👍👍👍
bunnies which had off spring more quickly shows us the fox will have to eat its way though the slower children to get to the mother (as well as other advantages you mentioned in the video)
there is no cost of eating. no delay between meals, no slows after eating a adult bunny and there is little (no) cost other than searching for creating off spring
the idea of rest could be introduced in your next coding adventure too, see what you want to do with it
Awesome video! Could you give some more information on how you created the animation (which program did you use and how did you translate output from your code to an animation)?
Hello Sebastian.
You made a pretty Hunt and Prey simulation. I am working on something similiar and would like to give you more detailed feedback on this video and your potential following videos. I have done quite some hunt and prey simulations in my coding career and am happy to put in the time to share what i have learned in exchange for quality videos and content from you.
The hardest part of a hunt and prey simulation is the balance as you have already realized in the end of this video. Why do foxes in the simulation cause the extinction of all prey but in the real world adding wolves to forests improves the general health of a forest? Aren't wolves optimal hunters and would cause the death of all prey in any environment? Wouldn't evolution just optimize them to do that even better in every enviroment? What is different?
I am guessing that you are starting to hand tune genetic traits and values right now to create something more stable for your next video. But you will run into a problem. As soon as you hand tune variables you will start to maybe introduce other changes that will destroy that balance and you will see yourself restricting the possible power of evolutionary changes to stay in your balanced state.
What you want to discover is how to create symbiosis between species that are in a competitive relationship with each other. In your simulation there currently is no balance and one species wins over the other. That makes sense since Evolution will drive both species towards maximized existence by optimized replication. Until one can't keep up and dies out and the whole environment goes stagnant. I will list how you can achieve that.
1. You need to punish species whenever they reach the burnout point. Generate smaller areas that are closed off from each other. In your simulation you could add temporary land bridges between land to achieve that. Something like high and low tide. Each island with over achieving foxes will be closed off long enough to weed them out without giving them the chance to spread to the neighbor island. As soon as the low tide rolls in only the foxes that managed to balance themselves with the bunnies will be able to repopulate the other islands. The over achieving foxes will burn themselves out during a high tide. In real life nature this is done mainly by the day/night cycle and the seasons.
2. Dampen the relationship between bunny and fox populations by increasing the bearing time of foxes. I guess you are planning to do that with the next video anyway since you already introduced this feature with the bunnies. Foxes that take the same or less time to bore offspring will follow the bunny population very rapidly and easily follow their volatile numbers. Similar to feedback noise of a guitar and a sound speaker. Foxes with a longer bearing time will not follow the bunny population so rapidly and will literally dampen out their volatility. In the guitar example this would be the same as cutting off the high frequencies with an audio mixer and only amplifying the low frequencies. If you manage to introduce number 1. (the tides) correctly the foxes should be able to optimize for this themselves. They will time the bearing time to bore offspring with the period of the tidal waves.
3. The success of hunting. Foxes that miss bunnies with a probability can live next to bunnies without killing them. In your implementation the bunnies will always be turned into foxes because foxes are perfect hunters. You can further reinforce it by adding a hunting punishment: Hunting could also stun the foxes to take them out from the hunting pool for a while. The hunting probability with the hunting punishment will make it possible for foxes to leave exactly as many bunnies to sustain the next generation of both of them. A good example for this is the squirrel-tree relationship. If the squirrel would be able to remember every nut it buried it would kill the complete tree population by eating all its offspring. If it forgets a few each year it helps sustain its own environment by basically planting trees. This way the squirrel has a symbiotic relationship with its own food source. Note that remembering more nuts is a short term advantage for the squirrel but forgetting them is a long term advantage for all squirrel offspring (the squirrels competition).
3. The plant relationship with the bunnies is not correct. If i understand it correctly in your model the plants just gain MASS with every tick instead of ENERGY. This is different from the plant - herbivore relationship you find in nature. The overall biomass is a constant in our world (until we stared to unbalance it up by bringing all the oil back in and now we grow exponentially and will die like your foxes). That means that the [plant -> bunny -> fox] is not a pyramid going all the way up to the apex predator but it is actually a circle. Since bunnies and foxes poop, they fertilize plants again and we get the following two overlapping circles of life: [plant -> bunny -> fertilizer ->plant] and [plant -> bunny -> foxes -> fertilizer -> plant]. ENERGY is the rate at which fertilizer is turned into plants. If you have an unbalanced system as in your simulation that circle breaks apart and the bio sphere stagnates (= dead). If we barely make it through one circle, the circle will have big waves of: plants than bunnies than wolves than plants again. We get something like a mexican wave seen in a stadium. A real life example of this can be found in Australia, where big waves of bunnies eat everything there is, then starve. Next spring the plants regrow from the dead bunny corpses that act as a fertilizer. It is the same biomass just differently arranged. One day as a bunny and the next as a plant. The biomass is doing a mexican wave through forms of existence. Instead of people having their hands raised or lowered we have biomass being a bunny or a plant. This waves of bunnies will lead to a competition under the foxes. They will lower the bearing time to reproduce faster than the other foxes. Everyone tries to find a shortcut in the circle of life trying to increase its own metabolism. Such an environment is super competitive for the foxes as having an edge in the beginning of a fox wave gives them a very high probabilty to win the whole next generation by out reproducing the competition and turning a big chunk of the bunny mass into children. This competition is called evolutionary pressure. A fox that gains an advantage with a mutation will flourish and the fox population will see rapid changes. If the fox population is big enough many mutations can occur at the same time and this might lead to the inability of the foxes to reproduce with each other. They start to drift apart and we now have a second fox species. If they start to directly compete which each other one the of species will die out (as the neanderthal). But if they keep drifting they might dominate the other species in specific parts of the environment. For example longer legs + thinner body make them hunt bunnies in the open better but stronger shorter legs might help them hunting them in the forest. Now we have two distinct species that stop competing. Both fox species will start to drift more and more over time. We have now added a new Circle to our Circle of life: [plant -> bunny -> mutated_foxes -> fertilizer -> plant]. Since different foxes will behave differently, the biomass stays longer in one of the fox species and dampen the death wave behavior. You can image this as the mexican wave participants being slower or faster from their neighbors. Now the wave breaks up. The biosphere has stabilized by itself by creating a new species.
This is better than most research papers I have read.