I am using a 3D Voronoi library called MIConvexHull, which calculates a 3D Voronoi diagram for a series of points in 3D space. However, it does not provide high-level information about the structure of the Voronoi diagram; the reported edges are simply a list of coordinate pairs which then have to have the circumcentre calculated.
Now the library provides an implementation of the circumcentre calculation for a series of 2D points. As you can see here, the coordinate pairs for the start (orange) and end (green) are shown:

You can visually see that if you take the vertexes listed in each of the edges and you make a circle such that the circumference of that circle touches all of the edges, the centre is where the edge starts.
The problem that I have is that my points are 3D and thus it won’t be the centre of a circle that’s returned, but the centre of a sphere. Unfortunately, advanced mathematics is not something that my head can really handle that well, so I have no idea how to approach this problem.
How, given 4 points in 3D space, can I get the centre of a sphere such that all of the points lie on the surface of the sphere?
EDIT: In 3D, there will be 4 points provided, not 3.
Here’s a Javascript implementation:
http://www.convertalot.com/sphere_solver.html
And some mathematical explanations:
http://steve.hollasch.net/cgindex/geometry/sphere4pts.html