Skip to main content

High-performance Jolt Physics bindings for Python featuring Shadow Buffers and Free-Threading support.

Project description

Culverin Physics

PyPI - Version Python Version

Culverin is a middleware bridge between the Jolt Physics engine and the Python Virtual Machine. It is designed for 3D games and simulations that require high performance and multi-threaded execution, for the Python game engine developers.

Key Concepts

  • Free-Threading Support: Designed for Python 3.13t and 3.14t. The engine releases the Global Interpreter Lock (GIL) during physics updates and raycast batches.
  • Shadow Buffers: All body positions, rotations, and velocities are stored in contiguous C-arrays. You can access this data via memoryview, NumPy or any dependency that supports the buffer protocol without the overhead of creating Python objects for every body.
  • Thread-Safe API: The engine uses a priority-based locking system. Simulation steps, state mutations, and queries can run on different threads without causing deadlocks or memory corruption.
  • Generational Handles: Bodies are referenced by 64-bit handles rather than pointers. This ensures that using a handle for a deleted object will not crash the program.
  • Double-Precision Positions: Uses double-precision floats (float64) for world positions to prevent physics jitter in massive open worlds, while using float32 for rotations and velocities to save memory and computing resources.

Features

  • Standard Primitives: Box, Sphere, Capsule, Cylinder, and Plane shapes.
  • Complex Shapes: Support for Convex Hulls, Heightfields (Terrain), and static Meshes.
  • Compound Bodies: Create single bodies composed of multiple child shapes.
  • Character Controller: A virtual character controller with built-in support for climbing stairs, sliding down slopes, and pushing objects.
  • Vehicles: Support for wheeled vehicles and tracked vehicles (tanks) with physical treads and skid-steering.
  • Ragdolls & Skeletons: Multi-body articulated physics with active motorized poses.
  • Constraints: Fixed, Point, Hinge, Slider, Distance, Swing-Twist, and Cone constraints.
  • Queries: Efficient single and batch Raycasting, Shapecasting (sweeps), and Overlap queries.
  • Collision Events: Native event buffer for contact added, persisted, and removed events.
  • Soft Bodies: Support for soft bodies from Jolt Physics, with fine-grained configurations.

Installation

pip install culverin

📚 Documentation

Detailed API references for every class and method are available:

Quick Start

import numpy as np

import culverin

# Initialize the world with a capacity limit
world = culverin.PhysicsWorld(settings={"max_bodies": 1000})

# Create a static ground plane
# a plane normal of default (0.577, 0.577, 0.577) represents an infinite 45-degree tilted ramp.
world.create_body(pos=(0, 0, 0), shape=culverin.SHAPE_PLANE, motion=culverin.MOTION_STATIC)

# Create a dynamic box
handle = world.create_body(
    pos=(0, 10, 0), size=(1, 1, 1), shape=culverin.SHAPE_BOX, motion=culverin.MOTION_DYNAMIC
)

# Simulation loop
for _ in range(1000):
    world.step(1 / 60)

    # Zero-Copy Data Access
    # Wrap the internal engine memory in NumPy without copying a single byte.
    # This gives you O(1) access to all 1,000+ bodies at once.
    positions = np.frombuffer(world.positions, dtype=np.float64).reshape(-1, 4)

    # Print the Y position of our box
    idx = world.get_index(handle)
    print(f"Box Height: {positions[idx, 1]:.2f}m")

Technical Specifications

Spec Standard
Units Metric (1.0 = 1 meter)
Coordinate System Right-Handed (Y-Up)
Angle Units Radians
Quaternion Format (x, y, z, w)
Position Buffer Float64 (Stride 4: x, y, z, pad)
Rotation/Velocity Buffers Float32 (Stride 4: x, y, z, w/pad)
Minimum Python 3.12 (3.13t+ recommended for multi-threading)

Performance & Rendering Note

For maximum performance when updating a renderer (like OpenGL or Vulkan), do not loop through individual handles in Python. Instead, use the interpolating export method:

# Returns a single, tightly packed bytes object of Float32s 
# formatted as [px, py, pz, rx, ry, rz, rw] for every active body.
# The 'alpha' parameter (0.0 to 1.0) interpolates between the previous 
# and current physics steps for buttery-smooth rendering.
render_data = world.get_render_state(alpha=0.5)

To read data for gameplay logic, use numpy.frombuffer(world.positions, dtype=np.float64) and numpy.frombuffer(world.rotations, dtype=np.float32) to wrap the internal engine memory without making copies.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

culverin-0.13.1-cp315-cp315t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.15tWindows x86-64

culverin-0.13.1-cp315-cp315t-manylinux_2_39_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.39+ x86-64

culverin-0.13.1-cp315-cp315t-macosx_15_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.15tmacOS 15.0+ ARM64

culverin-0.13.1-cp315-cp315-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.15Windows x86-64

culverin-0.13.1-cp315-cp315-manylinux_2_39_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.39+ x86-64

culverin-0.13.1-cp315-cp315-macosx_15_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.15macOS 15.0+ ARM64

culverin-0.13.1-cp314-cp314t-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.14tWindows x86-64

culverin-0.13.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

culverin-0.13.1-cp314-cp314t-macosx_13_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

culverin-0.13.1-cp314-cp314-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.14Windows x86-64

culverin-0.13.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

culverin-0.13.1-cp314-cp314-macosx_13_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 13.0+ ARM64

culverin-0.13.1-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

culverin-0.13.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

culverin-0.13.1-cp313-cp313-macosx_13_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

culverin-0.13.1-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

culverin-0.13.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

culverin-0.13.1-cp312-cp312-macosx_13_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

File details

Details for the file culverin-0.13.1-cp315-cp315t-win_amd64.whl.

File metadata

  • Download URL: culverin-0.13.1-cp315-cp315t-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.15t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for culverin-0.13.1-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 a53c8e16380eefb9b904aeab52d6ad5b74363a6b19ab66c78868fc25832d0723
MD5 47108aa4f6e215dc3ca92e8c42c64463
BLAKE2b-256 8959f743a36fa38b66738c7b360bb64b20adff7b105041f7b6fc230583598112

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp315-cp315t-win_amd64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp315-cp315t-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp315-cp315t-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 beead9f1cf4466f6d84bc1faea8cdc4ebf52c6891d4e88fb8efe1aea06b105fb
MD5 2f7e76f9194a75a55210f0b84b3df6bc
BLAKE2b-256 a9f8a15d2499ddea66345cdf3b65f84412b9ca7e56d626fe8aadf870f609c925

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp315-cp315t-manylinux_2_39_x86_64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp315-cp315t-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp315-cp315t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 17f3388138bb421256191b12cebc5914643f1580f88a8a8b476a5d01b0f3fd1d
MD5 41881a37da35623cc1473d8c8c8cae0f
BLAKE2b-256 de03ff2e71e6ce23ebd826d91d156ed88bed2386e874bc6f8c43546496807bcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp315-cp315t-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp315-cp315-win_amd64.whl.

File metadata

  • Download URL: culverin-0.13.1-cp315-cp315-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.15, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for culverin-0.13.1-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 feedc7d0b43a8a553494cea1aa290b1ba810f0adc2cce27e7debaa214ec6de37
MD5 8e7a3a818d207ee5cf23dfa407932062
BLAKE2b-256 f612a4448f2d4f98ef97adb3ce2fa325392cad0a442f2f0b652d6934851a16b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp315-cp315-win_amd64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp315-cp315-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp315-cp315-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 767732a7be544900d87ad401b61013e85f2cf9c061d35e37703f418a54b18ccf
MD5 3559ea66b63eb26f360889a8c2bc3f3c
BLAKE2b-256 aae5c03c3c4194f5c74df52532ec2cddccbd659e75db0ec79e536ff19b1f6f36

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp315-cp315-manylinux_2_39_x86_64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp315-cp315-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp315-cp315-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d048679701bb9012504901abaf71597a52ba044d3ddfa867e04c8600aa0d4845
MD5 757d9f2c00da48d665efa8c24ebedcc6
BLAKE2b-256 5e85cac57ed7e36e63a15a4e6d8b6d9fcd9a483be281c89647a8d27ef1f5e5c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp315-cp315-macosx_15_0_arm64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: culverin-0.13.1-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for culverin-0.13.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 191b0aa38e671a7d027fc38b21bed1bc6c8b90f74de4643045f2aefeac2051e6
MD5 1e20236073de3adcb546ee622f27653b
BLAKE2b-256 d6417e0df134a2a458193bfd47de75ad7f981be446257c2e7e3c64b5485355a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp314-cp314t-win_amd64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dff6c8e0f647a9625cf2db063db274980096a9f82e0d74008244ff57dbf7908e
MD5 a4e0355a94b79b062ab0572f5b14fd1b
BLAKE2b-256 cabd578683557241bbbfae5191a54af50d6235bfdc6d97636a99f78d3ed5eb9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 20ffca3861a5dba6745665ed39a0ac78acc49f3fbb4976737475e091e5a19073
MD5 4a9761e92f7736957144f71195d432e5
BLAKE2b-256 26d9ebe95c72c3316debb964ad5c3dbe22993d807aee85c4c9f10e5d58b35f7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp314-cp314t-macosx_13_0_arm64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: culverin-0.13.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for culverin-0.13.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 603ef449b56401c8f5f3a8d10fa9ef2185451e34ade4622e06e72709e7d58324
MD5 a38db6772bbedffc508f4770a68aa418
BLAKE2b-256 27c95f582b6b9027cdbc737c96bdae634726d9cd2975e73c32e939503d410625

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp314-cp314-win_amd64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b37d9367da7da8d72e7994aa32fbabd594691b6504ca271368b7c3402737bc4
MD5 7a0da66b9a489205aa3eea77ebc56fa6
BLAKE2b-256 10aff1edc9bbba794db247e14c258c7200238eb093193b28f2c39e0195cfec69

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp314-cp314-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp314-cp314-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 c87dce8d785cbcbb6655c1e45ae68aea5bb5932a8f2e43e3ba079c72b9dfec69
MD5 604f6b1e4811edc19fd5f924304a1115
BLAKE2b-256 2f1a75433c2c3367f5c2b04dc11fb5f2d5ace112ff57ec672a09fb4d1ec235ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp314-cp314-macosx_13_0_arm64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: culverin-0.13.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for culverin-0.13.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d3a0aae66173ca3a0fce8486593b0c7d881128e4386be51488abf35d8f37bd78
MD5 e415fe199d56aa36fcfd6e73b57130e8
BLAKE2b-256 ecbf360caef3a7c4847cd7e7a89e0a681ca794459ae645eaa426e1f70275d553

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp313-cp313-win_amd64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 06b444761894c927a67a99c79d310d13cf9cf06c2e8d14bf4d254539c9332b0c
MD5 f64267bc972dcbcd806386a334dccbab
BLAKE2b-256 401af3cc87299dcec5fcb1867cd5e2354c75e95d61d898225441649bd96cef41

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 9cfde2037d1a70ba3077ad99cf21dd33aead9e6753e56be6362ae6fe3d7b28c2
MD5 ac9f3ff2ed8eff4b988730e25e01b120
BLAKE2b-256 8c8841c5f844fe8ac5bfc34d367506750dbf0e252dd1261ffa4551c90afc5992

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp313-cp313-macosx_13_0_arm64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: culverin-0.13.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for culverin-0.13.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2f77fd291593b7ba7b1dd144791f423a438771c24726cc312a7835883be7b207
MD5 6637bfc9ca3dde1bd35e488d7bec81b6
BLAKE2b-256 8085bde15b4ab392dac7c602c282fa4a39bfd2bc2f15d03dc8b36f076a24e00d

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp312-cp312-win_amd64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 331bfd87232a4313b9195ad692f1adea41313150f80efd0ef22a9551602fd9eb
MD5 9f9b8713005ac5dbcd94b974f38ee799
BLAKE2b-256 acf64bcf0e8fe0be6e260828d08a8e26fde4664589b4e74c66a330728d8ecd8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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

File details

Details for the file culverin-0.13.1-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for culverin-0.13.1-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 564c4fb0cfe2801375cfdc595d4b6cc5b02e8e9b44f41b3ba5b334b0b778cc42
MD5 47c91d43f9e70fcbf18db20bb0a02edf
BLAKE2b-256 04dd39d590bf378f5e8347e751b063efe8d1dd2782301f0f01c93bccca02d4ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for culverin-0.13.1-cp312-cp312-macosx_13_0_arm64.whl:

Publisher: build_wheels.yml on Evilpasture/Culverin

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