If you have any features you would like to see in a future version of this simulator you can post your suggestions here or just upvote the ones you like the most.
If you have any features you would like to see in a future version of this simulator you can post your suggestions here or just upvote the ones you like the most.
An obstacle mode for both running and climbing
I know that it's not about feature for the simulator but I think it would be useful and and cool if it was on Steam.
maybe a way to see how far/good your creatures are (maybe by adding meter/feet lines in the floor/background)
Yeah. display the score (in meters or feet) of the last gen's best creature. And the score of the current gen's best creature.
I would like to be able to alter the simulation time and the rate of mutation during the evolve process :) Good work!
Thanks! You can already doth both from the pause menu :)
zero gravity running mode so you can make “swimming creatures”. 3 dimensional building(3D creature). Able to download other user creations. Weapon attachments. And ultimately multiplayer race/pvp!,!,!,!,!,,!,!,,!,!,!,!,!,,!,
yo, zero gravity mode actually sounds fucking dope dude.
3D in a 2D project is impossible.
lol yes I just found it. I came here to retract my suggestion :P Thanks for your reply though!
Ok another idea then: maybe you could have an option to let bones slowly evolve in length especially when most creatures are within a few percent fitness from each other.
also it would be fun if you could move the joints design around between generations :P
do not exist a way to change the total population per generation, some times is better start with a huge population, and star to lowing the number of population, for exmaple, i started a spider with 1000 population per generation, using 40 per batch. now after 500 generations i would like low the population and speed up my simulation, becoune now the spider is close of the best way to run.
Is it available for Android because I don't see it nor the neural networks
I love ur game! No ads, no ingame purchases. Just a pure free to play game. You could add premium color options that offer no ingame advantages to make some money :D
Muscle programming. So you can tell specific muscle what to do
Seems kinda against the whole evolution idea, isn't it?
well yeah... but it would prob a pretty fun gamemode, or whatever it would be called
i think this would be really cool as in my current species they do what i want, up until a point, and to fix their error i would only need to move 2 muscles.
haven't played it (saw it on YouTube) it's a cool idea. One thing I'd like to see is the creatures have a chance to evolve their structure as well. Like mutate to add or remove joints bones or muscles across generations. Having an immutable body structure doesn't make for interesting evolution over the countless generations
Edit: sorry I kinda misspoke. It's for sure interesting and evolving neural nets are awesome... But it's only half half of the evolutionary process
imagine creating a creature that runs really fast until you save and then amputate one of its legs to see it cry for help, yes please
morbid :o but such a negative mutation would be pretty detrimental so I doubt it would persist. that and the others of the population would be selected. unless they all magically develop the same mutation? Maybe if the creator allows us to set our own fitness variables...
I really want to see something like this! it would add so many more possibilities and would be more like real evolution.
Select tool that basically does all of the essentials? Select, drag, copy, paste, and delete nodes, please?
An add on for this suggestion, also allow the select tool to rotate nodes too
Being able to choose how far a joint will let a bone rotate will be nice, something that can limit the angle could help make even more exciting creations
is it possible to “fast forward” or speed up the simulation overall?
If we could save the generation of a creature, upload it, and then race the uploaded creature with another one would be kinda cool
Maybe ad head feature. It could look like just a black spot(like an eye) and mark bones like you mark muscles . This might make evolving some creatures more effektive/fun. (The head or body i shouldn't touch the ground cold be an evolve rule.)
I agree. Many creatures get a good score by falling forward before "trying" to make a single step.
What about a way for the brain to measure how much stamina is being used, to allow creatures to figure out the most energy efficient way to move.
Perhaps as a check box in the brain menu to make it optional
This might be a strange suggestion, but hear me out... Do not count the first 2-3 seconds in each generation. The reason why? Because each creature is slightly slower because they have to get into position to move, since creature design that the creature spawns in isn't exactly the optimal starting position. For example, who would be faster? A human who started in a running stance, or a human who is started in a sitting position? The reason why I think this should be implemented is because you can basically make any creature faster by a large amount just by increasing the evolution time, and by not counting the first 2-3 seconds of prep time, we would have a more accurate view of the creature's actual speed.
Being able to scroll around the evolve screen and not just fixed on a single creature.
SUGGESTION TO IMPROVE THE A.I. to be a better runner
Like in real life, babies don't start trying to run, they
try first be stand up.
The program should divide the learn moves into 3 steps to lear how to run:
1- STAND UP : this is important to software knowing what is the correct creature position, to kwnon what is theyer foot, legs, head etc.
in this process at some moment we should to able to use a drag force using the mouse cursor, to try desestabilish the creature, or thrown heavy objects in it direction to test and see how creature try stand up with "stranges" forces on it body.
2- WALK: After learned how stay on foot, should now learn how to walk, becouse have a huge diference between walk and run, some animals (like a cat) when they are running, some times (mileseconds) they dont touch the ground and walking have slower moves and software should try to find the best way to consuming less energy in muscles (becouse walking is the most eficient way to move, differently of running, becouse is more explosive moves and higt energy musscle consuption..
3- finally using all the informations from step 1 and 2 to learn how to run, tryng to be the faster as can,
thats it THANKS.
But how would the game know what was your legs, and what was your body?
I usually make hyper-symmetrical creatures actively intended to move by rolling; having the simulation make them 'stand' first would mean the simulator would never find the intended movement pattern for my 4-fold mirror rotationally symmetric creations meant to roll. Granted, I realize I am likely an outlier among the playerbase; for non-rolling creations, your suggestion does make sense. If it were something that could be toggled, I'd be fine with it; just as long as it isn't forced on me when trying to make and evolve a rolling creation.
Add the ability to save and load neuron strings. Of course the net has to be the same size, and have the same number of muscles, but the body itself can be edited freely. Additionally the muscles could be visibly numbered so you can make sure the network connects roughly the same way.
A graph of how well the creature has done over all generations would be nice
Would be nice if there is a timer, to see how long the current generation will go and a possibility for an overview of current generation.
A timer would be pretty pointless imo, but what do you mean by "an overview of current generation"?
When i think of an "overview of current generation", i mean that you can zoom out with the camera and also move the camera with the arrow keys. And like i said in the post of the walking human (https://itch.io/t/228740/did-anyone-get-a-good-running-humanoid-creature), i "train" my creatures in a special way and for this would a timer be very practicle.
I gotta agree but for a different reason. Sometime I have the population set too high and I have the time set so something like a minute. Well 5 minutes go by and I'd like to know how much longer till everything resets.
This seems quite ambitious, but this game simulates just only the half of the evolution process, so how about add a way that evolves any creature, without only evolving its brain, but also evolving its nodes, where they're placed, and possibly mutates a random new bone and muscle even?
Great game! As a begginer in machine learning / deep neural networks, I have a suggestion that I am sure you considered but it's hard to implement in Unity api. It would be nice if you could somehow implement a gpu acceleration method and let it run in the background, without the need to render it ( and obviously scale up the speed of the game to be more efficient ). This would let us train the creatures faster and see the result afterwards. Good luck in the future!
I absolutely adore this game! It would be awesome if one could add antagonistic muscles, for example a triceps with a biceps or the quads with the hamstrings.
A possibility to let your computer (especially the gpu) simulate a bunch of generations in just a few seconds/ much less time. For example i have a gpu that just calculates at the beginning of a generation and that even with only about 40-50 % of its capabilities. However i have to wait till the simulations are over.
Edit: Upss... this was already posted by someone else.
would having a 64bit version improve performance?
I would like two have more control over how to determine fitness. I am not exactly sure of a great way to handle this, but here are 2 scenarios.
1) I was trying to evolve bipedal motion, but the thing keeps following over, then the one that can squirm the best is selected for. I would like to be able to maybe pick a Joint in the creature and stipulate something along the lines of, if this joint drops below a certain vertical height then drastically decrease the fitness of the creature. Hence creating a pressure to select for the creature to stay upright. Also, there are creature that stand upright initially, but they get selected against because following over moves the creature further.
2) When my creature all start hitting 100% fitness, then evolution no longer selects for improvement. For instance I can get 45.63 m/s on Generation 9 and then 12.7 m/s on Generation 57 for the Running Simulation because both produce a fitness of 100%.
Another thing I think may be cool would be to change the fitness equation. For instance, train something to stand upright, then train it to walk, then train it to walk and jump. Instead of having to start at square 1 for each task.
Ability to connect muscles from node to node and node to bone maybe?
here are some things i would like to see maybe if you like the idea and if it's possible it would be nice if bones were able to curve and bend and if it were possible to place more than one muscle between two bones also place the muscle freely anywhere on the bone and even muscles that begin and end on the same bone i think that could fix creatures not working
i love your Evolution simulator it's super awesome
I think it would be really cool if you could rate the creatures one by one instead of the simulation rating them by a certain thing. Then you could evolve your creature to do more specific things instead of having a few monetary options. Also, there should be a option to make sure that the crautures never just stop moving, because some of them do that and it is really annoying when they evolve to just fall forward and do nothing.
I love the Idea of having stamina and having to find the most efficient way to run. If that ever gets added I think that if you also put in the option to let the creatures get hurt, then they would have to run with slamming any limbs into the ground because that would hurt their stamina. That would be really cool.
I saw the option to pay for the simulator and I wish I could because it’s amazing but I can’t. I know this sounds really weird but if you added an option in the pause menu to just watch ads for no reason, just to help with the project, I would do that.
I'm not sure if this has been suggested or not but i think it would be great if we could manually pick which AI we wanted to continue to the next generation. this way if there's something the person is aiming for that isn't apart of the already established rules they'll still be able to do it.
Add an option during the generation simulations to create a "target speed", basically a speed that the creature has to reach, and can't go higher or lower than it. This might make for more interesting creatures since you can basically simulate the running, walking, and standing versions of the same creature, without having to add anything else. I got this idea from this video, the "target speed" shows up at the bottom at the 1:30 mark.
This idea would also work better with somekind of stamina system, so that, too
Add rigid bones, basically bones that can't bend
Ability to change individual bone's weight
Let us be able to select a parent from all the best from each gen so we can have a "little" more control.
Please make it so that we can train a creature and take the evolved creature into a different simulation. For example, you could train something to run and then take the evolved running creature and see how good it can climb. That would be really cool
So i have been thinking of a way to implement the "choose the best creatures" idea and i think it would be cool if you just got to give the creature a score. The score could be any number, but the higher the score, the better. You could use the same programming as deciding who was best in running, but just plug in the users score instead of distance. The creatures will still try to evolve to get a higher score even though the goal could change. It would be amazing if you put that in. By the way this is probably the coolest simulator i
Ability to change the incline of the stairs in climbing mode
Ability to recolor bones, nodes, and muscles to make it easier to see groups and parts in a complex creation
Add layers in building, like the layers in photoshop
Something like inverse kinematics where moving a node moves the rest of the bones and nodes its connected to, but without changing the length of the bones? I'd really like this so that identical limbs are easier to make, please
An alternative type of bone/joint that when it touches the ground greatly reduces the fitness and so lets you get the type of movement you want (for example not dragging on the ground or lunging) more reliably without having to mess with Mutation rate/keeping the best creatures.
Making getting the type of movement you want less time intensive.
I agree, anything in this kind of form where if it touches the ground lowers the creature's chance of survival would create more interesting creatures faster.
I like this, Whitefox2, but I'm thinking a slight variation of it would be better, so I'm going to post my variation in a separate reply and credit you with the original idea. I already upvoted this suggestion. Please look for my "SENSITIVE JOINTS" suggestion (which I will write after I post this reply to you) and consider upvoting it as well. :) Thanks.
A way to delete current generations for older ones in saves, for example, in generation 4, I get the movement that I want, but in gen 5, everything goes bad and glitchy and stays that way for a long time, but I only have the save file for gen 5. So I can delete gen 5 and go back to 4 and hope that it continues like that.
Not necessarily a suggestion for the game, but a FAQ page in the website (maybe even in the game) would be nice, and would stop the threads that are just easily answerable questions.
I was finally able to finish this one: http://keiwando.com/evolution/faq/
Just a simple suggestion, the option to change the name of gen saves would be nice, my saves are too cluttered and I don't know which is which.
A tool that connects every bone with muscles
Way too many times do we create a creature that glitches to the skies, which is obviously bad. So an option to add a vert distance line that whenever the creature passes it, dramatically lowers its fitness.
To add to this, an option that makes it so that if any creature goes below -5m vert distance dramatically lowers its fitness, too.
I'd like to see some way to manually place a kind of 'sensor' object that would essentially capture the rotation of a specific bone to add as an input to the neural network. This way, the creature can know the rotation of certain key parts of its structure, such as limbs.
I like this idea
Hi Keiwan. I really did NOT want to create an account here, but I see no other way to make suggestions. I have several of them. I'm easy to find on YouTube or Twitter (@DonaldKronos) if you wish to talk. I don't know if you will see this, but upvotes are not a good way to judge how well an idea is liked, because those posted later will have been seen by fewer people and had less time to accumulate upvotes. Even so, I'll post a few, each in their own reply in this thread, so that people can upvote them if they choose to, as you have suggested... and I will also look through the HUGE list of replies and try to find some to upvote as well. I don't know if links are allowed here, so I won't link to my YouTube channel, but I have featured your Evolution program in a few videos already.
Suggestion: ALLOW USER TO EDIT A NEURAL NETWORK --- First, I would like to suggest that a way be added to edit the neural net of the "best creature" (the one with the highest fitness score) and inject that edited neural-net genome into the population (perhaps replacing the member with the lowest fitness score. Even if what they're given the option to edit is nothing more than the binary representation to edit, with no explanation of what any bit or group of bits might represent, at least they could try stuff and see what happens.
Suggestion: START WITH OBSTACLE VERY SMALL AND SLOWLY INCREASE ITS SIZE --- For the obstacle exercise, I would suggest in the first generation that the obstacle (or ball rolling on the floor) should be about the size of a joint object. After that, it would increase in size slightly in future generations until reaching its maximum size, which should probably be the size currently used. When to increase the size could be every generation, or every 10th generation, or when a large enough percentage of the population manages to avoid it completely. My suggestion would be to first try increasing it every 10th generation. That way, early success will come more easily and can be improved upon by those members of the population that inherit it.
Suggestion: START WITH A LOW OR ZERO INCLINE AND SLOWLY INCREASE IT --- For the climbing exercise, I would suggest in the first generation that the floor should have the jagged edge that will be needed later on, but should be level or a very shallow slope. I think completely level would be better if fitness it rated based on left-right movement, but if the fitness score is actually based on altitude then small incline would be needed in order to measure fitness at all. For later generations the slope would increase a little at a time until it reached its maximum, which should probably be the slope currently in use. When to increase the slope could be every generation, or every 10th generation, or when a large enough percentage of the population manages to make some reasonable progress. If increased every generation, the increase in slope should be almost imperceptible. My suggestion would be to first try increasing it every 10th generation. That way, early success will come more easily and can be improved upon by those members of the population that inherit it.
Suggestion: ADD RUN TO THE LEFT (AND RUN EITHER WAY) --- I would like to suggest changing the name of the "RUNNING" exercise to "RUN TO THE RIGHT", and then adding in a "RUN TO THE LEFT" which would score fitness based on how far to the left a creature managed to get and "RUN EITHER WAY" which would score fitness based on maximum absolute distance from the starting point. I think this would be great for illustrating that it is the evolving neural network which ultimately achieves the specified task and not the specifics of the body design (although the body does have to at least have the potential).
Suggestion: ADD OPTION TO UNDO LAST CHANGE --- Sometimes it's difficult to get delete or adjust something placed or connected differently than intended, especially when a muscle gets misplaced among other muscles... so it would be nice to have the option to undo something like that directly.
Suggestion: ADD MUSCLE ON/OFF TO NEURAL NETWORK --- I don't know whether the muscles are simply set to push r pull at full strength or have different levels of push and pull (which I think would be much better, though more computationally intensive), but they do seem to be always either pushing or pulling. I would like to suggest that the neural network should be able to opt to turn a muscle off completely, so it would still have it's passive springy tendency toward its original length but would neither actively push nor actively pull. When set to show "EXPANDING" in blue and "CONTRACTING" in red, neutral or turned off could be shown in purple.
Suggestion: UNBENDALBE JOINTS --- I would like to see a way to give specific joints an "UNBENDABLE" attribute, so that it would effectively allow the user to fuze two or more bones into one "bony structure" with a specific shape and more than one place that muscles can be attached. As an example of how some people might use this, I've seen several YouTube videos in which a person tries to give their creature a "head" which immediately collapses and flops around. LOL! This way they could make a head that at least doesn't collapse. Flopping around is a separate issue. :)
Suggestion: EXTRA SOLID BONES --- I would like to see a way to give bones an "EXTRA SOLID" attribute, to reduce the tendency of bones to apparently change length under pressure. This would offer a way of making structures with more predictable behavior. What I mean by this is easier to explain by example. I've seen YouTube videos in which people talk about using "triangles" as if they are immutable shapes. This way, they could be... without messing with the usual behavior of ordinary "bones" in the program.
Suggestion: STRETCHY/SPRINGY BONES --- I would like to see a way to give bones a "STRETCHY" or "SPRINGY" attribute which would make those specific bones less solid than the way they normally are in the Evolution program. Such an attribute would allow a user to tweak the physics a bit with regard to certain parts of their creature.
Suggestion: SENSITIVE JOINTS --- I would like to see a way to set joints to be sensitive to touching the ground, such that touching the ground would decrease the creature's fitness score. This is based on a suggestion by Whitefox2 about being able to place a ground sensor in bones, and is also an extension of my own idea of being able to set attributes such as flexible bones, extra solid bones, unbendable joints, and so on, which would allow the user to tweak specific details about a creature other than the starting arrangement of how its parts are arranged. This feature would offer a way of discouraging a creature from collapsing onto the ground when asked to climb, or and discouraging certain parts (such as an intended "head") from being used as feet.
Suggestion: COMPETING CREATURES --- I would like to see a way that a user could clone a creature and modify its clone and then test the fitness of both at the same time, with a way to switch back and forth or cycle through the creatures intended to compete in the same activity. Offspring would generally be of one or the other, usually avoiding breeding of neural networks between different body types, but if enough of the parts could be matched up to consider them structurally compatible with each other, their bodies could even be occasionally be included in the process of breeding, producing offspring with, potentially, physical and mental features from both parents. Perhaps the most fit of such hybrids could even be made available in the creature building area.
Suggestion: BODY EVOLUTION --- Okay, so technically the body of a creature in this evolution engine evolves as its designer adds changes to it, but I would also like to see an option to turn on (or off) the inclusion of body mutations in the breeding process which might move a joint a little bit in some direction, switch an attribute on or off such as EXTRA SOLID on a bone, or "UNBENDABLE" on a joint. One such change should not make the resulting offspring structurally incompatible with other offspring of sufficiently similar creatures, so the body could then be included in what's inherited and perhaps exchange "genes" when reproducing in a similar way to what's currently done with the neural networks.
Suggestion: GROSS MUTATIONS --- This is mainly meant as an extension to my BODY EVOLUTION suggestion, but could be implemented with or without it... although it wouldn't make nearly as much sense without it. The idea is that is bodies were inherited rather than only the neural networks, once in a while a body could have a mutation that connects a muscle between two bones (preferably which are connected to each other by a joint, though they wouldn't have to be) or could have a muscle deleted, or perhaps even have a short bone added dangling from an existing joint, or a bone added between two existing joints. Most such mutations would be detrimental, so such "GROSS MUTATIONS" would be turned off by default, but if switched on they would be allowed to happen, the detrimental ones would likely be quickly weeded out. Neutral ones might end up with a few offspring, and the rare beneficial mutations might even end up dominating the population. :) This might actually be very beneficial in terms of autonomously eliminating useless extra weight (such as an unneeded "head" which the brains are not stored in anyway) or muscles which do more harm than good with regard to a specified fitness task.
I'm suggesting the use of the term "evolation", as an extension of the family of words including "simulation" and "emulation". The word "evolation" is formed from "evo" used as a prefix and "lation" meaning local motion or local disturbance and indicating a local system of change. Indicating a system of evolutionary relation as conforming to, generated by, or viewed from the perspective of local conditions.
Gravity adjustment and/or other environment adjustments.
Environment viscosity, to enable flight or swimming. That is, add optional simulation of air or water or whatever "substance" one might consider the creatures to be moving inside of. A viscosity setting could allow adjustment of such simulated substance to act as air or water or perhaps even something like tar or quicksand.
Ability to lock parts of the neural network, so that mutations will not occur in those specific neural network locations. This would not limit gene exchange when producing offspring.
Ability to inhibit mutation of certain parts of a creature, so that evolving structure from generation to generation would not involve mutating those specific features. This would not limit gene exchange when producing offspring.
Allow selection of fitness environment and fitness criteria in various combinations. For example, running criteria (movement to the right) in the climbing environment. (Which might just already be measuring movement to the right, but it what the only example I could think of while making a video and thinking about other things and reading what I'm writing at the same time so that my video will hopefully be more interesting.)
Hey, Keiwan... How about a feature to ignore the first second or the first n seconds of the simulation with regard to the fitness criteria?
In other words, the recorded starting position or other condition with which to compare for fitness calculations would be reset for each member of a batch (or generation) after the chosen number of seconds, one time, to reflect the creature's position or state at that time rather than what it was set to at the beginning of the simulation. This would eliminate (or at least partially eliminate) things like scoring an immediate fall to the right as good running skills, since the fall would generally happen in the first second or two. The setting could default to 1 except when the time per batch is set to 1 second (or less) in which case it would be turned off (set to zero). It could be changed from the Pause screen to any non-negative number which is smaller than the number of seconds per batch.
How about negative fitness scores? For example, if a movement of +x counts as 100% fitness, then a movement of -x would count at -100% fitness. It appears this is already being done internally, but simply not displayed. This would allow creatures which move in the wrong direction to still be compared, so that badly wrong could be distinguished from slightly wrong.
I think that the input for the number of joints that touch the ground might be a bit arbitrary. Maybe if we had a 1/0 input for every joint it would improve performance
Can we get joints with a custom range of motion? 360, 270, 180, 90, 45, etc., as well as the ability to rotate them before placing. Shoulders, knees, elbows, hips, etc. all have this limitation in nature. I think it would add interesting dynamics to this simulation.
Also, It's probably been suggested before, but can we have stats on how far the best creature jumped, walked, climbed, etc.?
It would be interesting if there was a choice of random mutations in the body
Like another muscle or a larger rib or another leg and so on
Then the creature will develop in terms of control and body
also it would be nice if you could turn it off/on in case you don't want it to physically change
can you make it possible to limit the angle joints can rotate?
thats all this really needs to be perfect
1. I'd like to be able to share my creations.
2. To be able to add environmental objects such as a Trampoline or walls to climb.
3. To be able to add Static or dynamic clothing (Draw on or preselected clothes)
Restrict muscles so that they cannot pass through other muscles and bones in your initial build.
Also there is a glitch when you connect two unconnected bones by only a muscle you get crazy results.
if we could have a button that could cancel a generation that would be great. I have had this problem many times when my creatures just degrade very badly in a generation. Once my creature had got to 4.05 m/s and 36% fitness and I was super happy and excited about the next generation expecting it to go up to like 4.95 m/s or something but nooooooo. It went down all the way to a mere 0.61 m/s and 5% fitness. So it would be great if we could restart generations. And by the way, I have a question. Is the fitness of a creature the percent of chance it has to go on to the next generation?
Make it possible to select points and copy, and also so that a person can choose the dimensions of the building field during creation of the creature, and make that if two bones are in one place create different layers on which these bones are located and the possibility of transition between these layers.
Make a point that will be the head and the best gene will be the creature that will move the point from the starting position as small as possible.
Good day, I would like to be able to create their own obstacle course for the creatures and it is desirable that it was all on my favorite platform Steam and make a workshop where users can download creatures and maps. And to keep all the files and saves in the root folder of the game, I do not like when games and applications create a billion folders, which then can not be removed.
How do you look at the creation of such a project in 3D? Where will creatures need to learn to move in three-dimensional space, taking into account the laws of physics? I understand that it will be very difficult to do this, but I think it would be very cool and interesting to see it.
PLEASE change which creature is chosen as the best for running by using the LEFT-most point of the creature. (the way it is now, using the centroid of the creature to determine which one went furthest, highly favours creatures that just fall over)
It's currently using the centroid (the average of all joint positions) for the fitness calculation.
you should make it so you can save the best creature of a certain generation so you can share it n stuff. also, make a racing thing where you can put 2 or more creatures to race. They don't evolve. just a race to see which one is the fastest/best.
what about a thing that's the opposite of climbing: falling. basically the goal of your creature would be to fall as fast and as efficiently as possible
- it would be nice to make some kind of battle or race between two creatures
- it would be nice to draw our own scene with a point to reach.
- it would be nice to have some kind of ceil to free climb :-D
- how much expensive could be do the same app in 3d?
Make it possible to mark different creatures in different colors.
I'm not 100% sure if this is already possible, but when i was trying to make a worm with a spirng like core to move, i wanted to make it like real worms, but worms have muscles that connect to their "bones" as well as their joints, so i would love to be able to wrap or attach muscles from bones to joints and joints to joints as well as bones to bones.
give them organs and a knife, make it gory. make it so people can have them fight in an arena. game done.
I have a few ideas that I don't think others have asked for yet.
A level editor with basic shapes, a creature spawn, and a goal to reach.
A file share system for creatures and levels.
Make the grid system in the creature creation subdivide instead of scale to make adding details more fluid.
A 3D version wouldn't be as available for phones but could be interesting for a variation on the game for pc or console.
So, i came up with this idea when doing a climbing simulation thing. We have climbing, but what if we had the opposite: falling? So, the map/thing would be the same as the climbing slope, except it's on the other side of the screen (it's usually on the right so in falling it would be on the left). The goal is simple: fall as fast as possible. The lowest creature in elevation is the winner.
you should be given the option to see the worst creature of a certain generation for fun
It would be cool if we could set a max and min to a joint. To avoid creatures imploding on itself.
Also undo and the ability to select and move multiple joints at once would be cool!
it would be nice if the game took advantage of cuda cores or used more of the cpu because i want to be able to do like 2000 per generation and leave it running overnight to create a stick figure god but i cant because the game refuses to use all of my cpu or gpu power
I'm playing with this for quite a while. It's a very interresting and addictive game! I even took the time to test some already existing schematics in nature (like the horse or the cheetah) to be able to compare with real life (the most it can be done hehe). I'll summarise what kind of things that could be improved from this version for a second version (can't wait to see that!!).
The first thing that I noticed is that the friction is too high. We can easily see it when a creature trying to make a foward trust or climb the stairs. Legs easily slip, even if we make feline legs and add some fangs.
Next thing I noticed is that the creature always tries to do the task right away, rather than trying to stand without falling first (reaching equilibrium).
For the task of climbing, the software doesn't care about the space the creature is taking, and can make joints appear through the ground, so making the creature bug instantly. The hill could also have stairs a little more large. Or maybe making the creature start on a flat ground.
I 100% agree with the friction. Most creatures can only move through bouncing because their feet just slide on the floor when they walk. It would be cool to either see settings that change the floors friction and/or having a "stickier" joint or a joint that the creature can use to grasp the ground with.(That way the entire creature doesn't just stick to the ground)
For climbing it would be super helpful if the building screen showed what the starting stairs looked like(along with the running and jumping modes showed the ground plane and the obstacle jump showed the obstacle.) Something that could be toggled so it wont be distracting for some people.
different types of joints, bones and muscles. Like bones that are the default but also ones that are rigid, bendy/squishy, and stretchy or bones that are lighter(like hollow bones) or bones that are heavier. Joints that are the default, ones that can only bend so much, ones that dont bend at all(to have more places for muscle) or joints that add friction to a creature(to have on feet but not on tails so they don't get stuck). Muscles that are the default, ones that are faster at expanding/contracting(More hyper in a way), and ones that are stronger than normal(for things like legs so they can hold themselves up easier).
Able to turn on and off muscle visibility. When I make something like this,
I want to see just the creature too.
Simple cosmetics like a googly eye or simple shapes for noses and stuff.
It could either work as joints that have a different texture or be able to "tie" them to either one joint or a multiple and keep the average distance to them. That way, they wont mess up the simulation but will still follow it.
It would be wanderful if you make a 3d version ov it
I made this list of ideas
I'm not sure if this has already been brought up but there is a simple hack that can get a creature to each 100% in every category easily. Simply create two creatures I just used 2 upside down V shapes and didn't connect them with bones but rather with muscles only. What this did was that the simulator after a few generations would simply lob half of it's body to some part of the screen. This got it to get 100% in running, 100% jumping, and 100% in climbing. (I didn't try obstacle jumping). I realize it's a simulator and not a game, but I'm not sure if you have intentions of trying to dissuade this method or not.
I read the section on not limiting muscle length in your FAQ, but I thought of another approach to the problem: You could perhaps have muscles tear when stretched beyond X times their initial length, and remove such creatures from the gene pool?
Also, I want STATS!! GRAPHS!! CURVES!!! ;)
...or perhaps the force could apply logarithmically so that as numbers get bigger the muscles dont get longer at the same rate
OR you could cull the ones that have a point to the right of and below the screen
It would be cool if the "show one at a time" mode had the others still visible but at 1/population opacity
measurements on the floor / steps / obstacles could be good to have.. like numbering the obstacles, or a simple ruler on the floor for running, perhaps numbered steps?
maybe a "follow the leader" mode would be good
how about loading an image background for the editor?
it would be nice to have a mode in the editor that locks the bone lengths and allows the user to pose a model without changing its layout
a visible countdown or timer could be a good addition
So, there's a couple concerns I have involving the evolution process, which might be significantly hindering creatures' ability to improve their fitness.
First, there doesn't seem to be any bias nodes in the neural network. Usually, one bias node is added to the input layer and to each hidden layer, and is simply set to always output 1. This is then multiplied by genetic coefficients (just like with any other node) to make nodes in the next layer have a constant offset; making certain nodes easier or harder to set very low or very high. It's a small, but extremely useful, addition to nearly any neural network. (I suspect this is the case because you list six inputs in the help screen: distance from ground, horizontal velocity, vertical velocity, rotational velocity, number of points touching ground, body rotation. Also, when looking at saved generations, it says there are six input layer nodes.)
Second, I'm concerned that the "sexual" (for lack of a better term) reproduction method is inefficient. You mention that new children are created by selecting two random parents (weighted by fitness), splitting their neural network data at a random location, and splicing opposite parents' pairs back together. This seems likely to sometimes kill off a highly-fit creature by breeding it with another creature whose strategy is completely incompatible, resulting in two children that both use two incomplete halves of two strategies that only work when whole.
I'd like an option to use an "asexual" method (again, for lack of a better term). It goes like this: You simulate a generation and give them fitness scores. Then you kill off half of them. The most fit creature is guaranteed to survive, and the least fit is guaranteed to die. All other creatures are then randomly selected for death, with the lower-fitness creatures getting higher chances of dying. The surviving creatures then generate two offspring each; both of them exact copies of the original, but one of them with a random amount of mutations. This method is guaranteed never to kill off the most fit creature unless another creature comes along that outperforms it. In otherwords, you never lose progress; every generation is at least as good as the one before it.
You can enable the "Keep best creatures" option already, which guarantees to carry the best two creatures to the next generation without any change to their genes whatsoever (no recombination or mutation). You might still see slight fitness drops and variations though, as explained here: http://keiwando.com/evolution/faq/fitness-drop/
Would be nice to be able to select multiple pieces together and move them as a unit. Perhaps a rectangular drag-to-select type arrangement, such that assembled "parts" could be moved around in relation to other parts. Moving things around one joint at a time is pretty tedious and at certain levels of complexity it can be almost impossible to move something you've already made.
An 'undo' button that reverses the last change would be a big help as well. I've completely ruined a creature by deleting the wrong bundle of bones & muscle.
Both Undo & Redo and a selection tool will be part of the upcoming update :) I've already finished implementing Undo & Redo.
i think it would be useful to add like a vertical laser that follow the creature; to improve the speed and avoiding to go back
I'm not going to just copy Code Bullet's ideas ;)
Hello! Just got my copy, and I've actually been doing some coding with neural networks of my own.
I noticed that there are only 6 inputs for a creature. Seems like this would ultimately limit what a creature could ever "learn" resulting in (theoretically) a lot of "stalls" (ie, creature moves until it gets to a certain position, then simply can't any more).
What are the odds that we could have a mode where each "joint" is in fact an input, or even a series of inputs (ie: the joint's current Y position, and orientation, for example.) Also, the "state" of each muscle could be an additional input.
This would allow for VERY intelligent and complex actions to be learned over time. For instance, creatures may even be able to learn how to stand back up once they fall down.
If people are concerned about the additional overhead of the math, it could be a toggleable series of options, maybe?
Love the tool!
Oh, and another nice feature would be the ability to "hide" or "dim" bones/joints/muscles. So when editing a complex creature, we can click on "onion skin" or something, and then click those things we want to make less visible, and they'd be dimmed out. While dimmed, they wouldn't be collidable (ie: you wouldn't be able to attach muscles to them). For more complex creatures, this could be super helpful!
Joints in general function like a ballbearing, they almost revolve 360 degree ! they must work like the kneee; stop at some point to be like in nature.
A big thing for me would be a mute button. The music is very nice, but to mute it, I have to mute all things chrome/chromium. That said, this is exactly the thing I have been hoping to see for a long time. I really hope you expand on this idea even further. I really enjoy it a lot. I'd also love to see generations displayed in parallel in tiled windows, so I could watch a lot of them at the same without them being overlayed on top of each other. But the priority for me would be an option to disable audio. I suspect this will see a lot of run time!
There is no audio at all in this simulator, so I'm not quite sure what you mean.
huh, I just ran it again and no audio. I don't know where the music was coming from then. Well either way, its gone now.
Sorry about the confusion.
Downloadable content that other people made
I'm waiting anxiously for GPU delegation. Seeing the screen lag when my computer is sitting at idle is a painful reminder of how much faster things could be running.
Speaking of faster, how about turning off real-time simulation and letting it go as fast as it can?
maybe you could choose a landscape or climate and theyll adapt to the temperature and landscape as well or you could add predators for them to avoid
Make the ability to change the parameters of the joints, bones, muscles, etc. before installing them.
Make the ability to select multiple objects with shift key pressed, and if the allocated refers to the same type of objects give the ability to change parameters on all selected objects.
I think a good idea would be to add tabs, as in be able to create and evolve multiple creatures at a time, because some creatures slowly evolve and then you could work on another one. I do realise that this might make it really laggy if you have lots running at the same time but i think it is worth it if you just use batches and dont do to many at a time :)
Thanks, it would be really great if you could add this
To do that, select "simulate in batches" in the pause menu.
No, i mean be able to simulate completely different creatures at the same time
It would be nice if we could select 1 creature to be a parent in a generation.
add multi selection editing. so i can select multiple things edit them.
like weight and strength.
Is there a log output file, cause if not i would like to know why my significantly powerful pc was completely frozen when I got home from a 9 hour shift. Not only that but it was only on stage 302. Given the time frame it was supposed to be on stage 2163. I'd like to know the method of movement that gave my computer a brain aneurysm. So if there is a output file can you point me in a direction if not then it wouldn't be a bad idea to have one.
A copy and paste button for mobile
you should make it so you can speed up time
y don't u put meter lines/checkpoints on both sides of the starting point instead? it'll make it fair for the creatures traveling a different direction.
the best creature in the current gen can be on the screen next to the best creature in the last gen. You should also make it so you can control how the simulation determines the best creatures each gen in the settings. Example: u could put fitness proportional so the best creature is determined by its fitness & other options.
u should add the option to control how ur creatures reproduce (Sexually &/or Asexually)
Because genetics work differently when organisms reproduce differently..just a suggestion
Some simple requests:
1. Timer. It makes it more fun to watch, almost like a race. In the last few seconds, the current generation might do better!
2. Current Fittest Highlight. Highlight the creature in the current generation that is currently the fittest (e.g. furthest along track). This makes it more fun and clearer to compare the current generation with the previous best, again a bit like a race.
3. Continue Simulation. Once we click "Back" the only way to get back into the simulation and carry on where you left off is to load it. Can we not please just click Evolve again, if the creature has not been changed?
4. Improvement Indicator. Clearly notify us if a newly evolved creature has outdone the existing best, and if so by how much, e.g. 1% improvement in fitness.
More complex requests:
5. Simulation Speed Dial. Please let us turn up the speed of simulation so we can quickly discover if creatures are evolving in the right direction, or need to be fundamentally changed.
6. Custom Optimisation Goals. Let us control/add the parameters to create new challenges. I would love to combine switches for: Maximise/Minimise Horizontal/Vertical Distance; Keep Selected Joint Above/Below/Front/Back.
7. Manual Centre of Gravity. Let us manually position this point (i.e. the point where the flag marker is placed) by selecting a number of joints (the marker is placed at the mean position of selected joints). This means e.g. I can force the marker to be between my creature's two feet (if I want it to walk) and it won't always think it's being fitter by finishing its attempt with falling forward.
Much more complex requests:
8. Give Creatures Hints. Let us pause the simulation and select a muscle, causing it to toggle its contract/expand state. This change would be backpropagated to create a manual mutation ("the hand of god"!) and is like the player saying "try this" rather than waiting and hoping for a random mutution to cause it. This instantly creates a new generation with a new offspring containing the manual mutation.
9. Hardware Utilisation. When I dial up the parameters the simulation slows down a lot. I'm running a Core i9 9900K at 4.7GHz on 8 cores, with an RTX graphics card. While the simulation slows down, I can see that Evolution is not using more than 20-30% of my CPU/GPU. Can you make more use of multiple threads, and the tensor cores in RTX cards which are designed for ML?
Thanks -- what a fantastic game.
a penalty joint. if it touches the ground, the creature is punished.
I want my creature to run upright
i want a rotation of joints
I would really like if the brain could recognize if his shape is a circle that can roll. The current brain seems to keep wanting a "UP" and "DOWN" part of the body, and tries to "keep its balance", compared to a round shape that have to think relative to its position inside a rotation to keep rotating/accelerating.
Maybe adding some clickable option to enable it if it's the case.
There is no 32bit version for windows?
Some sort of wing thing
An option to set a part of your body to deduce fitness if it touches the ground during the simulation. Really wanted to experiment with bipeds where the legs are actually in line with each other but the AI seems to find it more efficient to just fall forward far before it ever gets a chance to actually learn how to balance.
I have no idea whether you're still working on this or not, but I'll add this anyway. I'm not exactly sure how complicated this would be to do, considering I don't know how to code games and it could require revamping to code as a whole or something... but is there anyway to run the game with more cores than it's already running on? Because the game extremely laggy but it's only using 20% of my cpu and I want to run some large simulations!
Seeing what appears to be an evolution inefficiency when reviewing best creatures of generations, especially for climbing when all creatures are at 0% fitness (initialization) and when all creatures are at 100% fitness (yet with more untapped potential in the body that creatures which do tap into it seem to go unrewarded for tapping into it), I'd like to suggest an alternative fitness measurement to address this; ((self)-(worst))/((best)-(worst))=x% [within generation].
That is, for either climbing or running; the creature within the generation that moves the most to the right (or falls the least to the left) will always be marked as 100%, and the creature that moves the least to the right (or falls the most to the left) will always be marked as 0%. For creatures between, their fitness is the % of the best that they reach after subtracting the worst from both itself and the best; so if the best climber falls -2m to the left and the worst climber falls -8m to the left, a creature that gets -5m will have a fitness of ((-5)-(-8))/((-2)-(-8))=3/6=1/2=50%. The best gets ((-2)-(-8))/((-2)-(-8))=100%, while the worst gets ((-8)-(-8))/((-2)-(-8))=0%; thus mechanically serving as the clamps for their generation.
I believe this would help optimize evolution efficiency most notably in climbing initiation, where with the current method if all creatures get 0% it doesn't (seem to, as far as I can tell,) matter if one fell -5m left and another fell -15m left. Having fitness effectively 'unclamped' while being mechanically bound between 0 and 1 by the nature of the formula itself anyway, I believe would also incentivize constant improvement at the task; currently, if fitness does reach 100% at any task then no further improvement seems to be expressly selected even if the body still has more potential that several creatures go effectively unrewarded for tapping into.
Be able to rotate and/or flip your creatures. Because I built a creature that went backwards better than forwards and I wish I could just rotate it.
As many already have asked for, a "head."
Evolution tends to favor those that don't die, but in the simulator there is no death or risk, causing many "species" to move using methods that should kill any.
This could also give the obstacle jump a boost in evolution, forcing creatures to learn to jump earlier/faster.
you should make it so you can speed up the simulation speed
You can't exactly do this. It is like asking a baby to move faster.
It takes a long time but the baby (your creature) will learn.
You actually can, Unity MLAgents does it by default. Code Bullet's Creature Creator also has that option. Simulations aren't babies
I know this is SUPER old, but I personally feel like it would be better if there was a checkbox option to have limbs have collision with other parts of the body, instead of it going through itself. I request this because it just makes sense, it would bring more stability in the creatures.
Hi Keiwan, just getting back into the game after a little break. It would be nice to see the current speed of the creature being viewed. I have a creature that starts slow and then goes really fast, so I would like to know the max speed that the creature reaches. In fact, maybe there could be a max speed achieved and current speed added into the game? Thanks
Very interesting game. Thanks.
You could consider having a contest : e.g. fastest creature running for 20s. What do you think?
i know this hasn't been updated in forever but maybe an option to make certain bones kill the creature when it touches the ground, to get rid of creatures crawling on their face
Played this game since 13, an amazing project to have fun and explore biology and AI. It would be cool to add some kind of dimensionality, but all-in-all the game is super fun.
I think that the joints slip too much on the ground. Maybe the game would benefit from an increase of adhesion?
When stopping a simulation at the nth generation, it would be cool to be able to move some joints while keeping the neurones weights and so resume the simulation from this nth generation. In other words, neurones weights are erased in case joints, bones or muscles are deleted or added, but not in case of just moving the joints around.
I would like to grow my creature using different "learning rates", and by that I mean mutation rate. For that it would be very useful to have a dashboard, similar to tensorflow dashboard. I'm sure you know exactly what I'm referring to.
Keeping track of the settings and fitness would be very helpful in growing a successful creature.
Support for adaptive
learning rate mutation rate based on the fitness would be too much to ask, but would be amazing.
maybe add a grid option to the build screen
A Debug menu would be cool
Like, let's say we have a random evolution. What if you could add no gravity or a part maker
But, a customizable task editor is just dope. Ex: you could make a ramp.
Two modes in which the creatures move in fluid, one with gravity and one without.
The ability to see a creature's neural net during a simulation.
Modifiable part friction and adhesion.
Great "game" !
Some features that would interest me :
- non mobile joints (to make fixed angles with bones)
- to be able to edit (add or delete or move joints, bones, or muscles) after several steps (generations). This could be useful to first learn "basic" behavior (like walking) to a quite simple but secured pile of bones, joints and muscles (secured in the sense they cannot fall easily), and then remove or add components so they are more efficient.
- to record data in a csv file, data like the best scores over time, or all scores over time ...
- and would it be possible to have a look to the configuration of the "neural net" of best creatures (as a list of parameters for example)
Have an option where the creature could mutate extra limbs or muscles
PLEASE ADD THE OPTION TO ROTATE :DD
Put it on tablets and phone ok
Possibly letting the simulation run in the background on mobile.
Simple dark mode that just toggles a final `1-x` line in an existing shader for minimal impact.
Network input for if any joint within a group is touching the ground, rather than simply how many are. I imagine it's useful to know which foot is touching the ground rather than only how many are. For backwards compatibility all unspecified joints are in the same group.
Activation functions for the networks. I tried to find if there's already some form of nonlinearity in the network but I can't parse Unity code and didn't see any in the brain code. Simple choices include ReLU for just clamping the minimum value to zero; Leaky ReLU which is just ReLU but lerp the original value in a little; Sine; GeLU as approximated with `0.5 * x * (1 + tanh(sqrt(2 / pi) * (x + 0.044715 * x^3)))` which allows for some negative values but fades to zero as it becomes more negative. The final outputs shouldn't have these on them.
Biases to go along with weights in the network s. Simple values to add to the output of each fully connected layer (before activation function if added).
There are more complicated things that might be interesting, like gated units where the output of one layer is put through an activation function and then multiplied with the output of another layer in order to block off an output in certain situations, but at a certain point a line has to be drawn for simplicity.
A option to not choose creatures who topple over to not be selected as the best since at least 100% of all my creatures end up using falling over as a strategy by wave 2 because one fell forwards before one was walking normally, so I have to restart the batch in hopes they dont fall over.
Select a joint and increase the fitness penalty. This reduces the fitness rating when that joint touches the ground.
This "game" is awesome, Two requests here please:
01- the possibility to use multiples cpu and cpu threads.
When simulation in BATCHES is active you can run more simulations BATCHES per cpu core or using cpu mult threads to improve speed of simulation. my cpu has 16 threads and the current version is using only one.
the next one I don't know if is possible:
02- global online simulation, maybe this one is a little to much and it needs be a paid service
we can use a online server or another way to allow multiples computers or cell phones to improve and simulate the same creature, for example, I create a monster, upload this monster online or active a button "global online simulation" and any one can make a online simulation and continue the same evolution, not start another simulation but improve the same creature and the best fitness version will be selected, imagine 10000 simulations at once running in the world, could be a very nice addition, very complex I know...
BYE I love this "game"!!!
add a button to "praise or scold" the ai's learning, so you can aid it into doing what you want
Sometimes. my creature goes walking off at full speed and i think yes perfect i did it, but it's in the wrong direction so it doesnt count. Maybe it could evolve to flip? Or the workshop has a flip button?
There should be a swimming mode, in which your creatures swim, like how there's a flying and running mode.
Surely duplicates, but I'll list just in case anything's not covered:
Really, the first two would be enough to make a huge improvement, I think.
for max speed you can use speed hack from cheat engine, it works really well
Que la version de windows sea gratis
I would like to see a swimming game mode and also colliding bones, I had ideas where you can make a catapult launch a creature which can then walk and another idea where you have a creature in a train like shape and the creature can push the train
I'd love to be able to share creatures:
- copy/paste a creature's structure, to be able to share it here, in this forum (as a long encoded string ?)
- export creature as a file (with "program", ie leaning result) ?
What about brain editor? i would love to be able to (try to) make a creature move how i want it to. Also add inverted groups(if group 1 contracts group inverted 1 extends).
Try out "Crescent Loom" it's basically what you want :)
looks cool, problem is i cant afford it
download for chrome please
A discord server would be great even to upload creature for others to download