Skip to main content

Fast star plate solver written in Rust

Project description

tetra3rs

Crates.io docs.rs 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.

[!IMPORTANT] Status: Alpha — The core solver is based on well-vetted algorithms but has only been tested against a limited set of images. The API is not yet stable and may change between releases. Having said that, I've made it work on both low-SNR images taken with a camera in my backyard and with high-star-density images from more-complex telescopes.

Features

  • Lost-in-space solving — determines attitude from star patterns with no initial guess
  • 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 Hipparcos catalog positions to any observation epoch
  • Zero-copy deserialization — databases serialize with rkyv for instant loading
  • Centroid extraction — detect stars from images with local background subtraction, connected-component labeling, and quadratic sub-pixel peak refinement (requires image feature)
  • Camera model — unified intrinsics struct (focal length, optical center, parity, distortion) used throughout the pipeline
  • Distortion calibration — fit SIP polynomial or radial distortion models from one or more solved images via calibrate_camera
  • 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, CalibrateResult, ExtractionResult, Centroid, RadialDistortion, PolynomialDistortion) support pickle serialization via zero-copy rkyv.

Quick start

Obtaining the Hipparcos catalog

Download hip2.dat from the Hipparcos, the New Reduction (I/311) and place it at data/hip2.dat.

mkdir -p data
curl -o data/hip2.dat.gz "http://cdsarc.u-strasbg.fr/ftp/I/311/hip2.dat.gz"
gunzip data/hip2.dat.gz

[!NOTE] The Hipparcos catalog is also downloaded automatically when running the integration tests (cargo test --features image).

Example

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

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

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

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

// 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_estimate_rad: (15.0_f32).to_radians(), // horizontal FOV
    image_width: 1024,
    image_height: 1024,
    fov_max_error_rad: Some((2.0_f32).to_radians()),
    ..Default::default()
};

let result = db.solve_from_centroids(&centroids, &solve_config);
if result.status == SolveStatus::MatchFound {
    let q = result.qicrs2cam.unwrap();
    println!("Attitude: {q}");
    println!("Matched {} stars in {:.1} ms",
        result.num_matches.unwrap(), result.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.

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 near-Earth observers, stellar aberration is dominated by Earth's orbital velocity around the Sun (~30 km/s). The surface velocity due to Earth's rotation (~0.46 km/s at the equator) and LEO orbital velocity (~7.5 km/s) are small by comparison and can usually be neglected.

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 File Notes
Hipparcos data/hip2.dat Default; includes proper motion
Gaia data/gaia_bright_stars.csv Requires --features gaia (incomplete)

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

Roadmap (not in order)

  • Tracking mode — accept an initial attitude guess to restrict the search to nearby catalog stars, improving speed and robustness for sequential frames (e.g. star trackers solution on previous frame)
  • Gaia catalog support — complete the Gaia bright star catalog import (--features gaia)
  • Tycho-2 catalog support — import the Tycho-2 catalog (~2.5 million stars, fills the gap between Hipparcos and Gaia)

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.

Project details


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.3.0.tar.gz (121.0 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.3.0-cp313-cp313-win_amd64.whl (463.7 kB view details)

Uploaded CPython 3.13Windows x86-64

tetra3rs-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (602.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

tetra3rs-0.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (572.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

tetra3rs-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (535.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tetra3rs-0.3.0-cp312-cp312-win_amd64.whl (464.0 kB view details)

Uploaded CPython 3.12Windows x86-64

tetra3rs-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (603.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

tetra3rs-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (572.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

tetra3rs-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (535.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tetra3rs-0.3.0-cp311-cp311-win_amd64.whl (466.0 kB view details)

Uploaded CPython 3.11Windows x86-64

tetra3rs-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (602.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

tetra3rs-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (573.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

tetra3rs-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (536.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tetra3rs-0.3.0-cp310-cp310-win_amd64.whl (466.0 kB view details)

Uploaded CPython 3.10Windows x86-64

tetra3rs-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (602.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

tetra3rs-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (573.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

tetra3rs-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (537.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: tetra3rs-0.3.0.tar.gz
  • Upload date:
  • Size: 121.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetra3rs-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cfe6899ba31e9b23006efe77e1fec0d406c7c0e73a130bf341df1db0af0af840
MD5 762aa5433353f3121256e3a311f3da28
BLAKE2b-256 041b6a08752571bff7e67a2bdb5f51f0048f14d0ccda3b7deeb07148cf35d4e1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tetra3rs-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 463.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetra3rs-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1fc25544a8a15bbdb9dbebe015fc7b9054505012b9210fd9536916750cc40d93
MD5 e616290ebcc0b47feacc5e6079a0c8c5
BLAKE2b-256 f3170550e13e59f90760cffc2e33a89b9ca1ba475369edbfda72d96bdcb475f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.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.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 840cfbaa2089f98bc8a0f3ee1cf8b299be0e514fa04159612cd5833eb311cfbc
MD5 c930fcb62b900f0c969b340bf04557de
BLAKE2b-256 bf6c374c9d6251642e7ad895cc1a7875bd55d55749d88287d1ec3a5d1e59f756

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_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.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eaa87bf50a668806f7836d5a83057b79bb73551c04fc2d081e9b8ce2162c2fa6
MD5 fb7ab7d84fe602fa8b83c38239bf3998
BLAKE2b-256 e1b4ac78032c8f6d5a7fb7f4d632913967fbd6cfe13735d379cd2e3498cba849

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_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.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1f2aafcce26411d6852a4372778001f630e3828aa32f7ae07b73f336f92637d
MD5 bd413bad722ddd2f96501f0ea85dddef
BLAKE2b-256 8cbbb4a961cd4338c0802bbca1b79dc2b1f3909bd65f58ed36c67448cfb76604

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tetra3rs-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 464.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetra3rs-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3a96fd3317a02d46bcd167c636f5facafa25c6dc4fbd0ca6c3e7315f5b717eb5
MD5 bc7bc18aa540e65865a94b798c3a0dfa
BLAKE2b-256 3badba0d6dd7bb87820fdc0869427599ea124a7a427a869059b5dfcfb73796d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.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.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 767a96cde9406cbd9c1dff20582c45ee74a5579cbf4b651e3432154c4f6f28c9
MD5 0eac8535b2419b6c1a54e19e32a25860
BLAKE2b-256 892e22f3142e87a65c571dbd2335e4ca6175a7274b9061abb81fe1b2ee8335d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_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.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 37cc10d5a5436cb419cb439b93193777801bfa1342535f4460bdc56ee687b8eb
MD5 328b7e68c6fe38166c2556a77706bb9a
BLAKE2b-256 afccba4039dbb56303bc9af559da0198426328f7eb82cd52fe86b35fd18ee1f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_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.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af1d87eb7674b777f1a7c68125a2fc83a12ea46c8b17ce67f4b078815042ae1e
MD5 0b2eab6cb7f3780fff63ceb87454c750
BLAKE2b-256 245520aa9b0ff4c0cc395f7e05ff5137a78d8a3eecc8a775b1efc3940284759d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tetra3rs-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 466.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetra3rs-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ee2fb83895cc17f621fb7297e25c9de734c01c755804f2e666d2eab973be9aee
MD5 572f5c7987e0f6a6ce937aa302bdf483
BLAKE2b-256 e8c8d25d4090c0ee53617a7696f2cd80ae8206a4c3257d9ac4b1a6c28261b674

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.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.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03e86fab310e3125d1ca8fb33cb6207fc4a56e0f64661fe6c04262b530782268
MD5 3dd8b8c33fb3d77d8bab497552d24c09
BLAKE2b-256 1832a0b88f5c58e2e4ac073f819f93b9e2916539164918f5f8f87239dfe7e9be

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_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.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ba0f2be491a6c59a2cc51f7397bff37ace8c340b84fd5806c8fc8dee964534be
MD5 645f3f2006170a9b0485e2d13b190275
BLAKE2b-256 dc36188ff9dcd497c5c4519931ef6922a67d558cdf8b89e7561131baf5ba1b66

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_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.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c634488128a7d1ae4a5653d2e245c500134eb2488c16cc9a588fcd5c0872e90
MD5 efa3917db8a4e4acee358cb5cd9a115e
BLAKE2b-256 02e321be13ac5381f29e41def43f5386e5532b5b7aba5ed080c4d974f2e34f05

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tetra3rs-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 466.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tetra3rs-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7c3048a94f3d8092933283c0fdac61824a214ef751eb83d8966ff0b0543afafa
MD5 70f84a33fadac89999e50b88ea24c693
BLAKE2b-256 921b7bbd62fe3089187a9c004a7359be237d90ddd93b762130696aa99f213969

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.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.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2921a840ed33599f8449b91068e26ccd8029b2dc857cde8e2c13ffb7a6d25f30
MD5 dca014209a7f40500b2d010d444ca2fa
BLAKE2b-256 8add8d51fe9133dfeb0f8679e90d74704b803146cdbc8b8b83f202a8096bb4ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_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.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a0a7893b86e141ec8adbabfa11eeb99317a879f390c48b85d73d40419a9c7bd7
MD5 b1f9637420d9a0d7f74343188c287fb9
BLAKE2b-256 11733239e5fe7d13da75e14dd3ed2730307d87c759abe1c0f15f78db7336e194

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetra3rs-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_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.3.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tetra3rs-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f48c803d70437d026c7d95145aba6b8ee1b1c5d7d572b46cc6bb324945edfdc5
MD5 f85e6eec55c7a5acfd22ed30a16b5190
BLAKE2b-256 66a01a2895c12c6f5853280561e5ce0fa33358af67e84192c7d178a14052862c

See more details on using hashes here.

Provenance

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page