Skip to main content

Python Version PyPI License codecov Documentation Status Tests

⚽ sphere-n

Generator of Low discrepancy Sequence on S_n

Generate uniformly distributed points on n-dimensional spheres using low-discrepancy sequences. Perfect for Monte Carlo simulations, numerical integration, and computational geometry.

Quick Start

Installation

pip install sphere-n

Basic Usage

from sphere_n import Sphere3, SphereN, CylindN

# Generate points on 3-sphere
sgen = Sphere3([2, 3, 5])
sgen.reseed(42)
point = sgen.pop()
print(point)  # [0.291, 0.897, -0.333, 6.12e-17]

# Generate points on n-sphere (4D)
nsgen = SphereN([2, 3, 5, 7])
nsgen.reseed(42)
point = nsgen.pop()
print(point)  # 5-dimensional vector

# Batch generation (more efficient)
points = sgen.pop_batch(100)  # Generate 100 points at once

Use Cases

# Monte Carlo integration
import numpy as np
from sphere_n import SphereN

sgen = SphereN([2, 3, 5, 7])
points = np.array(sgen.pop_batch(10000))
values = [f(p) for p in points]
integral = np.mean(values)

# Compare with random sampling
random_points = np.random.randn(10000, 5)
random_points /= np.linalg.norm(random_points, axis=1)[:, None]
random_integral = np.mean([f(p) for p in random_points])

# LDS typically converges 2-3x faster

This library implements a generator for the generation of low-discrepancy sequences on n-dimensional spheres. Low-discrepancy sequences are utilized for the generation of points that are distributed uniformly across a given space. This technique is of significant value in a number of fields, including computer graphics, numerical integration, and Monte Carlo simulations.

The principal objective of this library is to facilitate the generation of points on the surface of spheres of varying dimensions, including three-dimensional and higher-dimensional spheres. The input required is the dimension of the sphere (n) and a set of base numbers to be used for the underlying sequence generation. The output is a series of vectors, with each vector representing a point on the surface of the n-dimensional sphere.

The library achieves this through a combination of mathematical calculations and recursive structures. The library utilizes a number of fundamental components, including:

  1. The VdCorput sequence generator produces a sequence of numbers that are evenly distributed between 0 and 1.
  2. Subsequently, the aforementioned numerical data is mapped onto the surface of a sphere through the use of interpolation functions.
  3. The SphereGen module represents an abstract base class that defines the common interface for all sphere generators.
  4. The recursive structures, namely Sphere3 and NSphere, facilitate the construction of higher-dimensional spheres from their lower-dimensional counterparts.

The primary logic flow begins with the construction of a SphereN object, which utilizes either a Sphere3 (for 3D) or a recursive process to generate lower-dimensional spheres for higher dimensions. In the generation of points, the VdCorput sequence is employed to obtain a base number, which is then subjected to a series of transformations involving sine, cosine, and interpolation in order to map it onto the surface of the sphere.

A noteworthy aspect of the library is its incorporation of caching (through the @cache decorator) to optimize performance by storing and reusing calculated values. Moreover, the library provides traits and structures that facilitate the adaptable deployment of the sphere generators. The SphereGen abstract base class serves to define a common interface for a variety of sphere generators, whereas the NSphere and SphereN structures are responsible for implementing the actual generation logic.

In conclusion, this library provides a sophisticated yet flexible method for generating evenly distributed points on high-dimensional spheres, which can be advantageous in numerous scientific and computational applications.

Dependencies

👀 See also

👉 Note

This project has been set up using PyScaffold 3.2.1. For details and usage information on PyScaffold see https://pyscaffold.org/.

Metadata

Release files for sphere-n 0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sphere-n 0.7
File Size Uploaded
sphere_n-0.7.tar.gz 7.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for sphere-n 0.7
File Interpreter ABI Platform
sphere_n-0.7-py3-none-any.whl Python 3 none any Details

Total release size: 7.9 MB

Release files / sphere_n-0.7.tar.gz

Download URL sphere_n-0.7.tar.gz
Size 7.9 MB
Tags Source
SHA-256 checksum
How to use checksums
9fa6ddeed23db3e19f8a22af166061fad4cb966acd7b1b0e23ddbf23f019e43e
BLAKE2b-256 checksum
How to use checksums
110a20e7a20ffe1a8e15480df5a3dd4852cc7913d830510943ae878dd99e2482
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / sphere_n-0.7-py3-none-any.whl

Download URL sphere_n-0.7-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52aa709696b31f754466066966ef4cf19414f3e1186d454c3d1748902f4f803d
BLAKE2b-256 checksum
How to use checksums
d225e3d44ae61e0c59c594d5924652fb3a966139d88d43e22b2e594e3a64eef7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7 This release

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page