hypersphere, a Python code which carries out various operations for an M-dimensional hypersphere, including converting between Cartesian and spherical coordinates, stereographic projection, sampling the surface of the sphere, and computing the surface area and volume.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


hypersphere is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

geometry, a Python code which performs geometric calculations in 2, 3 and M dimensional space.

hypersphere_distance, a Python code which computes the expected value of the distance between a pair of points randomly selected on the unit hypersphere in M dimensions.

hypersphere_integrals, a Python code which returns the exact value of the integral of any monomial over the surface of the unit hypersphere in M dimensions.

hypersphere_monte_carlo, a Python code which applies a Monte Carlo method to estimate the integral of a function on the surface of the unit sphere in M dimensions;

random_data, a Python code which uses a random number generator (RNG) to sample points corresponding to various probability density functions (PDF), spatial dimensions, and geometries, including the annulus, circle, ellipse, ellipsoid, hypercube, hypersphere, simplex, tetrahedron and triangle.


    George Marsaglia,
    Choosing a point from the surface of a sphere,
    Annals of Mathematical Statistics,
    Volume 43, Number 2, April 1972, pages 645-646.

Source Code:

Last revised on 01 May 2022.