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.