Inflate 3D mesh into sphere I am after a simple (not necessarily efficient) algorithm to "continuously" transform a closed surface mesh into a sphere. 

It seems that Blender is able to do this quite well: https://docs.blender.org/manual/en/latest/modeling/meshes/editing/transform/to_sphere.html 

However I cannot find a reference, or technical description of the algorithm they use. I tried looking at the code but did not managed to figure out what it does unfortunately.
The core calculation seems to be 

  sub_v3_v3v3(vec, td-&gt;iloc, tc-&gt;center_local);

  radius = normalize_v3(vec);

  tratio = ratio * td-&gt;factor;

  mul_v3_fl(vec, radius * (1.0f - tratio) + t-&gt;val * tratio);

  add_v3_v3v3(td-&gt;loc, tc-&gt;center_local, vec);


Which in C-ish psuedo code looks like

vec = pos - center; //find vector from center to point
radius = length(vec); // get the length of the vector
vec = vec / radius;  //normalize the vector

tratio = ratio * individual_sensitivity; // adjust sensitivity per vertex 

vec = lerp(vec * radius, vec * t-&gt;val, tratio); //linearly interpolate between the original and where the point would be on the sphere

pos = center + vec; // store result


So the code projects the point to the sphere and linearly interpolates the point between the original location and the sphere location.