Skip to main content

A library for ray-mesh intersections on triangular meshes

Project description

pyraymesh

Description

pyraymesh is a Python library for performing ray intersection and occlusion tests on 3D meshes using a Bounding Volume Hierarchy (BVH). The library uses the C++ library bvh for building the BVH and performing the intersection tests.

While this library is reasonably fast for simpler meshes (benchmarks coming soon), it is not as fast as Embree, espcially for larger and more complex meshes. However, it does not have any dependencies on external libraries, and is thus easier to install and use.

Installation

Install the package either by

pip install pyraymesh

or cloning the repo and using pip:

pip install .

Note that the package requires a C++ compiler to build the C++ extension.

Usage

Building the BVH

To build the BVH for a mesh:

from pyraymesh import Mesh
import numpy as np

vertices = np.array([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0]])
faces = np.array([[0, 1, 2], [2, 3, 0]])
mesh = Mesh(vertices, faces)
mesh.build("medium")

The build method takes a string argument that specifies the BVH build type, which can be one of the following: "low", "medium" and "high". The build type determines the trade-off between build time and query time. For most cases "medium" is almost always the right choice.

Ray Intersection

To perform ray intersection tests:

ray_origin = [[0.1, 0.2, 1], [0.2, 0.1, 1]]
ray_direction = [[0, 0, -1], [0, 0, 1]]
## or 
ray_origin = [[0.1, 0.2, 1], [0.2, 0.1, 1]]
ray_direction = [0, 0, -1]  # multiple rays with same direction
## or 
ray_origin = [0.1, 0.2, 1]
ray_direction = [[0, 0, -1], [0, 0, 1]]  # multiple rays with same origin

result = mesh.intersect(ray_origin, ray_direction, tnear=0, tfar=1000)
print(result.num_hits)
print(result.coords)
print(result.tri_ids)
print(result.distances)

tnear and tfar can be scalars or lists of the same length as the number of rays. If they are scalars, the same value will be used for all rays. If they are lists, each value will be used for the corresponding ray.

If you set tnear to a value greater than 0, the intersection tests will ignore any intersections that are closer than tnear. Similarly, if you set tfar to a value less than infinity, the intersection tests will ignore any intersections that are farther than tfar. This library does not support negative values for tnear or tfar.

Reflections

If you want to get the reflection of the rays, add the calculate_reflections = True parameter to the intersect method:

ray_origin = [[0.1, 0.2, 1], [0.2, 0.1, 1]]
ray_direction = [[0, 0, -1], [0, 0, 1]]
result = mesh.intersect(ray_origin, ray_direction, tnear=0, tfar=1000, calculate_reflections=True)
print(result.reflections)

results.reflections is a list of noramlized vectors representing the directions of the reflection of the rays. Only do this if you need the reflections, as it will slow down the intersection tests.

Occlusion Test

If you just care about whether a ray is occluded or not (i.e., you don't care about the intersection point) you can use the occlusion method which is faster than the intersect method and just returns an array of booleans.

ray_origin = [[0.1, 0.2, 1], [0.2, 0.1, 1]]
ray_direction = [[0, 0, -1], [0, 0, 1]]
occluded = mesh.occlusion(ray_origin, ray_direction)
print(occluded)

Count intersections

If you want to know the total number of intersections for each ray along its path, without stopping at the first intersection, you can use the count_intersections method:

total_intersections = mesh.count_intersections(ray_origin, ray_direction)
print(total_intersections)

This method returns an array of integers representing the total number of triangles that each ray intersects between tnear and tfar.

Test line-of-sight

If you want to know if two points are visible to each other, you can use the line_of_sight method:

origin_point = [[0.1, 0.2, 1], [0.2, 0.1, 1]]
target_point = [[0, 0, -1], [0, 0, 1]]
## or 
origin_point = [[0.1, 0.2, 1], [0.2, 0.1, 1]]
target_point = [0, 0, -1]  # multiple origin points with same target
## or 
origin_point = [0.1, 0.2, 1]
target_point = [[0, 0, -1], [0, 0, 1]]  # multiple target points with same origin

visible = mesh.line_of_sight(origin_point, target_point)

visible is a list of booleans representing whether the target point is visible from the origin point.

Visibility Matrix

If you want to know the visibility matrix between all pairs of a list of points, you can use the visibility_matrix method: For N points it returns an NxN matrix where the element at (i, j) is True if the j-th point is visible from the i-th point.

points = [[0.1, 0.2, 1], [0.2, 0.1, 1], [0.3, 0.4, 1]]
vis_matrix = mesh.visibility_matrix(points)
# vis_matrix is a 3x3 array of booleans

Traverse the BVH

If you want to traverse the BVH and get all triangles that are along a ray in the BVH, you can use the traverse method. This is useful if you want to do some custom processing on the triangles that are potentially intersected by a ray.

origin = [0, 0, 10]
direction = [0, 0, -1]

for t_id in mesh.traverse(origin, direction):
    print(f"Triangle {mesh.vertices[mesh.faces[t_id]]} is potentially intersected by the ray.")

Note that the current implementation traverses the entire BVH when the method is called, even if you break early from the loop. For huge meshes, this can be a performance bottleneck. Hopefully, this will be fixed in future versions.

Parallelization

The intersect and occlusion methods can be parallelized by passing threads parameter when calling the methods:

result = mesh.intersect(ray_origin, ray_direction, tnear=0, tfar=1000, threads=4)

The threads parameter specifies the number of threads to use for the intersection tests. If set to -1, the number of threads will be equal to the number of cores on the machine. In general you shouldn't set the number of threads to be greater than the number of cores on the machine.

For a small number of rays, the overhead of parallelization might make the parallel version slower than the serial version, so it is recommended to test the performance of both versions for your specific use case.

Testing

To run the tests:

pytest

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

pyraymesh-0.2.4.tar.gz (55.5 kB view details)

Uploaded Source

Built Distributions

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

pyraymesh-0.2.4-pp310-pypy310_pp73-win_amd64.whl (112.0 kB view details)

Uploaded PyPyWindows x86-64

pyraymesh-0.2.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (137.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pyraymesh-0.2.4-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (143.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

pyraymesh-0.2.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl (99.9 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

pyraymesh-0.2.4-cp313-cp313-win_amd64.whl (113.7 kB view details)

Uploaded CPython 3.13Windows x86-64

pyraymesh-0.2.4-cp313-cp313-win32.whl (97.9 kB view details)

Uploaded CPython 3.13Windows x86

pyraymesh-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl (576.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyraymesh-0.2.4-cp313-cp313-musllinux_1_2_i686.whl (622.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

pyraymesh-0.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (139.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyraymesh-0.2.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (145.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

pyraymesh-0.2.4-cp313-cp313-macosx_11_0_arm64.whl (102.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyraymesh-0.2.4-cp313-cp313-macosx_10_14_universal2.whl (202.3 kB view details)

Uploaded CPython 3.13macOS 10.14+ universal2 (ARM64, x86-64)

pyraymesh-0.2.4-cp312-cp312-win_amd64.whl (113.7 kB view details)

Uploaded CPython 3.12Windows x86-64

pyraymesh-0.2.4-cp312-cp312-win32.whl (97.9 kB view details)

Uploaded CPython 3.12Windows x86

pyraymesh-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl (576.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyraymesh-0.2.4-cp312-cp312-musllinux_1_2_i686.whl (622.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

pyraymesh-0.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (139.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyraymesh-0.2.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (145.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

pyraymesh-0.2.4-cp312-cp312-macosx_11_0_arm64.whl (102.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyraymesh-0.2.4-cp312-cp312-macosx_10_14_universal2.whl (202.4 kB view details)

Uploaded CPython 3.12macOS 10.14+ universal2 (ARM64, x86-64)

pyraymesh-0.2.4-cp311-cp311-win_amd64.whl (114.3 kB view details)

Uploaded CPython 3.11Windows x86-64

pyraymesh-0.2.4-cp311-cp311-win32.whl (98.1 kB view details)

Uploaded CPython 3.11Windows x86

pyraymesh-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl (577.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyraymesh-0.2.4-cp311-cp311-musllinux_1_2_i686.whl (623.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

pyraymesh-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyraymesh-0.2.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (146.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

pyraymesh-0.2.4-cp311-cp311-macosx_11_0_arm64.whl (102.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyraymesh-0.2.4-cp311-cp311-macosx_10_14_universal2.whl (203.8 kB view details)

Uploaded CPython 3.11macOS 10.14+ universal2 (ARM64, x86-64)

pyraymesh-0.2.4-cp310-cp310-win_amd64.whl (114.4 kB view details)

Uploaded CPython 3.10Windows x86-64

pyraymesh-0.2.4-cp310-cp310-win32.whl (98.3 kB view details)

Uploaded CPython 3.10Windows x86

pyraymesh-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl (577.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyraymesh-0.2.4-cp310-cp310-musllinux_1_2_i686.whl (623.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

pyraymesh-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyraymesh-0.2.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (147.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

pyraymesh-0.2.4-cp310-cp310-macosx_11_0_arm64.whl (103.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyraymesh-0.2.4-cp310-cp310-macosx_10_14_universal2.whl (204.1 kB view details)

Uploaded CPython 3.10macOS 10.14+ universal2 (ARM64, x86-64)

File details

Details for the file pyraymesh-0.2.4.tar.gz.

File metadata

  • Download URL: pyraymesh-0.2.4.tar.gz
  • Upload date:
  • Size: 55.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4.tar.gz
Algorithm Hash digest
SHA256 6d8331f4ec99f8e74491ea9c1161f698606c6bf933b27d2074ad08f81d890658
MD5 118f08b6b3267da6308b3411e3722bd1
BLAKE2b-256 a698855c8bcbfd17f7099637ce6c9ffdf27000cd221047ace6bfed408553655a

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 d05a6bedf77018412ffbf4a5d0cc3f6c1c5f1bca5bd43c8ee6553959082bcb0a
MD5 322d17e5cca8f6d4a07d3c7c48a3057f
BLAKE2b-256 d79a17997d622fbd0d2b6f36b3b45a0d46a2426ad769004bdff8945723461445

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a1bc4bd9de3530ebd132db897fe726b05f9c0ed2fa8346a939b3c860aca07234
MD5 e9a0ca6581e5127cfe985626a95f9916
BLAKE2b-256 caeabacfb5974b25135e831664348e2fc0abb0e2ae949873c0c48c9af9d05ffa

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 20960082a6b5c44ffc057cbe83e1c4a70cfb0537a11a862fa789ccf735650b7e
MD5 f23c7e0d193af903783e40eee562454c
BLAKE2b-256 fe8395a931f7f92680e5f1a8045ac6a549bdf9012cfc19524a150166c7ba5708

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15979465bcb55b38d1f38ac41de63fd9f3c9b90ce6e9be26b5ae301f785f5ab0
MD5 d073c0cd3eb546e4ce956e1892c55c24
BLAKE2b-256 87a5b2c07f4d679a8cadfd2f4044fd220c44496c602b92e1cb1cef382022cb82

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyraymesh-0.2.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 113.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1b7e8321c79d0ff7634641da16cc761132d998bd37aa4f33eb4944154c737837
MD5 20ebe795c6828110aae8e30ae4f3648c
BLAKE2b-256 096d4a0da25083f57ab2175d7e5786262b65f0d092bdd05575edf92d88e016ca

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp313-cp313-win32.whl.

File metadata

  • Download URL: pyraymesh-0.2.4-cp313-cp313-win32.whl
  • Upload date:
  • Size: 97.9 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 7af4fc4c7d64e7b137ed362c7a5cd756d7a8fad691db682176ff1e9755fc3bde
MD5 ac48925345429efcbf3efffaeb69268a
BLAKE2b-256 362298871973cc636265fddbc929afca177ae8e09425af567c60404351f7159d

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b6e0bfcd4fcfd2c8adfffe7b15cda835f0ec761dfc5b80455aa8c59cb006b5e1
MD5 373e6fe7e1fc699c27db12533855175d
BLAKE2b-256 f39f2d30662a94722170cf0150d1fad61979d1b0e79c3d9ae1b659d2ae2a804e

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 fa82d9d2040c3a91213d3dd15b821892ad404c6b44702d17d6b249733642dc47
MD5 c6d5e393938725a68ebc0f3a51cb6d74
BLAKE2b-256 9b0087e2672f7ab5cd700bd984df145d69b512c4879b5b8fdfa028f6b6ada668

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 136486533fbc47fb72721f063e367a3e886ed5964b94782486b1eb9fd9a8233d
MD5 6fc871ca166d1649ccf376ae6eded7ce
BLAKE2b-256 2afd8cd9a9b7464a0832091a3216a0b45729b590e6f11e1df841419fcfc921a7

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b052c5a2b1c5a8e70c3cbc2d606f6d16dcb51471ce566f5c169fe4729fa6edc0
MD5 734d8997ea7e1f19069677ad8a3a2148
BLAKE2b-256 5eae487f78347a70549eb8a857e89f6f67d4a0c0bd26171556aee120801fe880

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9715c682ae91edc4df98f7fc130593b6a3eb57701e7df7e88eb3d25ab97ea255
MD5 e312116b9419e2afa8d9705b63f4fd57
BLAKE2b-256 a29449686eda19839eed3407c466f09d7782e5cddf09b2720db3c64912626f5d

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp313-cp313-macosx_10_14_universal2.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp313-cp313-macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 dfcfd233d0342ddefd632ba80875f3d93d94ef643a20a83a6aa7f9fa1bf2a3cf
MD5 b9fb4e2baf74ae74b2fda221da9cf060
BLAKE2b-256 5194ffd4c432327e97aae49f3e702988215c5eada612abd46bf75cd01f12a761

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyraymesh-0.2.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 113.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d375a69b8c64103fb222dba4a2e656c7429274d3be9c1e723afa96a91d30dafa
MD5 9b3c0ef0a7f68bf104710b75053d41de
BLAKE2b-256 4ac1d393b9c7393315efdf372261a0c287ae451983cb67cab225af755da38581

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp312-cp312-win32.whl.

File metadata

  • Download URL: pyraymesh-0.2.4-cp312-cp312-win32.whl
  • Upload date:
  • Size: 97.9 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 af2746e7326afb980da59a0b4ab7144068d8ab3d83dc14f919fff7356cf6dce4
MD5 beca2fbe1bebbde75b18355849822d0e
BLAKE2b-256 fe710f38df3e1d535a6a944c01e862e85472175c477450310cfc1aa25fb774d2

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 da790773474f02b27c6c29099185114dfb396d9f2054b1a51c9f99c036f36def
MD5 8189c5754533b5df68538d744750ff40
BLAKE2b-256 3ae09d9a589977c604a3135c9b8d8341367eabed43d02bd2e7538d2a19e59ea8

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b0c751b6aed4851d7783d56ae8ad74409edc69e22404ad5e4aa2a6461f606109
MD5 b9028805915052abdab4546c9c800f12
BLAKE2b-256 c99be4b07c6852872fb17321d9523da5f31c0da7cd3dc42764ce5b6812cb7b38

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3575f641e170f94cd30babf3b52ee00cd1196351d57d8f947fc77c6fd669dd79
MD5 ec94a1220a369e8a8b95106b6a3963fd
BLAKE2b-256 33bd904e0b36d53ea1f9a791de70995a3cd7a279f305f3643408ac0e9a8bbc92

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 855c364ebf7b65e32668dccaf5482880904679bae69cb6ac76b5ed08efef2f93
MD5 9a4ee9aded8174599a76a7db505670d7
BLAKE2b-256 ecf6ee6a0c594f6c526877b410547719da8f4a6558e58462dd8b09f2fe4301b1

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3837f611689c5657ffed61a078f55360edbb12e17c576462a7d94c22adf733f5
MD5 90de40c6115249192241b38260deff30
BLAKE2b-256 af1acf617a24e67cefdebafd3cda90ff3f157dd591d349f36365b050bfecf33b

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp312-cp312-macosx_10_14_universal2.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp312-cp312-macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 6f0d9bef2ffaddd91c4735b5f0d12cb048060862880164da1a8844e9fac5204e
MD5 1b9cf8086c84e0a084c14edd8dd2f50f
BLAKE2b-256 3c5b3f2d27ed18c197ce2787153b42484899fa9a92b9e1419a3f5ca91e3f9f73

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyraymesh-0.2.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 114.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a505f371eea0fd7cae207668146100f21e2a692f821b15328121cf992ee0c0cb
MD5 5b9a7a2c66a5cae0b58c3098808d7d84
BLAKE2b-256 dd52526a70f78955e2a7d726fae1fb4156a2d0babad65ec1a655f7b9d53e8236

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp311-cp311-win32.whl.

File metadata

  • Download URL: pyraymesh-0.2.4-cp311-cp311-win32.whl
  • Upload date:
  • Size: 98.1 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 debbc27bdd2e22cfab7e90f46f47349af62c064a5e15e7bb964683ec80fd19a3
MD5 c94dcc50db29cc463ab693fe93353c60
BLAKE2b-256 f62fff3ef601f1de6d16de00de9b70146516d48eec1104185b95bdd77c0d2f67

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 836b1e4dd83b0961a3e0b0f20e739f1d168fa3dd28249d655e4658a2c1889984
MD5 258080fd0bba7a13036e2d467488bfcf
BLAKE2b-256 0f692099e9f55acc01c7a7762513810591269c3bb7498472e390ff1f10cbbdd1

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 43fe57f2265b26ed8d0827e3d2bee37eb8b96d4e4661b32052c1b5d563959751
MD5 608bd7cd47af186d8959c8f7b8a38e9b
BLAKE2b-256 d8daea961e7ef914fcfab6f173d5a84b4c305ba03faa43a725b0ef95d170e888

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e8e782063da0068d08bcaeb5f12673b32e06dff85e29c627d905b404d164fa3
MD5 6a128df63d02448d49cb17255d7209f3
BLAKE2b-256 f7264e8416148ad89d93d4ecb860491299dee2ce8fa380afe31e2ed9eae708c5

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ed9b71c6ca2e15b2a1f7ee4f719202e3f8b9944b7043e5b63f3d348c88675959
MD5 1bad98a3fc430f4d8be2875bef85541f
BLAKE2b-256 6b0e59dc27d6bee038e1c780fcf8c7376daaad55c1250114fcddb1c4733a6133

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8bbc2377d2f13766d8489d56575b3acc3bbd553e84097c3b2645158669c8bc6c
MD5 f7e6bc44337a13bf386e0155c6b3dcf8
BLAKE2b-256 b619db150db0338e0caa52941ef3b6bb6edaff18f5de1d445db48aed47e62f56

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp311-cp311-macosx_10_14_universal2.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp311-cp311-macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 f256ec3f0bbc031ed9bcb211cf144f71781a6f85d392be7a30fd3356d7760e60
MD5 e56f5879205891bb97e3f0bd403250c4
BLAKE2b-256 b8049d574d4612059a415fbf19d386390f151362316db811551e43822fd4a7e5

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyraymesh-0.2.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 114.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d98a19143f7874c775671927db85833086ab9d3160370184027621feb0e042c1
MD5 f0aac08e6587d6df7772c0e00c8b9177
BLAKE2b-256 c5f3080e9320ab5dfd4bfaec22d44bbeb45cbb93eacbadbcde39a3ce7798a241

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp310-cp310-win32.whl.

File metadata

  • Download URL: pyraymesh-0.2.4-cp310-cp310-win32.whl
  • Upload date:
  • Size: 98.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyraymesh-0.2.4-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 ef27377261ab0e517befcf76d76035bd2c9d106dbf0a49e72fdb2c4011e9648a
MD5 f5e26dd4b2b96b029006876f616b61ab
BLAKE2b-256 4cd7183f92ac84d4651d037dc84099c1cef261a5850a7a1075c50348a8505b64

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2243ba9988844daa12d7a9d1a60e35ca705091a1a80ce08fcdea031590a10ccd
MD5 476e81999907e1a3faa52ce34a1d8e39
BLAKE2b-256 3ee589b576487f5f16d77befdfb2ad645310c56c50af33218547e92959f07d1b

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5434d0237b4f7884bd8685f1d79196bc3d9d6672c93eaab62bd110a1d3a287be
MD5 8c2b9cb89bf7129f337db4d716c03a8e
BLAKE2b-256 bda451f8ee67ca8d0447c5e27a061a6da8d7ed3a14f7c1b6aba6ef42e29b8f66

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 84c920c7fc2852fa960c4df67d9ea1aab7e4819680dfdaeeb9a8068c7720303f
MD5 75b142b98977dcba7945df7fc9115198
BLAKE2b-256 7e7b5dc863fcb60920ec31a915c164ac4131d7d2d6d42ef409b96c5232fa1780

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0063b36b564a8075910c5d0641667a84791e80c71f38584f57c3a08c59c66dd5
MD5 484b08d8b2f0af933422d0f471a6e451
BLAKE2b-256 90c86f4c9da2457fc72fd8877602f975497398abd86e44456ae38c57e481cbfd

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05bf3a2c2d261d3a5b7d9659b25a4ba1921ee6761bdc345a5884fd3ebd313962
MD5 bcee0ac954493c11774d4b09e0b4766b
BLAKE2b-256 6111dced2abbf539dc2270c23070056b3dfc3ad8ea4d6686fa59c9f63a03956b

See more details on using hashes here.

File details

Details for the file pyraymesh-0.2.4-cp310-cp310-macosx_10_14_universal2.whl.

File metadata

File hashes

Hashes for pyraymesh-0.2.4-cp310-cp310-macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 30434143b4e8642473f46fd58ba0888bbb03d9f95a7ba2319a341c4e865240fe
MD5 de33dcaba294852645cbf746831c6daa
BLAKE2b-256 ee26d51a107989e586c16ce8ebdc6a279fa3d8529e3f3f90a34f76e5f0c61be5

See more details on using hashes here.

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