Compute New Surface from Old Surface?

I've spent about a week face-rolling my keyboard over this one, so it's time to ask for some fresh ideas.

This is the problem to solve: Compute the surface indicated with the blue curve.

alt text

The overlapping blue circles (spheres) are an aggregate GameObject. I want to recompute a new surface for this gameobject as given by a real (or theoretical) rolling sphere of a fixed size sampling say new mesh vertices.

Thus far, I have this:

alt text

I'm getting something like what I want by spinning the big game object and orbiting the probe at a fixed distance. This works somewhat by letting Unity3D do some physics, but it depends on the fact I'm keeping the orbit at a fixed value similar to the radius of the big object. This doesn't really work as the probe will "bob" in and out of the original surface (green) of the game object.

Ideally, I'd like to be able to do this for an arbitrary shape.

If anyone has done something similar I'd love hearing about it. Or if anyone has any insights to improve what I'm doing or another avenue to look at entirely, I'd much appreciate. (It is kind of a fun problem)

I don't know if this is at all helpful, but if you take all of the spheres that make up the original shape and expand them by the specified radius, the surface of the resulting shape should be the (exact) surface you're looking for.

Whether this is useful depends, I suppose, on what you're doing with this surface. (For what it's worth, moving a sphere over the original surface should be equivalent to moving a point over the expanded surface.)

If that's of no help (and if you still need help with this), perhaps you could provide some additional contextual information. (E.g. in a new post or as an edit to this one. If you edit this post, perhaps you could also add a comment to this answer indicating that the original post has been edited.)