Author Topic: Bots as soft bodies  (Read 4312 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bots as soft bodies
« on: September 11, 2007, 07:48:38 AM »
I've been thinking some more about the way actual multicellular organisms are constructed.  This lead me to realize that the physics engine needs to treat bots as something like a bean bag.  Highly deformable, without too much bounce.  That way bots can pack together to form a lattice, or stretch and shrink to produce movement.

A little research led me to look at this.  (Zombies and gory 1st person.

It's not quite what I was originally thinking, but it does look pretty nice, and it allows for fracturing.  Bots could literally take a bite out of another bot, and it wouldn't be too hard to have nrg shots be actual pieces of flesh floating around the sim.

I'm not sure yet if it addresses my original concern for multibot concerns, so I still need to work through how multibots would work with something like this.  And it looks like their exact implementation is patented; I don't know what sort of complications this poses.

Either way, looking for people's thoughts.  Brainstorm away

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Bots as soft bodies
« Reply #1 on: September 11, 2007, 01:17:53 PM »
I agree that if we are to continue in the direction of evolving artificial organisms whose morphs reside in a simualted artificial reality based largely on real world physics, then the path towards richer environments, more complex ecosystems and richer interactions between organisms necessitates simualting richer atomic building blocks I.e. pieces of bots instead of bots as a whole, pieces of the shapes and other elements of the environement and so on.

The problem with this approach of course is the computing performance necessary to do this at scale.  Bots must be able to see and interact with the pieces and the pieces themselves interact with each other and with the environment.   That means collision detection logic and more collision detection logic.  Missing pieces should have an impact on the bot (and other things in the environment made of pieces) w.r.t shape, center of mass, manuverability, etc. which means non-shereical/non-circular logic for drag, friction, collision detection, and so on.   The number of cycles to do this kind of thing grows at least exponetitally as we add interaction richness.   It is the ultimate limiter of our simulated physics approach.  I get depressed when I think about it too much.

Don't get me wrong.  I'm all over the current paradym, having spent many hundreds of hours writing code in support of the current model.  I will likely continue to do so for awhile.  At a high level, what you propose is in keeping with the direction I see the current paradym going, so I support it in general and the details to me are just that, to be worked out over time as design and code comes on line.   But at some point I personally will likely bail on the simulated physics approach and attempt an approach with no simulated physical environment in an attempt to work around the collision detection scalability delimma.
« Last Edit: September 11, 2007, 01:20:12 PM by EricL »
Many beers....

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Bots as soft bodies
« Reply #2 on: September 11, 2007, 02:03:36 PM »
Well, I gues it looks nice if the bots could shrink on the one part and grow on the other for example movement and it then has an own body that could change a little instead of just bigger smaller.

But the problem I see, is the speed, I am certain it will cost speed. A 'bean bag' organism like you call it, will cost more speed then a circle like it is now.

The fracturing bit, this will cost speed too. Like I see it a overexited bot can wrap an other bot in thousend pieces, if on every piece the phycics are working it will cost an enourmous lot of CPU if that happens.(I am honest, I don't now exactly how the physics work in darwinbots but it will cost CPU, I am pretty sure about that)

Well so the speed is my trouble, I don't want to have a incredeble slow sim, if you can make sure it doesn't cost too much speed it. It will be fine by me.

That is my opinion.
Oh my god, who the hell cares.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bots as soft bodies
« Reply #3 on: September 12, 2007, 01:19:01 AM »
Ignoring CPU time for a moment, what level of abstraction perfectly balances understandability and realism?  If you go too real, if we could somehow simulate a real life cell, with protein folding and everything, it's probably too much for most lay people.  You'd need a degree in biology too interact with it meaningfully.  If you go too abstract, you end up with Conway's game of life.    Generally just too limiting to interact with meaningfully.

I'm trying to discover that sweetspot between the two.  The place where humans can interact with evolution on a maximally meaningful way.  I've constructed a couple of test cases in my head for what I want the program to be capable of.  I want multibots that can swim like a fish or like a squid smoothly.  I want bots to be able to form together like sheets of epethilial cells.  I want things like volvox to be possible.  I want bots that can dig into shapes and form burrows.  I want to create a situation like the African plain, with lions taking down gazelles, and some gazelles being able to escape from the lion.

So far what I'm thinking is something like a uniform, undifferentiated blob.  Something that can ooze through cracks, or surround food particles to absorb them.  Maybe something like Gish.  I'm still working out the math for something like this.  The blobbot could stretch itself in a certain direction or shrink to form something like a muscle.

Maybe bots could excrete something like bone (or an extracellular matrix, if you prefer) that they attach themselves to.  Then you'd have the basis for a muscle/bone interaction.

Another option is to explore something like fl0w.  Maybe more differentialized, with different parts on an animal corresponding to different functions.

I'm really open to whatever people want to explore, especially with regards to physics.  I'm learning more everyday about physical simulation, and there's not a whole lot that's really out of reach.

And to end on a more sober note, I'm aware of CPU hits, but truthfully you'd be surprised what is computationally expensive and what isn't.  Making a bot's geometry arbitrarily complex doesn't really add that much to the computational cost because most bots aren't even close to most other bots.  The difference between a complex to complex collision and a circle to circle collision is actually rather small, because you can usually simplify a complex mesh down to a far more managable bounding volume (a circle for instance).

Even the most ambitious ideas I've had haven't had a runtime performance worse than O(n^3), which is bad but isn't that bad when you consider that we normally only run in the 100 to 1000 bot range anyway.  The method presented here is actually pretty fast.  Check out the video on the site to see.  Most ideas I've considered are in the O(nlogn) range, which is about as good as anything like this is likely to be.

I'll scale back later as needed to get the program working at an appropriate cycle/sec mark.  I'm interested right now in what people really wish the program was or allowed them to do.

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Bots as soft bodies
« Reply #4 on: March 19, 2008, 12:52:48 AM »
Would squishy bots require a different kind of bonding? I doubt they could be held together realistically by a bunch of lines; maybe the slime could be used as a kind of glue to stick the bots together.
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bots as soft bodies
« Reply #5 on: March 19, 2008, 02:48:24 AM »
Squishy bots would require surface adhesive.  Basically they'd form a shape and the two bots' surfaces would lock together like velcro.  I just have no idea how to simulate it

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Bots as soft bodies
« Reply #6 on: March 21, 2008, 10:37:14 PM »
Would the changing of shape be involuntary? I'm having trouble imagining what sort of commands would be used to change the shape of an amoeba in 3D-space.
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bots as soft bodies
« Reply #7 on: March 21, 2008, 11:21:01 PM »
Controlling it was another hurdle, yes.  I was thinking of having various "strands" that the bot could pull on, and force its shape to conform to different shapes that way.  Like pull the strand that goes from your head to your butt, and now your really fat and not very long.  That sort of thing.  Very fuzzy.

But I more or less have abandoned the idea of squishy bots because I just don't think I can simulate it in sufficient numbers for an ecological simulation.