So I’ve had a bit of time to work on a prototype for this stuff. I’ve been using this paper and following it closely. Big props to Michał Joachimczak.
This is as far as I’ve got. Code in the prototypes repo.
The algorithm is basically make a Gabriel diagram of the points (which is a subset of a Delaunay triangulation) which I have done. You can place the points (cells) wherever you like and the algorithm will connect them and compute which cells are exterior (blue) or interior (red). It can also compute the interior chambers of the creature (which are pressurised to give something to push off) and compute their volume. The code is pretty terrible even by my standards, but it does work.
However I’m a bit stuck on the physics of it. The paper says they use bullet and I think it might be easier to use an actual physics engine rather than have me try to implement one. If anyone is interested in working on it with me that would be great.
In general I’m thinking (based on the discussions we’ve had so far) the overall process could be something like this.
First you play the multicellular and you get a summoning agent (which causes some other members of your species to flock around with you).
Second you get a bonding agent which causes some of these cells to snap together (maybe 3?)
Third you then play as a multicellular organism but which is still mostly pushed around by flagella and cilia, you can set some jiggling motion up but it won’t help you so much.
Fourth, over time you add more and more cells to the network and their motion becomes more important for your locomotion, the flagella and cillia start to become ineffective.
Fifth you can start to specialise the cells. If you want to make a connection between two cells more rigid than a certain threshold you have to start giving them bone like adaptations. If you want to make the pulsation a cell does more powerful than a certain (low) threshold you have to start giving it muscle like adaptations. Moreover you can adapt other cells for other functions (digestion, reproduction etc but that is rather a separate issue).
Sixth you start to use tissues rather than individual cells and at some point the view goes 3d and you’re in a different editor.
There’s quite a deep question about how ai softbody creatures evolve. Are we going to actually evolve them? (I.e. something along the lines of make 5 adaptations of each creature and then test them and then keep the best one?) Or is there some shortcut to work out what shapes would be good?
All input welcome.