I recently got interested in Theo Jensen's strandbeest, (If you haven't seen them before look them up! Such incredible engineering.) and I want to mess around with the design he has for his strandbeests' legs. However doing straight forward kinematics is waaay over my head for something like this.
Here's what I'm trying to model: https://upload.wikimedia.org/wikipedia/commons/6/61/Strandbeest-Walking-Animation.gif (Can't link directly because I don't have enough reputation :/)
All I really need to know is the path of the 'foot', so something visual isn't necessary.
The final goal is to be able to apply an evolutionary algorithm to it and see if I come up with the same linkage lengths as Theo did, or maybe improve them somehow, so if I there was some software that allowed scripts to be run, that'd be ideal.
Sorry if the question is kind of vague, I'm not all that sure what I'm looking for. Even if there is some maths/engineering topic that would make this easier I'd love to learn.
Thanks! -Oisin.
Well, I searched for Physics Engine, and found a promising result.
Open Dynamics Engine seems to be an open source physics engine that could fit your needs.
The Open Dynamics Engine (ODE) is a free, industrial quality library for simulating articulated rigid body dynamics. Proven applications include simulating ground vehicles, legged creatures, and moving objects in VR environments. It is fast, flexible and robust, and has built-in collision detection.
Source: Wiki Introduction
There site is ode.org, and it looks like you should be able to evaluate it from there. "[S]imulating rigid body dynamics" is what you want, right? From what I understand, it ought to fit the bill. C++ is probably a reasonable language to attempt this in. I presume you have previous programming experience? This is not what I would consider a beginner's project.
When you get to the evolution, search for Genetic Algorithms. They're frequently used for optimization, and could help you out considerably. Another thing to consider is what you're actually optimizing for (lowest wind speed to function, fasted movement, etc).