Skip to main content

tetra3rs

Crates.io PyPI docs.rs Docs License Status

A fast, robust lost-in-space star plate solver written in Rust.

Given a set of star centroids extracted from a camera image, tetra3rs identifies the stars against a catalog and returns the camera's pointing direction as a quaternion — no prior attitude estimate required. The goal is to make this fast and robust enough for use in embedded systems such as star trackers on satellites.

Documentation: For tutorials, concept guides, and Python API reference, see the tetra3rs documentation. For Rust API docs, see docs.rs.

[!IMPORTANT] Status: Alpha — The core solver is based on well-vetted algorithms and has been validated against both real low-SNR images taken with a camera in my backyard and high-star-density images from more-complex telescopes (plus synthetic SkyView and NASA TESS multi-sector data). The API is not yet stable and may change between releases. See CHANGELOG.md for breaking changes per release.

Features

  • Lost-in-space solving — determines attitude from star patterns with no initial guess
  • Tracking mode — when an attitude hint is available (e.g. the previous frame's solution), skip the 4-star pattern-hash phase and match centroids directly against catalog stars near the hinted boresight. Succeeds with as few as 3 stars, robust to sparse/low-SNR fields, with automatic fallback to lost-in-space if the hint is stale
  • Fast — geometric hashing of 4-star patterns with breadth-first (brightest-first) search
  • Robust — statistical verification via binomial false-positive probability
  • Multiscale — supports a range of field-of-view scales in a single database
  • Proper motion — propagates catalog star positions to any observation epoch
  • Compact binary databases — databases serialize with postcard in a portable, lightweight format with no offset-size limit, so wide-FOV-range multiscale databases of any size load cleanly
  • Centroid extraction — detect stars from in-memory pixel data with local background subtraction, connected-component labeling, and quadratic sub-pixel peak refinement. Accepts an already-decoded image::DynamicImage or a raw &[f32] pixel buffer (requires the image feature)
  • Camera model — unified intrinsics struct (focal length, optical center, parity, distortion) used throughout the pipeline
  • Distortion calibration — fit either a SIP polynomial or a standard camera-intrinsics model (free optical center, focal scale, and full Brown-Conrady k1, k2, k3, p1, p2 — the same parameter set as OpenCV's calibrateCamera) from one or more solved images via calibrate_camera, with alternating per-image WCS refinement and global sigma-clipped LS fit. Handles mosaic cameras (e.g. TESS) where the optical axis sits far off the detector
  • WCS output — solve results include FITS-standard WCS fields (CD matrix, CRVAL) and pixel↔sky coordinate conversion methods
  • Stellar aberration — optional correction for the ~20" apparent shift in star positions caused by the observer's barycentric velocity, with a built-in convenience function for Earth's barycentric velocity

Installation

Rust

The crate is published on crates.io as tetra3:

cargo add tetra3

Python

Binary wheels are available on PyPI for Linux (x86_64, ARM64), macOS (ARM64), and Windows (x86_64):

pip install tetra3rs

To build from source (requires a Rust toolchain):

pip install .

[!NOTE] All Python objects (SolverDatabase, CameraModel, SolveResult, SolveFailure, CalibrateResult, ExtractionResult, Centroid, RadialDistortion, PolynomialDistortion) support pickle serialization via postcard.

Quick start

Star catalog

tetra3rs uses a merged Gaia DR3 + Hipparcos catalog. The merged catalog uses Gaia for most stars and fills in the brightest stars (G < 4) from Hipparcos where Gaia saturates.

Python: The catalog is bundled in the gaia-catalog package (installed automatically with tetra3rs). No manual download needed — just call generate_from_gaia() with no arguments.

Rust: Download the pre-built binary catalog (G < 10, ~17 MB):

mkdir -p data
curl -o data/gaia_merged.bin "https://storage.googleapis.com/tetra3rs-testvecs/gaia_merged.bin"

Or generate your own with a custom magnitude limit. Two scripts live in scripts/:

  • download_gaia_catalog.py — ESA Gaia Archive TAP server. Canonical Gaia source, but the server enforces a hard 3,000,000-row output limit per async job for anonymous users, so bulk queries top out at G ≈ 11.5.
  • download_gaia_flatiron.py — Flatiron Institute's flathub service. Serves the full Gaia DR3 catalog without the faint-end cap; use this if you need G > 11.5. flathub is not on PyPI — install it from the upstream repo.

Both produce byte-compatible output and share the Hipparcos bright-star merge. See the Star Catalog docs page for setup, CLI flags, and the on-disk format.

Example

use tetra3::{GenerateDatabaseConfig, SolverDatabase, SolveConfig, Centroid};

// Generate a database from the Gaia catalog
let config = GenerateDatabaseConfig {
    max_fov_deg: 20.0,
    epoch_proper_motion_year: Some(2025.0),
    ..Default::default()
};
let db = SolverDatabase::generate_from_gaia("data/gaia_merged.bin", &config)?;

// Save the database to disk for fast loading later
db.save_to_file("data/my_database.bin")?;

// ... or load a previously saved database
let db = SolverDatabase::load_from_file("data/my_database.bin")?;

// Solve from image centroids (pixel coordinates, origin at image center)
let centroids = vec![
    Centroid { x: 100.0, y: 200.0, mass: Some(50.0), cov: None },
    Centroid { x: -50.0, y: -10.0, mass: Some(45.0), cov: None },
    // ...
];

let solve_config = SolveConfig {
    fov_max_error_rad: Some((2.0_f32).to_radians()),
    // 15° horizontal FOV estimate, 1024×1024 image
    ..SolveConfig::new((15.0_f32).to_radians(), 1024, 1024)
};

// The solve returns Result<Solution, SolveFailure>; a Solution's
// fields are all guaranteed present.
if let Ok(solution) = db.solve_from_centroids(&centroids, &solve_config) {
    println!("Attitude: {}", solution.qicrs2cam);
    println!("Matched {} stars in {:.1} ms",
        solution.num_matches, solution.solve_time_ms);
}

Algorithm overview

  1. Pattern generation — select combinations of 4 bright centroids; compute 6 pairwise angular separations and normalize into 5 edge ratios (a geometric invariant)
  2. Hash lookup — quantize the edge ratios into a key and probe a precomputed hash table for matching catalog patterns
  3. Attitude estimation — solve Wahba's problem via SVD to find the rotation from catalog (ICRS) to camera frame
  4. Verification — project nearby catalog stars into the camera frame, count matches, and accept only if the false-positive probability (binomial CDF) is below threshold
  5. Refinement — re-estimate the rotation using all matched star pairs via iterative SVD passes
  6. WCS fit — constrained 3-DOF tangent-plane refinement (rotation angle θ + CRVAL offset) with sigma-clipping, producing FITS-standard WCS output (CD matrix, CRVAL)

Parity flip detection

Some imaging systems produce mirror-reflected images (e.g. FITS files with CDELT1 < 0, or optics with an odd number of reflections). In these cases the initial rotation estimate yields a reflection (determinant < 0) rather than a proper rotation. The solver detects this by checking the determinant of the rotation matrix; when negative, it negates the x-coordinates of all centroid vectors and recomputes the rotation.

The SolveResult includes a parity_flip flag (bool / True/False in Python) indicating whether this correction was applied. This is critical for pixel↔sky coordinate conversions: when parity_flip is True, the mapping between pixel x-coordinates and camera-frame x must include a sign flip.

Tracking mode

When you already have a rough attitude estimate — typically the previous frame's solution in a video-rate star tracker, a propagated gyro estimate, or a coarse attitude sensor — you can skip the lost-in-space pattern-hash phase entirely by passing an attitude_hint:

Rust:

use tetra3::SolveConfig;

// Reuse the camera model from the previous solve so the refined focal length carries over.
let config = SolveConfig {
    attitude_hint: Some(prev_solution.qicrs2cam),
    hint_uncertainty_rad: 1.0_f32.to_radians(),
    ..SolveConfig::with_camera_model(prev_solution.camera_model.clone())
};
let result = db.solve_from_centroids(&centroids, &config);

Python:

# `attitude_hint` accepts either a 4-element [w, x, y, z] quaternion
# (Hamilton, scalar-first) or a 3×3 rotation matrix.
result = db.solve_from_centroids(
    centroids,
    fov_estimate_deg=15.0,
    image_shape=(1024, 1024),
    camera_model=prev_result.camera_model,
    attitude_hint=prev_result.quaternion,  # or .rotation_matrix_icrs_to_camera
    hint_uncertainty_deg=1.0,
)

The solver projects catalog stars near the hinted boresight, nearest-neighbor matches them to centroids, and runs the same Wahba SVD + verification + WCS refine path as lost-in-space. Tracking succeeds with as few as 3 matched stars (lost-in-space needs 4) and is robust to pattern-hash failures from sparse / low-SNR fields. On failure it falls back to lost-in-space automatically — set strict_hint=True (strict_hint: true in Rust) to opt out of the fallback.

See docs/concepts/tracking.md for details on hint uncertainty, quaternion convention, and limitations.

Stellar aberration correction

Stellar aberration is the apparent displacement of star positions caused by the finite speed of light combined with the observer's velocity — analogous to how rain appears to fall at an angle when you're moving. For Earth-based observers, this shifts apparent star positions by up to ~20" (v/c ≈ 10⁻⁴ rad). Without correction, the solved attitude is biased by up to ~20".

To correct for aberration, pass the observer's barycentric velocity (ICRS, km/s) via SolveConfig::observer_velocity_km_s. The solver applies a first-order correction (s' = s + β − s(s·β)) to all catalog star vectors before matching and refinement, producing an unbiased attitude.

The convenience function earth_barycentric_velocity() provides an approximate Earth velocity using a circular-orbit model (~0.5 km/s accuracy, sufficient for the ~20" effect):

[!NOTE] Enabling aberration correction shifts the entire solved pointing by up to ~20", not just the within-field residuals. This is the physically correct result — without it, the reported attitude is biased by the observer's velocity. Most plate solvers (e.g. astrometry.net) do not account for aberration, so comparing results may show a systematic offset of up to ~20" when this correction is enabled.

[!NOTE] For a near-Earth observer, Earth's orbital motion around the Sun (~30 km/s) dominates stellar aberration, producing ~20″ shifts. Earth's surface-rotation contribution (~0.46 km/s at the equator) is only ~0.3″ and can usually be neglected. LEO orbital velocity (~7.5 km/s) is ~25% of Earth's orbital velocity and produces ~5″ additional direction error — not negligible for star trackers on LEO spacecraft. Pass the observer's full barycentric velocity (Earth-around-Sun + spacecraft-around-Earth + ground-based surface rotation, as appropriate) to get an unbiased attitude.

Rust:

use tetra3::{earth_barycentric_velocity, SolveConfig};

// days since J2000.0 (2000 Jan 1 12:00 TT)
let v = earth_barycentric_velocity(9321.0);

let config = SolveConfig {
    observer_velocity_km_s: Some(v),
    ..SolveConfig::new((10.0_f32).to_radians(), 1024, 1024)
};

Python:

from datetime import datetime
import tetra3rs

v = tetra3rs.earth_barycentric_velocity(datetime(2025, 7, 10))
result = db.solve_from_centroids(
    centroids,
    fov_estimate_deg=10.0,
    image_shape=img.shape,
    observer_velocity_km_s=v,
)

Catalog support

Catalog Format Notes
Gaia DR3 + Hipparcos .bin (binary, magic GDR3) Default; merged catalog with proper motion. Bundled in gaia-catalog PyPI package
Hipparcos only hip2.dat Legacy; requires hipparcos feature flag

Tests

Unit tests run with the default feature set:

cargo test

Integration tests require the image feature and test data files. Test data is automatically downloaded from Google Cloud Storage on first run and cached in data/:

cargo test --features image

SkyView integration test

Solves 10 synthetic star field images (10° FOV) generated from NASA's SkyView virtual observatory, which composites archival survey data into FITS images at any sky position. These use simple CDELT WCS (orthogonal, uniform pixel scale). Each image is solved and the resulting RA/Dec/Roll is compared against the FITS header WCS.

cargo test --test skyview_solve_test --features image -- --nocapture

TESS integration test

Solves Full Frame Images (~12° FOV) from NASA's TESS (Transiting Exoplanet Survey Satellite), a space telescope that images large swaths of sky to detect exoplanets via stellar transits. TESS images have significant optical distortion and use CD-matrix WCS with SIP polynomial corrections. The science region is trimmed from the raw 2136×2078 frame to 2048×2048 before centroid extraction.

The test suite includes:

  • 3-image basic solve — solves each image and verifies the boresight is within 30' of the FITS WCS solution.
  • 3-image distortion fit — fits a 4th-order polynomial distortion model from each solved image, re-solves, and verifies the center pixel RA/Dec is within 1' of the FITS WCS solution.
  • 10-image multi-image calibration — solves 10 images from the same CCD (Camera 1, CCD 1) across different sectors with 4 tiered solve+calibrate passes (progressively tighter match radius and higher polynomial order). After calibration, all 10 images achieve RMSE < 9" and center pixel agreement with FITS WCS < 3".
cargo test --test tess_solve_test --features image -- --nocapture

Credits

This project is based upon the tetra3 / cedar-solve algorithms.

  • cedar-solve — Steven Rosenthal's Python plate solver, which this implementation closely follows for the star quad generation and matching. (excellent work!)
  • tetra3 — the original Python implementation by Gustav Pettersson at ESA
  • Paper: G. Pettersson, "Tetra3: a fast and robust star identification algorithm," ESA GNC Conference, 2023

License

MIT License. See LICENSE for details.

This project is a derivative of tetra3 and cedar-solve, both licensed under Apache 2.0 (which in turn derive from Tetra by brownj4, MIT licensed). The upstream license notices are included in the LICENSE file.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tetra3rs-0.11.0.tar.gz (210.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

tetra3rs-0.11.0-cp314-cp314-win_amd64.whl (500.9 kB view details)

Uploaded CPython 3.14Windows x86-64

tetra3rs-0.11.0-cp314-cp314-manylinux_2_28_x86_64.whl (615.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

tetra3rs-0.11.0-cp314-cp314-manylinux_2_28_aarch64.whl (592.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

tetra3rs-0.11.0-cp314-cp314-macosx_11_0_arm64.whl (549.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tetra3rs-0.11.0-cp313-cp313-win_amd64.whl (487.0 kB view details)

Uploaded CPython 3.13Windows x86-64

tetra3rs-0.11.0-cp313-cp313-manylinux_2_28_x86_64.whl (615.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

tetra3rs-0.11.0-cp313-cp313-manylinux_2_28_aarch64.whl (593.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

tetra3rs-0.11.0-cp313-cp313-macosx_11_0_arm64.whl (550.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tetra3rs-0.11.0-cp312-cp312-win_amd64.whl (486.9 kB view details)

Uploaded CPython 3.12Windows x86-64

tetra3rs-0.11.0-cp312-cp312-manylinux_2_28_x86_64.whl (615.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

tetra3rs-0.11.0-cp312-cp312-manylinux_2_28_aarch64.whl (593.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

tetra3rs-0.11.0-cp312-cp312-macosx_11_0_arm64.whl (550.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tetra3rs-0.11.0-cp311-cp311-win_amd64.whl (490.8 kB view details)

Uploaded CPython 3.11Windows x86-64

tetra3rs-0.11.0-cp311-cp311-manylinux_2_28_x86_64.whl (617.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

tetra3rs-0.11.0-cp311-cp311-manylinux_2_28_aarch64.whl (596.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

tetra3rs-0.11.0-cp311-cp311-macosx_11_0_arm64.whl (555.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tetra3rs-0.11.0-cp310-cp310-win_amd64.whl (491.1 kB view details)

Uploaded CPython 3.10Windows x86-64

tetra3rs-0.11.0-cp310-cp310-manylinux_2_28_x86_64.whl (617.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

tetra3rs-0.11.0-cp310-cp310-manylinux_2_28_aarch64.whl (597.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

tetra3rs-0.11.0-cp310-cp310-macosx_11_0_arm64.whl (555.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file tetra3rs-0.11.0.tar.gz.

File metadata

  • Download URL: tetra3rs-0.11.0.tar.gz
  • Upload date:
  • Size: 210.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for tetra3rs-0.11.0.tar.gz
Algorithm Hash digest
SHA256 515cea7c144dfe504ede9a3cb440ae815175e4ef91c9ac47aaa182271e3bb400
MD5 45651b358a6eb0b20cb6c428a5e9bb97
BLAKE2b-256 23ff88ec6e924bf0e742faa2f24aa3062241f0e4642a0228dc584fdbec06b253

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0.tar.gz:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.11.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 500.9 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for tetra3rs-0.11.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0dd89f98d9446faf63588e160156ee3dfade7e6a9fd861d6c97650672346ad15
MD5 00087e53f3238fbe61b3ba9d707a9e26
BLAKE2b-256 e9e6eb746a90cc0b00d1a9d88b5d3aa32ab334e1d63f6cf990b59bcb3e8c1f9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aa728890a6f569b7e690475183416f03ea7ca3da62516c94302a5214dcada12a
MD5 5fb05a9913bd231d7c54f87479e69a8a
BLAKE2b-256 da372c0082489f2674add6309f55fc1bee83f0afafbff44e0768a6e116e9c2d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c2b86d625ac1145320542de984b20a449254d5be63cfdf7b11b59082b5fc92aa
MD5 574b803642f3a4aa21d0e7194e93b283
BLAKE2b-256 a8ffcc9c042ef740a2528bf0925a6dd1bc7e6e42fd0ef0cf99fb99d8720c502f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp314-cp314-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6e1b6590b7fd9767f7128a1d9a3ad2dd703b65618aad98a7c8a0af3ed4d7e91
MD5 8bcb68d1959bab66501fff5ed12aeb48
BLAKE2b-256 b66577fa881e460f93607f2be7c9e004dff63bde8c3fc9b983fe840c9e823ed4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.11.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 487.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for tetra3rs-0.11.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 951c3fd550f76917ba351a3850db80df453e16d15fcbc4b97ef88a69ac3e60ed
MD5 8e88c1309f7bbec9532951ef3fe2016a
BLAKE2b-256 493512472a0550f62d0b2e241929dc45bb9a90a0ddf34c20e24b5dc8b2efa2f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7b7d67d1805d3c91e11d230875c5b84b315716b29ebdc44beae05d4837bbc57
MD5 00d60319bf471c9fba54a57018612585
BLAKE2b-256 4fe339175fb02e54d6db09ac7b840938a4ffdf123e6f249a29eea94fe388e99b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 37e433d0de7629e5a5f0e9e6e0c571020bb21203e651db3f73a6ecb51d85a426
MD5 6940db7c5f594cb25fac949c9bc2ec76
BLAKE2b-256 4ac4f25f894692f6db114d15c9453501cfa3ab6e218e076c63c06cb53f5b2b74

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db65280fdb03ae5eab93bbadea6ddc2d4af95210e8ccbcafb39a4b6b029e2810
MD5 2b886d3c6363ba3856c431beadbcfc21
BLAKE2b-256 faedeb2db36d9c3d36b15373eb5471830449652ea01916b741b4d7676f4d2e13

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.11.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 486.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for tetra3rs-0.11.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4b8ee3ba8fb095056f8c2762024f6af2aa96cba98c7ac546c81b1f5fa9ba9337
MD5 ae9ad3afc93ae4cdabd2797da5073109
BLAKE2b-256 0f25af329649c4a50a590841d40319e979968b2213c7234fe4f3cabac389155d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5602f9911a40b7a1d33f7081a113cf2fb5e55afafd2c15348810449e26d8ff3
MD5 8bebee4c21c81ddc6bceb65438e85065
BLAKE2b-256 3ef33b4cedbce00c45be96b31550751a8f448ca38722566a8765be36b6290896

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2724a32a5c5cc27a078ee1de35a36d5ab56c5293e88d0ab173d8db9466574d07
MD5 d6483d549b08588a3bf7a62dc90651e4
BLAKE2b-256 a457af9e4731dd8c4ed25dd576257542b309d51b67c128f627af15063255eddf

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb1ad80814e4697e82b3859b6f7e23044b2a4e72ac2e3b35e83e9825f94fc12d
MD5 db1bc50ac10be9044c0a5f351dae6ae7
BLAKE2b-256 bd4bb7ad4955964dfdbc552f61e6fe083ae9f4646ad43243ce19556fab340908

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.11.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 490.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for tetra3rs-0.11.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 877f7de4d26add16bfdc0f9b2f47ba8fc0ded5d285964fc4d91e71689146820b
MD5 8e87d38c696a4f116abe770f76dda14a
BLAKE2b-256 4a6fcef0f71783a1e411e24727b8dbf4131fa50282d1e9c61a41120cc58791a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 079e093fdfe98590b157b00d1c5661ad282d184060f181ecbb71343f3b48708e
MD5 3dbaee64fa2f89e14cdd5c3f8c0593bb
BLAKE2b-256 64250c6ec5fcef74bf383bf497a4118e1371daccb12aeccde319af28afa6da12

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f9aca0c0e0a61fff793170f62d2cabaeebbbb61af267ad0c8a65e2ff41f56deb
MD5 6ac73ef873ab462bc076f0db6b3e67ce
BLAKE2b-256 7f077b69cd5d28b291b09174e7c38c10e65d65f754d80b9ab8c88c7218ebc1c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71a39cf3782d06766e0cc43a3c8e77e72ed796786d2ac0c2fe7658a9fe3770ea
MD5 d9d6ec4e929193dff708eb2f86375664
BLAKE2b-256 e6b24f7e231da2fa2e054543eb1271eb5695b7d2f9132df80bfc9a656cda79ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.11.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 491.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for tetra3rs-0.11.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b11af7420f071bc9b6f6f5258fa1f3ad3f91761d2e0387fb7023972a9eaddf08
MD5 b0ae5d546c66b23a02adf447369f073a
BLAKE2b-256 5febe61ac57698ecfd8b1e11bea7e2c759736f70c910a587e5993daf832036f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e6f96498233d037b956a59cd5484dcffbb2bbb1df209e5f017810fde4194ad1e
MD5 907e9df22ca677f2d029ae737a06ce34
BLAKE2b-256 438fb48c17b86e380763776ad04e018812ca3373b61c5b11ccc6542fd2c2c877

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 abf321252c8a4d860965a77609f56073fb508d653911e09e8d58496300d5aa54
MD5 418ca7a2a94d8526b45a203e515e0221
BLAKE2b-256 f287fdeb8a6f9ce043df8fd5caf8cdb3bb89361d0ff8140472e41d4c6a5d5ee5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tetra3rs-0.11.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.11.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8088c18d0a17b4012b0945c2f7630a79b253ee4e8397a4ba8e21f7d163faa22
MD5 ae0886cc2f5f4e7e0942f821303f8010
BLAKE2b-256 43ee07cd074f022ff2d695349f491a66c82f0e695f0d773a5e2ace56b0d36784

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.11.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on ssmichael1/tetra3rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.13.0

21 files

0.12.0

21 files

This release

0.11.0 This release

21 files

0.10.0

21 files

0.9.0

21 files

0.8.0

21 files

0.7.4

21 files

0.7.3

9 files

0.7.2

21 files

0.7.1

21 files

0.7.0

21 files

0.6.1

21 files

0.6.0

21 files

0.5.1

21 files

0.4.1

21 files

0.4.0

21 files

0.3.2

21 files

0.3.1

21 files

0.3.0

17 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