Submitted by hugio55 t3_10naica in deeplearning

I am wondering if there is any software out there that would allow for me to run an evolution simulator on my own machine - and is more in depth than rudimentary online web game-esk evolvers.

Important things to me:

  1. the processing can be done on my machine (there's something about utilizing my own hardware that is really satisfying to me.)
  2. evolution-based mechanics (I am quite fascinated with the subject and I find that, albeit silly and inconsequential, making a "brand new" [simplistic] locomotion machine is exciting. That said, it could be anything related to evolution (doesn't need to be locomotion, etc))

I do know there are websites and mini apps that have what I'm talking about (specifically locomotion evolution "games") but they don't scratch the itch of pinning my PC at 100% for a day or two to see what more intensive computation produces. For me, the difference between the way bread tastes when you spend the afternoon making it, or buy it from the market.

My skills in tech are intermediate. I am a 3D animator by trade, but my expertise are within the software package that I use for animation, not so much on the outskirts. Aka, this "desired program" would need to be more or less "run the installer." Aka2, No known programming languages here.

I feel a bit silly, as if sitting on Santa's lap, cooking up the perfect gift, but heck, maybe it's out there and maybe you guys know if it. I've done a good chunk of googling for this, as I always do before posting, but I think this, if out there, may be more niche and the web results might be getting utterly drowned out by all the big marketing budgets for all products "AI."

Thanks for any pointers. Cheers.

3

Comments

You must log in or register to comment.

JJJJJJtti t1_j67tyg1 wrote

I have no idea about pre-existent evolution simulation environments, but making your own is definitely feasible. That will simply require a solid programming background (perhaps physics as well, depending on what you have in mind). Based on your current background, I would suggest Python (or C/C++ if you really want maximum control over your hardware even though this will be much harder) and go with it.

1

hugio55 OP t1_j69vdk6 wrote

Thanks for this input! I will start to look into some lessons/how to's to begin the journey.

1

LiquidDinosaurs69 t1_j69jpk3 wrote

Actually, there aren’t evolution based locomotion optimizers (that I know of), but there are reinforcement learning based ones (much fast and more efficient). It actually probably won’t be very difficult. You just need to use stable-baselines3 reinforcement learning library and then use an existing openai gym format for whatever walking robot you want to experiment with. I think there are gyms available for humanoids and quadrupeds. You could get it running by following stable baselines3 tutorials.

Unfortunately, these optimize control policies, not the actual robot designs itself which I assume is what you want. Theo Jansen (strandbeest guy) used an evolutionary algorithm to come up with his design which I think is what you want to do. I’m not aware of any existing software that lets you do that though.

You could implement it yourself in python or C++ using robotics oriented rigid body dynamics libraries and solvers. But if you haven’t done this before it will be pretty hard.

This is actually something I want to do at some point too but I’m busy with other projects right now.

1

hugio55 OP t1_j6jhyb3 wrote

Hey LiquidDinosaur - thanks for this info. I have been hearing about open AI quite a bit and thus will dive in deep into what they have to offer. I will say that anything C++ (or C, or A through Z for that matter) will be beyond my breadth, but that's OK. I still enjoy watching it happen from some of the pros on youtube.

1

LiquidDinosaurs69 t1_j6kzkhm wrote

Check out Lenia artificial life simulator on YouTube. Similar concept to evolution, pretty sick. Might scratch your itch

1

Born_Judge6078 t1_j6c55d2 wrote

Evolutionary, reinforcement and swarm optimization algorithms are interesting variations of what you’ve described and they’re not very complex to implement if you have beginner knowledge of vectors and matrixes but the real struggle would be engineering the environment in which the agents of the environment exist in, the environment would describe an agents/entities fitness to survive/solve a problem.

1

Extra-most-best t1_j6c5hpq wrote

If you go the reinforcement route you’d need to use the correct reinforcement policy which can be tricky to know without testing if your not familiar with calculus and testing is easier but still requires pretty niche and deep knowledge of model testing.

1

Extra-most-best t1_j6c5q84 wrote

Also I’d imagine that in the reinforcement learning route each ‘entity’ is a separate model which would have steep computational overhead implications or you just use one model in the environment and it is vanilla reinforcement learning which still isn’t very vanilla btw.

1

hugio55 OP t1_j6jies6 wrote

Thanks for these replies - I appreciate it. I have a lot to dig into. I think the barrier of entry may be higher than I had hoped for.

1