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.
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.
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
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.
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.
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.
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.
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!
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.
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.
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.
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.
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
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 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.
I was finally able to finish this one: http://keiwando.com/evolution/faq/
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 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.