Skip to content

gem API reference

This reference documents existing public core declarations and retained compatibility imports at merged master 3e714fe949b7a6b7724d5c0da3395ee92483265f (PR #59). It covers the 268-declaration inventory, exposed reference buffers/type aliases and public instance fields. Tables show exact source signatures, including self; omit self when calling a bound method. Alias rows identify actual targets rather than inventing annotated signatures.

Topic Reference
Components, arithmetic, dot/cross, norms, comparison, ownership Vector
Matrix2/3/4 storage, products, division, determinant, transpose, inverse, ctypes Matrix
Rotation, pivot, scale, translation, shear and local homogeneous promotion Transformations
Cameras, perspective/orthographic matrices, project/unproject Projection
Hamilton algebra, rotation, conversions, interpolation, powers/logarithms Quaternion
Evaluation, path builders, adaptive subdivision and tolerance Bezier
Unnormalized associated functions and mutable recurrence scratch Legendre
Real basis, projection, sampling, analytical rotation and radiometry Spherical harmonics
Coefficients, incidence, orientation, normalization and polygon fits Plane
Constructor ownership, stored state, duplication and rigid transforms Ray
Viewport, angle conversions, scalar/raw utilities and ctypes Common utilities
Retained import paths, legacy/private/retired distinctions Compatibility interfaces
Unresolved behavior requiring separate maintainer review Decisions
Declaration/constant coverage, executable examples and evidence Coverage and verification

Start with installation and quick start if new to gem. Import from modules, not the metadata-only gem initializer. Matrix2/3/4 and Vector2/3/4 denote dimensions of Matrix/Vector, not separate classes.

Shared conventions, architecture charter, compatibility policy and root ROADMAP.md remain canonical. Topic pages explain their application, not a second policy. Future modules remain planned rather than importable.

Core algorithms remain pure Python with six and standard-library integration. No optional renderer/native framework is needed for examples. Release preparation checks CPython 3.10–3.14 on Linux x86_64; see the packaging guide for tested versions and limits. Python 2.7 is unsupported.