Skip to main content

spherical-wrist

spherical-wrist is a Python package for six-axis industrial robot kinematics, collision checking, path planning, and visualization.

spherical-wrist is backed by the rs-opw-kinematics crate. It wraps the same Rust library as py-opw-kinematics, but exposes a broader API surface: py-opw-kinematics intentionally publishes only a selected subset of rs-opw-kinematics.

The goal of spherical-wrist is to make the full potential of rs-opw-kinematics available from Python, including collision-free path and trajectory planning. Collision checking is separate from inverse kinematics, but collision-aware stroke planning needs both capabilities close together: available from multiple threads and without repeated Python-Rust boundary crossing overhead.

The public API is Python first: joint positions are tuples or arrays, poses are SciPy RigidTransform objects, and examples are plain Python scripts.

Install

python -m pip install spherical-wrist

The package requires Python 3.11 or newer.

For local development, source builds, and maturin, see Development With Maturin. The Rust dependencies are resolved from crates.io during the build.

Hello World

Create a kinematic model, compute a TCP pose from joint angles, then ask inverse kinematics for joint solutions that reach the same pose.

from scipy.spatial.transform import RigidTransform, Rotation
from spherical_wrist import KinematicModel, Robot

model = KinematicModel(
    a1=400,
    a2=-250,
    b=0,
    c1=830,
    c2=1175,
    c3=1444,
    c4=230,
    offsets=(0, 0, 0, 0, 0, 0),
    flip_axes=(True, False, True, True, False, True),
)

robot = Robot(model, degrees=True)

tool = RigidTransform.from_components(
    rotation=Rotation.from_euler("xyz", [0, -90, 0], degrees=True),
    translation=[0, 0, 0],
)

joints = (10, 0, -90, 0, 0, 0)
pose = robot.forward(joints, tool=tool)
solutions = robot.inverse(pose, tool=tool)

print("TCP position:", pose.translation)
print("IK solutions:", solutions)

The same script is in python/examples/readme_intro.py.

What It Does

  • analytical forward and inverse kinematics for spherical-wrist industrial arms
  • continuing inverse kinematics that handles wrist singularities with a previous joint position
  • optional joint constraints and solution ranking
  • bulk inverse kinematics, optionally filtering solutions against constraints and collision geometry. This method is parallelized, all solutions are returned for each pose
  • 5-DOF inverse kinematics for tools that do not care about J6 rotation
  • base, tool, frame, and parallelogram transforms
  • mesh loading and collision/proximity checks
  • shaped robot models with tool, base, and environment geometry
  • RRT joint-space planning
  • Cartesian stroke planning with annotated path segments
  • Bevy-based visualization and path playback

Supported singularities

The strong side of this library is support of singularities - critical poses where two or more joint motions produce the same TCP motion. As OPW robot is clearly defined, these can be detected (and resolved) from joint positions complemented by robot geometry. Generic solution does not work at singularity poses.

  1. Free base rotation (J1). With b = 0 and the wrist center on the base rotation axis, the position equations cannot determine J1. The solver searches J1 while keeping J2 and J3 fixed for each arm branch, then recovers compatible wrist angles. The built-in Stäubli TX2-140 is tested at such a pose; ABB IRB2400 geometry also permits this case.

  2. Free shoulder rotation (J2). When c2² = a2² + c3², the arm can fold completely at model J3 = π - atan2(a2, c3). The wrist center returns to the shoulder rotation axis, so J2 can vary while J1 and J3 stay fixed. The solver searches this family for candidates compatible with wrist orientation and joint limits. Both Stäubli TX2-140 and TX40 presets have the required equal effective arm lengths.

  3. J1 and J2 free together. A fully folded arm with c2² = a2² + c3², a1 = 0, and b = 0 places the wrist center at the shoulder on the base axis. Both J1 and J2 can vary while J3 remains folded. The solver selects J1 slices and searches J2 within each slice, using wrist-limit boundaries to locate feasible regions. Tests use a TX2-140-based geometry with a1 changed to zero; no unchanged built-in preset currently has this combination.

  4. Fully extended or folded elbow. At model J3 = -atan2(a2, c3) or J3 = π - atan2(a2, c3), the effective arm links are parallel or antiparallel and elbow branches merge at the outer or inner reach boundary. The inverse equations retain reachable boundary solutions despite arithmetic roundoff. With unequal effective lengths, J2 remains determined at the folded boundary. Tests cover both boundaries with the ABB IRB2400 preset.

  5. Shoulder-cylinder boundary. With a nonzero lateral offset b, the wrist center can lie exactly abs(b) from the base axis. The two shoulder branches meet at this boundary, but J1 remains determined. The solver handles the square-root boundary with a roundoff allowance. Tests cover the Stäubli TX40 and cases where shoulder and elbow boundaries occur together.

  6. Wrist joint J5 = 0°. The J4 and J6 axes align, and the target orientation fixes only their sum, J4 + J6. The solver recovers this phase and chooses a coupled pair near the reference. Without joint limits, the required phase correction is split equally between J4 and J6. With limits, it selects a possible pair according to the configured preference for previous angles and constraint centers.

  7. Wrist joint at J5 = 180°. The wrist is reversed, so the target fixes the difference, J4 - J6. Recovery follows the same approach as the zero pole, but the phase correction moves J4 and J6 in opposite directions.

Arm and wrist singularities can occur together.

Main Examples

The most useful examples are:

  • bulk_inverse.py: converts pose stacks with both robot types using the bundled RX160 meshes, applies constraints and collision filtering, and processes large inputs in chunks without opening a window.
  • cartesian_stroke.py: builds a shaped Staubli RX160 robot, plans a Cartesian TCP stroke, annotates the path, and plays it in the visualization window.
  • path_planning_rrt.py: plans a collision-free joint-space path between start and goal configurations.

Run them with:

python python/examples/bulk_inverse.py
python python/examples/cartesian_stroke.py
python python/examples/path_planning_rrt.py

If your shell has ROS or another global Python stack on PYTHONPATH, unset it for these commands:

env -u PYTHONPATH python python/examples/cartesian_stroke.py

See Examples for the full example catalog.

Visualization Requirements

The default release includes visualization tools that are important for trying out the package easily and checking if the robot is properly configured. Headless release for advanced users who have RViz or comparable visualization as an alternative is planned.

Non-visual kinematics, collision, and planning APIs need only the Python dependencies installed by pip. Visualization opens a Bevy/wgpu desktop window, so it also needs a graphical session and a working GPU driver.

Linux:

  • run inside an X11 or Wayland desktop session; headless servers and minimal containers need a display server or virtual display setup
  • install GPU runtime drivers, including a Vulkan driver such as mesa-vulkan-drivers, vulkan-radeon, vulkan-intel, or the appropriate NVIDIA driver package for your system
  • if building from source, install Bevy's native build dependencies: g++, pkg-config, libx11-dev, libasound2-dev, libudev-dev, libxkbcommon-x11-0, libwayland-dev, and libxkbcommon-dev

macOS:

  • run in a normal graphical login session on a Metal-capable Mac
  • prebuilt wheels should not require Xcode or command line tools at runtime
  • source builds require Apple's command line tools or Xcode

Windows:

  • run in a normal graphical desktop session with current GPU drivers
  • prebuilt wheels should not require Visual Studio Build Tools at runtime
  • source builds require the Visual Studio C++ build tools and a Windows SDK

Documentation

Please use the GitHub repository to raise issues and provide merge requests. The core Rust implementation is rs-opw-kinematics. A useful background article is An Analytical Solution of the Inverse Kinematics Problem of Industrial Serial Manipulators with an Ortho-parallel Basis and a Spherical Wrist.

Use cases

Use Robot when you only need kinematics. It provides forward kinematics for all roboto joints, not only the tool-tip pose.

Use KinematicsWithShape when robot geometry matters: collision checks, distance queries, path planning, or visualization.

Use inverse_multiple on either robot type to convert large stacks of SciPy RigidTransform poses to a list of solution lists. Each pose is solved independently in parallel; constraints and the shaped robot's collision policy filter its solutions. See the bulk conversion guide.

Use RRTPlanner when you want to move the robot between the two known poses. It plans a collision-free joint-space path between them and can enforce a configurable safety distance around geometry. That margin matters in real cells: calibration error can otherwise turn a mathematically valid near-contact path into brief surface contact, resulting in scratches, or robot damage.

Use CartesianPlanner when the tool center point must follow a Cartesian stroke defined by poses. It can start from an arbitrary robot pose, plan the landing into best suitable joint configuration for the stroke when alternatives exist, and plan a collision-free path that follows the Cartesian line. Simple joint interpolation does not provide that guarantee.

Metadata

Release files for spherical-wrist 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spherical-wrist 0.0.4
File Size Uploaded
spherical_wrist-0.0.4.tar.gz 1.0 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for spherical-wrist 0.0.4
File
spherical_wrist-0.0.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
spherical_wrist-0.0.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
spherical_wrist-0.0.4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
spherical_wrist-0.0.4-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
spherical_wrist-0.0.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
spherical_wrist-0.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
spherical_wrist-0.0.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
spherical_wrist-0.0.4-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
spherical_wrist-0.0.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
spherical_wrist-0.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
spherical_wrist-0.0.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
spherical_wrist-0.0.4-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
spherical_wrist-0.0.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
spherical_wrist-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
spherical_wrist-0.0.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
spherical_wrist-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details

Total release size: 481.4 MB

Release files / spherical_wrist-0.0.4.tar.gz

Download URL spherical_wrist-0.0.4.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
a4e668f0f0068a014af0d272253da0938e83473dcdcd39259851d626cd06f400
BLAKE2b-256 checksum
How to use checksums
80551a8e4012d3c7968a8240eeb3a594317080b31eaee59a26622cef1490f519
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp314-cp314-win_amd64.whl

Download URL spherical_wrist-0.0.4-cp314-cp314-win_amd64.whl
Size 25.5 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
3148c3800a9b8a3104cc19272ca8e6b8ad9492aa60212c765d0ae193e7449af5
BLAKE2b-256 checksum
How to use checksums
72577647e2933e5e97bfa2108d600e5bcfa76053cdc02cee593a237f91b5962e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL spherical_wrist-0.0.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 35.4 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0a0ed9f34585bbac9a1a277a74389f733e28190d7d7aba2ed65535714953f403
BLAKE2b-256 checksum
How to use checksums
1a5208876a278e04faa1b78aab018af26c57c3b216124a6a036210a1ecc4abcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp314-cp314-macosx_11_0_arm64.whl

Download URL spherical_wrist-0.0.4-cp314-cp314-macosx_11_0_arm64.whl
Size 29.5 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
311be970a065b08f945971c15f7e1fce48931521d135549c33fc3c0ceda0b0f8
BLAKE2b-256 checksum
How to use checksums
efa2adb6e063b1a296f7b41428024c5c7da3534702c2c1bb6b525fe42ce4a0c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp314-cp314-macosx_10_12_x86_64.whl

Download URL spherical_wrist-0.0.4-cp314-cp314-macosx_10_12_x86_64.whl
Size 29.7 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
2bb13ce7c77f05fd8273a64c95d300465beb67d365a123f0efb93f47931c680d
BLAKE2b-256 checksum
How to use checksums
876c6fdc9e6a6cb2f39f78cd269032f1658cc933d9b13157642f57b82ecc0487
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp313-cp313-win_amd64.whl

Download URL spherical_wrist-0.0.4-cp313-cp313-win_amd64.whl
Size 25.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
aa3168bcdb144d5b7b62973652b0233eebd9830b439b415d92a0a027fac66892
BLAKE2b-256 checksum
How to use checksums
b7967514aca6d264f85f1e1d23072cffb880cad951c450dcea78c034e1ac4018
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL spherical_wrist-0.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 35.4 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5dc8ba11d17cf5eb15d2c438b48e972bf4242c64b2ea1f7623418a84be23a41c
BLAKE2b-256 checksum
How to use checksums
4200edc73a59c4876581e7b5a91c290851ba1d92aa37fb3fcbd6b2a2447ebb6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp313-cp313-macosx_11_0_arm64.whl

Download URL spherical_wrist-0.0.4-cp313-cp313-macosx_11_0_arm64.whl
Size 29.5 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5f5c909dd8b59a0db00931caff778754072063613f301c977cc0931c769f4356
BLAKE2b-256 checksum
How to use checksums
21f48eadaa8b1277350f2a87914aab5e8fbe3f3c54e5059b8fd644906fb8553a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp313-cp313-macosx_10_12_x86_64.whl

Download URL spherical_wrist-0.0.4-cp313-cp313-macosx_10_12_x86_64.whl
Size 29.7 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d22489a2106a4d81b40c636e53cab04bd44a69048c66c46f43c44a96accc5cd3
BLAKE2b-256 checksum
How to use checksums
b9c4dd3dc4cd26f1b2d57b8f70157e1f582d1273f3f85c1aca15b0eed801bb9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp312-cp312-win_amd64.whl

Download URL spherical_wrist-0.0.4-cp312-cp312-win_amd64.whl
Size 25.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
5b4c0e26c28d957cbeb825fa83776668f239f93e82269529da8e2fb676c6e63f
BLAKE2b-256 checksum
How to use checksums
c358a407447b43ce8004099669b3a8bfa286cfb601821234ce5bde3a32977bc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL spherical_wrist-0.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 35.4 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6b998fa847451420f0af839504d77ea4e09605611ae94655377abacf008fecc1
BLAKE2b-256 checksum
How to use checksums
d4c302a76d43bd6748fb15a8ed9f6a69a50408f9727e91d85b19addbf21aca42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL spherical_wrist-0.0.4-cp312-cp312-macosx_11_0_arm64.whl
Size 29.5 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ca7bb137e31c604909d5c7b15d3ccb025b0dcdb30d0ed30a20702593e8e98ad4
BLAKE2b-256 checksum
How to use checksums
2f785355526f0821914b1d15e1423126c5967496234230a08046f893718ff455
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp312-cp312-macosx_10_12_x86_64.whl

Download URL spherical_wrist-0.0.4-cp312-cp312-macosx_10_12_x86_64.whl
Size 29.7 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5dd3ad7fa147ea6635e57ff718f8053d4155175ca476bb9768c168865542e577
BLAKE2b-256 checksum
How to use checksums
59b909b8b14dfdd50afc19b65a06dbca0ba635883a7cc3f0c47189a8d781f4a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp311-cp311-win_amd64.whl

Download URL spherical_wrist-0.0.4-cp311-cp311-win_amd64.whl
Size 25.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
abb0edeebd70f8798ff958cc05aeec9e90e9e525b6a80eb4328a4ab15fd41bed
BLAKE2b-256 checksum
How to use checksums
bee46b7358e6cc61b271f8cf48a4ab5c2a3ed6471dee6417e4f33d60f4b9b801
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL spherical_wrist-0.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 35.4 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
52eb717a65253db6c7006e9df6d0fb3fc55277448b9fef8ee15083c812fb28ed
BLAKE2b-256 checksum
How to use checksums
0f93facff497a5ade8bec80cd2d50fd38b97b1320504069dcbf8337ced47d8b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL spherical_wrist-0.0.4-cp311-cp311-macosx_11_0_arm64.whl
Size 29.5 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e0947e41ab01c8950893d3b2c97ed115ff0e8da6d4ca01cc5388878076c171f9
BLAKE2b-256 checksum
How to use checksums
8201e79a3eee19eb145212b7de3742274c227d2ae8a21cd61657f0e6b31ce211
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / spherical_wrist-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl

Download URL spherical_wrist-0.0.4-cp311-cp311-macosx_10_12_x86_64.whl
Size 29.7 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1cd05d20cdb6ab0e9a7cdb7318f537fbe8b2788ec2d6ca7467a5bc0d10f26694
BLAKE2b-256 checksum
How to use checksums
f11991b1413f17ec8c3f951e4640f9f6b78feb8ae3ad49d2715c6d61c5d2a0b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.4 This release

17 release files

0.0.3

17 release files

0.0.1

17 release 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