Sign in to follow this  

Rig controlled by simulated muscle

Recommended Posts

Comming from web- and tools programming, I know virtually nothing about 3D so I need a bit of help figuring out a list of topics I need to research in order to reach my goal.


My goal is to use sub symbolic AI (like neural nets and the like, which I do know something about) to control a rigged model through simulated muscle conrol. That is my brain would have rather low level outputs for applying a certain level of force on certain muscles and/or muscle groups. These must then be tied to my rig so that the muscle force will counter gravity and other opposed forces from the environment as it would affect the model as it's moving about.


As I understand it I must make a rigid model, then rig it, and from there on I gather usually the model is simply animated using motion capture, key framing or similar. And that's where I need to take a different approach.



So firstly, what tools and frameworks would you suggest to do the first and second parts (which don't need to be particularly good looking, though it never hurts); modelling and rigging? (I have the most experience with C#, but will pick up other languages if needed.)


Secondly, where do I start looking to solve the muscle-simulation on physics engine type problem?

Share this post

Link to post
Share on other sites
That sounds like quite the project. If you have no experience with 3D you are going to spend some time to learn that before you will be able to pull off something like that.

What experience do you have with neural nets? If you have little or no experience. Do yourself a favor and start simpler. It is easy to underestimate the work involved to make something if you new to it.

Once you understand the approach for having procedural animations, try to do what you described in 2D first. Use an existing physics engine like Box2D. As for producing the content, you may be able to use blender to do what you want. It is meant for 3D but I have used it to model 2D as well, you simply ignore the z axis. If you want a tool dedicated to 2D animation look into Spine. Although you will have to come up with a way to connect the muscles.

From there try to simulate something simpler than walking. Start with making a ragdoll, then when adding muscles start with a simple tentacle and get it to move. Then move onto a character that would drag itself across the floor, then to quadrupeds, then bipeds. Once you get 2D working for you then repeat the process in 3D. This project seems pretty large in scope so be ready to work at it for a long time, likely years, before seeing the results you described above.

Share this post

Link to post
Share on other sites

Thanks for the answers. Yes, it is ambitious. But what non-ambitious project is any fun? :)


Recommending Blender makes me happy as I was dabbling in that a few years ago. Got as far as getting my lit, key-framed scene to render. But did not start looking into rigging, so I guess that's my first research topic as well as refreshing my blender skills then. Good. (Guess that means I wasn't entirely truthfull about the "virtually nothing about 3D part, though compared to the gurus I guess it still counts as truth :).)


As I am able to make static 3D models, should I skip the 2D step, or would you still recommend I do that first? If so, why? If not, what physics engine should I be looking at?


I like the idea of making creatures with simple movement first and making them more complex as the simpler stuff works. Experience in other fields has taught me that this is a good practice to both avoiding mistakes, getting frustrated and speeds up learning. Good advice.


So, to sum up, the path I should take is to rig models and animate them them procedurally, and only once I get that working I should start thinking of adding muscle-force as a replacement for the procedural animations?


The only pitfall I see with this is it will kind of push me in the direction of first knowing what force should be applied and then using back-propagation to teach the creature the right amount of force output. That's not really what I want, I want non-standard ai methods for the brain to learn by experience how much force it needs to apply. And getting that to work will be a major achievement which will probably not happen, but that's the idea.. :) After all, it's sooo much easier to understand a problem or a system when that system has a visual representation.


When it comes to my knowledge of AI, that was what I was doing for my unfinished master degree. That was a few years ago, meaning my programming skills in general are way better now than they used to be but my AI is a bit rusty, and probably a bit outdated tbh, but I was pretty decent at it.


As for the link by PeterStock, I can't see from that site what the block-creatures means of movement was, but it's quite possible that they had only procedural movement. It seems to me that the point of that project was the evolution of creatures, which is also cool sub symbolic ai, but not what I'm going for. Though certainly once I have a brain that can teach gait, evolving new bodies for that brain would be hugely interresting. But that'd have to come later.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this