See this page for introduction to this approach

#### Modeling Motion

You could offset or move the object with the following type of method:

Boolean isInside(float x, float y, float z) {return shapeToBeMoved.isInside(x+xOffset, y+yOffset, z+zOffset);}#### Modeling Forces

We could deform a shape by changing the parameters of an equation, for example we might model a muscle, which changes shape depending on a parameter 'contraction' as follows:

boolean isInside(float x, float y, float z) {return ((r*r < (x+contraction)*(x+contraction)+(y+contraction)*(y+contraction)+z*z);}

#### Collision detection

Then collisions could be detected by cycling though all values of x, y and z. Then checking if for a given set of x, y and z, if more than one objects isInside method returns true then the objects are trying to occupy the same space.

The scene graph could be generated, every frame, by feeding these equations into a mesher.

At first sight this may seem horribly inefficient, with lots of very slow bits of code like this:

for (x=-100000; x<100000; x=x+0.001) { for (y=-100000; y<100000; y=y+0.001) { for (z=-100000; z<100000; z=z+0.001) { ... } } }

but I'm not sure its as bad as that, I think there could be tricks to make it more efficient, for example areas of space nearer the camera could be scanned at closer intervals than more remote parts of space.

#### Collision response

This might be done in the meshing method, for instance individual verticies could attract each other (as in metaballs) or they could repel each other (Relaxation Methods)