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 a per-star likelihood ratio with a bounded 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, match them to centroids, and accept only if the likelihood ratio bounds the false-positive probability 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.13.0.tar.gz (237.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.13.0-cp314-cp314-win_amd64.whl (523.9 kB view details)

Uploaded CPython 3.14Windows x86-64

tetra3rs-0.13.0-cp314-cp314-manylinux_2_28_x86_64.whl (639.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

tetra3rs-0.13.0-cp314-cp314-manylinux_2_28_aarch64.whl (615.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

tetra3rs-0.13.0-cp314-cp314-macosx_11_0_arm64.whl (572.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tetra3rs-0.13.0-cp313-cp313-win_amd64.whl (509.4 kB view details)

Uploaded CPython 3.13Windows x86-64

tetra3rs-0.13.0-cp313-cp313-manylinux_2_28_x86_64.whl (639.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

tetra3rs-0.13.0-cp313-cp313-manylinux_2_28_aarch64.whl (615.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

tetra3rs-0.13.0-cp313-cp313-macosx_11_0_arm64.whl (572.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tetra3rs-0.13.0-cp312-cp312-win_amd64.whl (509.5 kB view details)

Uploaded CPython 3.12Windows x86-64

tetra3rs-0.13.0-cp312-cp312-manylinux_2_28_x86_64.whl (639.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

tetra3rs-0.13.0-cp312-cp312-manylinux_2_28_aarch64.whl (615.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

tetra3rs-0.13.0-cp312-cp312-macosx_11_0_arm64.whl (572.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tetra3rs-0.13.0-cp311-cp311-win_amd64.whl (513.8 kB view details)

Uploaded CPython 3.11Windows x86-64

tetra3rs-0.13.0-cp311-cp311-manylinux_2_28_x86_64.whl (640.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

tetra3rs-0.13.0-cp311-cp311-manylinux_2_28_aarch64.whl (619.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

tetra3rs-0.13.0-cp311-cp311-macosx_11_0_arm64.whl (577.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tetra3rs-0.13.0-cp310-cp310-win_amd64.whl (513.6 kB view details)

Uploaded CPython 3.10Windows x86-64

tetra3rs-0.13.0-cp310-cp310-manylinux_2_28_x86_64.whl (641.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

tetra3rs-0.13.0-cp310-cp310-manylinux_2_28_aarch64.whl (619.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

tetra3rs-0.13.0-cp310-cp310-macosx_11_0_arm64.whl (577.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: tetra3rs-0.13.0.tar.gz
  • Upload date:
  • Size: 237.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.13.0.tar.gz
Algorithm Hash digest
SHA256 c485cd4f849d2f4c2e07d1fe4f5fdc4f0621fb50550cf422fb520dbebc7f9301
MD5 1e5c8ed4880280c5d1894df12891e909
BLAKE2b-256 00bb92c236dfae82751b7b0911edeaf0a3fa8154fe48702fe90dcc4abed509c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.13.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 523.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.13.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d16514060ed23f506f4dc3d6d2d58b9d498de581216b6d97ed020928d862de6c
MD5 6ead2350e4763947a6e88dc0b3d7acd8
BLAKE2b-256 e460c156b1210907da6b386ea68316d2631f2fd47fdce5d1b6def11947771865

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d3525511691b0069612e453fd162858216872049661a620dce3cc0930c6d194
MD5 425df9617b5f910beb9110d49071aa1d
BLAKE2b-256 78faf022af185f71726d48fbcadafd86493bb4de943ad5a380efadbddd769695

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e937ed8ca49a68e5df93e307626a4b732e8fa1ce019d0cdb98ef8b314ee3ef1f
MD5 94d50cbcd83f5280212b8624bbb7d885
BLAKE2b-256 58800ea4640a1476e9909abd77fcf108b935fb8d513614d566524e098fbd35fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8149ab5a89aa1fe5529b3fb66a3f971f5002e17c6caefc869cbec799df18382e
MD5 baeb1fd0e5eb57af4dcd947d4856f8c5
BLAKE2b-256 ac053fea366adb055ebe38296ce4f395045f9349be5a582e4aed6815d56bd9c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.13.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 509.4 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.13.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e657c38bda2d1719eaef5932634fc1e865737f9a187dfaba3737250763dbd36c
MD5 74811770eacd2c765b80ad5b756e4863
BLAKE2b-256 f827a12805cb4c832cc7431431a1ab9f1fb63ed4ce9836758f8099ebfec79282

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 258788a98c91854c76415dfca212850b9a5e56be7c25da3a67f413cbc125100a
MD5 90db1ae0abc3fdec3a67cd1e7d5730b4
BLAKE2b-256 d9c838393e40063a0af6e181da03e83d9c0353f6d2a839f51553849ddb78b4fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e6ff838af448818e81030c95b965bfd646627f7b71d07016bbc48b2cb84db06c
MD5 7a0188274f79e72faf739551c3c029e7
BLAKE2b-256 fcd12a0a7da9f356b8c821db8a01de8a67ec22805315e78f8f7311872971a9f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b3b285a2db24bee1e2a98717db2a2c34d3eeaf61bd3926197dddcfeb32a1313
MD5 f603bd89d598854b4bf482238f661841
BLAKE2b-256 1eb7ae8b3aaade78687f736cf40982c7bee3358240e9165322961711d31076cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.13.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 509.5 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.13.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9b95877c40685038dd5e6c8167cd107c7b3321ab4cb2d2b10577a40b10dd1534
MD5 37ef8e1970e924b999407e36d4b71e0b
BLAKE2b-256 4cece90f2b2930d361597fec6e1a8a12f998b1fbb35185c70779e431e0b554c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d339846628df22aafabe1c2f5bbeb627a8883af947a93a7c0add327a760c0ba
MD5 cbd0618a261e00f64a104754013cad16
BLAKE2b-256 ecdd7d940840fd3949e563c4942e534fcfbdeb5a5a921cddd2b11977c9921d08

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 008bac5ee764a6bd7ff2139200b9ea90df370d37c62cf20ff817fcded53e7e25
MD5 5c32bd31245cf07c500d605b831ee39f
BLAKE2b-256 6ba95eb25a8e290499735f5589f16c21872e7ecf74d157dda5f9d666666e2022

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 650a07bbd1d609a73a83d06d6257c9cb24a454d01cd98559a6cce41bd5e4400f
MD5 4063e672207b0c8f1fce942e8b765e71
BLAKE2b-256 885476bcd5bf7c6537621e33ad78b2386d6220a8532abb77b4a2546f5a200fac

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.13.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 513.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.13.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 64da34c16dec37557c4bb4d35df7bf6fca25ad960936d8b97d1ca98edf51c897
MD5 e817130b6b848f070e1ad299aa951273
BLAKE2b-256 715f2c3806242ad83d12fefc65d2257f31c4afd9b5c2ee1acf9c256a8a4cebf4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 585aeba051be1733fba0e3abaa3390b282629a3880d9ba5dad4a16ecb97ac289
MD5 2de776e14756e64ccffadbbc5521ada5
BLAKE2b-256 0d57c8faab72e1b94c250ae5f79fae46b2e90a5412b7983cd644a15b62312b87

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c6d485ee765c8bac225202b181f8da9d0abb56afe0d0b00ede31eb8b9ff0ed6c
MD5 d40ff1d92e31c63e8a03758ff60cd6b9
BLAKE2b-256 41f83f72cb61154cfb698ff05a162c58269cc5e1875e401cc588ae4c541a4c64

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50223ded3afd38376fb948ca7ec7a62568f795a6f98220e9f200d90213644852
MD5 1759a34efb06fa439468f16cd6a06d8f
BLAKE2b-256 e69392b0ea55b90d72747e0746acaf6691fca5c924e6d154967c711a1f788fdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tetra3rs-0.13.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 513.6 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.13.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c4c5880984b841b91ace8f08e0239fcc042a9f8824067e31302983ec56ac9237
MD5 9ff7d776167936d3315a5354cd28fdd7
BLAKE2b-256 34447bdfb405c038e3c01d6840921acd4c70e191db1b725df5c5192f448e12e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 565d84253ede4b50e5521c5c55df04eacd2cb33a321ce43146d87007e4b579d3
MD5 9797db898361afe97ac21747418c02ac
BLAKE2b-256 5aa865e845390ee59df6cc95a1ddb6a1463deab1b118836a93f92b4d4074d53e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0138e54b0a461b494c44a194a069b9b4a79998b29ea37e92480ea9da7af16bf0
MD5 f49ae889b164853ecd7c0e56b18c87af
BLAKE2b-256 5b9e72abdfd5e67719bcaafd7454171abd9287396316e15540ca03e13d1571ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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.13.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.13.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c44c50c7980374077ee2fcc8e5c0773e2a5ed707732f9eb01292c0d515f0f2ad
MD5 70b60f84b105f8466630805a904fe416
BLAKE2b-256 8fd302a7a73b1e4d5facdf20cbe913814efc7511a55c946838ad0b9fb57c2082

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.13.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

This release

0.13.0 This release

21 files

0.12.0

21 files

0.11.0

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