Skip to main content

A fast Python Quantized Mesh encoder

Project description

quantized-mesh-encoder

Build Status

A fast Python Quantized Mesh encoder. Encodes a mesh with 100k coordinates and 180k triangles in 20ms. Example viewer.

The Grand Canyon and Walhalla Plateau. The mesh is created using pydelatin or pymartini, encoded using quantized-mesh-encoder, served on-demand using dem-tiler, and rendered with deck.gl.

Overview

Quantized Mesh is a format to encode terrain meshes for efficient client-side terrain rendering. Such files are supported in Cesium and deck.gl.

This library is designed to support performant server-side on-demand terrain mesh generation.

Install

With pip:

pip install quantized-mesh-encoder

or with Conda:

conda install -c conda-forge quantized-mesh-encoder

Using

API

quantized_mesh_encoder.encode

Arguments:

  • f: a writable file-like object in which to write encoded bytes
  • positions: (array[float]): either a 1D Numpy array or a 2D Numpy array of shape (-1, 3) containing 3D positions.
  • indices (array[int]): either a 1D Numpy array or a 2D Numpy array of shape (-1, 3) indicating triples of coordinates from positions to make triangles. For example, if the first three values of indices are 0, 1, 2, then that defines a triangle formed by the first 9 values in positions, three for the first vertex (index 0), three for the second vertex, and three for the third vertex.

Keyword arguments:

  • bounds (List[float], optional): a list of bounds, [minx, miny, maxx, maxy]. By default, inferred as the minimum and maximum values of positions.
  • sphere_method (str, optional): As part of the header information when encoding Quantized Mesh, it's necessary to compute a bounding sphere, which contains all positions of the mesh. sphere_method designates the algorithm to use for creating the bounding sphere. Must be one of 'bounding_box', 'naive', 'ritter' or None. Default is None.
    • 'bounding_box': Finds the bounding box of all positions, then defines the center of the sphere as the center of the bounding box, and defines the radius as the distance back to the corner. This method produces the largest bounding sphere, but is the fastest: roughly 70 µs on my computer.
    • 'naive': Finds the bounding box of all positions, then defines the center of the sphere as the center of the bounding box. It then checks the distance to every other point and defines the radius as the maximum of these distances. This method will produce a slightly smaller bounding sphere than the bounding_box method when points are not in the 3D corners. This is the next fastest at roughly 160 µs on my computer.
    • 'ritter': Implements the Ritter Method for bounding spheres. It first finds the center of the longest span, then checks every point for containment, enlarging the sphere if necessary. This can produce smaller bounding spheres than the naive method, but it does not always, so often both are run, see next option. This is the slowest method, at roughly 300 µs on my computer.
    • None: Runs both the naive and the ritter methods, then returns the smaller of the two. Since this runs both algorithms, it takes around 500 µs on my computer
  • ellipsoid (quantized_mesh_encoder.Ellipsoid, optional): ellipsoid defined by its semi-major a and semi-minor b axes. Default: WGS84 ellipsoid.
  • extensions: list of extensions to encode in quantized mesh object. These must be Extension instances. See Quantized Mesh Extensions.

quantized_mesh_encoder.Ellipsoid

Ellipsoid used for mesh calculations.

Arguments:

  • a (float): semi-major axis
  • b (float): semi-minor axis

quantized_mesh_encoder.WGS84

Default WGS84 ellipsoid. Has a semi-major axis a of 6378137.0 meters and semi-minor axis b of 6356752.3142451793 meters.

Quantized Mesh Extensions

There are a variety of extensions to the Quantized Mesh spec.

quantized_mesh_encoder.VertexNormalsExtension

Implements the Terrain Lighting extension. Per-vertex normals will be generated from your mesh data.

Keyword Arguments:

  • indices: mesh indices
  • positions: mesh positions
  • ellipsoid: instance of Ellipsoid class, default: WGS84 ellipsoid
quantized_mesh_encoder.WaterMaskExtension

Implements the Water Mask extension.

Keyword Arguments:

  • data (Union[np.ndarray, np.uint8, int]): Data for water mask.
quantized_mesh_encoder.MetadataExtension

Implements the Metadata extension.

  • data (Union[Dict, bytes]): Metadata data to encode. If a dictionary, json.dumps will be called to create bytes in UTF-8 encoding.

Examples

Write to file

from quantized_mesh_encoder import encode
with open('output.terrain', 'wb') as f:
    encode(f, positions, indices)

Quantized mesh files are usually saved gzipped. An easy way to create a gzipped file is to use gzip.open:

import gzip
from quantized_mesh_encoder import encode
with gzip.open('output.terrain', 'wb') as f:
    encode(f, positions, indices)

Write to buffer

It's also pretty simple to write to an in-memory buffer instead of a file

from io import BytesIO
from quantized_mesh_encoder import encode
with BytesIO() as bio:
    encode(bio, positions, indices)

Or to gzip the in-memory buffer:

import gzip
from io import BytesIO
with BytesIO() as bio:
    with gzip.open(bio, 'wb') as gzipf:
        encode(gzipf, positions, indices)

Alternate Ellipsoid

By default, the WGS84 ellipsoid is used for all calculations. An alternate ellipsoid may be useful for non-Earth planetary bodies.

from quantized_mesh_encoder import encode, Ellipsoid

# From https://ui.adsabs.harvard.edu/abs/2010EM%26P..106....1A/abstract
mars_ellipsoid = Ellipsoid(3_395_428, 3_377_678)

with open('output.terrain', 'wb') as f:
    encode(f, positions, indices, ellipsoid=mars_ellipsoid)

Quantized Mesh Extensions

from quantized_mesh_encoder import encode, VertexNormalsExtension, MetadataExtension

vertex_normals = VertexNormalsExtension(positions=positions, indices=indices)
metadata = MetadataExtension(data={'hello': 'world'})

with open('output.terrain', 'wb') as f:
    encode(f, positions, indices, extensions=(vertex_normals, metadata))

Generating the mesh

To encode a mesh into a quantized mesh file, you first need a mesh! This project was designed to be used with pydelatin or pymartini, fast elevation heightmap to terrain mesh generators.

import quantized_mesh_encoder
from imageio import imread
from pymartini import decode_ele, Martini, rescale_positions
import mercantile

png = imread(png_path)
terrain = decode_ele(png, 'terrarium')
terrain = terrain.T
martini = Martini(png.shape[0] + 1)
tile = martini.create_tile(terrain)
vertices, triangles = tile.get_mesh(10)

# Use mercantile to find the bounds in WGS84 of this tile
bounds = mercantile.bounds(mercantile.Tile(x, y, z))

# Rescale positions to WGS84
rescaled = rescale_positions(
    vertices,
    terrain,
    bounds=bounds,
    flip_y=True
)

with BytesIO() as f:
    quantized_mesh_encoder.encode(f, rescaled, triangles)
    f.seek(0)
    return ("OK", "application/vnd.quantized-mesh", f.read())

You can also look at the source of _mesh() in dem-tiler for a working reference.

License

Much of this code is ported or derived from quantized-mesh-tile in some way. quantized-mesh-tile is also released under the MIT license.

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

quantized-mesh-encoder-0.4.3.tar.gz (138.0 kB view details)

Uploaded Source

Built Distributions

quantized_mesh_encoder-0.4.3-cp311-cp311-win_amd64.whl (199.4 kB view details)

Uploaded CPython 3.11 Windows x86-64

quantized_mesh_encoder-0.4.3-cp311-cp311-musllinux_1_1_x86_64.whl (540.3 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

quantized_mesh_encoder-0.4.3-cp311-cp311-musllinux_1_1_i686.whl (513.9 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

quantized_mesh_encoder-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (548.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

quantized_mesh_encoder-0.4.3-cp311-cp311-macosx_11_0_arm64.whl (200.5 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

quantized_mesh_encoder-0.4.3-cp311-cp311-macosx_10_9_x86_64.whl (208.3 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

quantized_mesh_encoder-0.4.3-cp310-cp310-win_amd64.whl (200.3 kB view details)

Uploaded CPython 3.10 Windows x86-64

quantized_mesh_encoder-0.4.3-cp310-cp310-musllinux_1_1_x86_64.whl (530.7 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

quantized_mesh_encoder-0.4.3-cp310-cp310-musllinux_1_1_i686.whl (509.3 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

quantized_mesh_encoder-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (532.3 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

quantized_mesh_encoder-0.4.3-cp310-cp310-macosx_11_0_arm64.whl (201.5 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

quantized_mesh_encoder-0.4.3-cp310-cp310-macosx_10_9_x86_64.whl (209.5 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

quantized_mesh_encoder-0.4.3-cp39-cp39-win_amd64.whl (200.3 kB view details)

Uploaded CPython 3.9 Windows x86-64

quantized_mesh_encoder-0.4.3-cp39-cp39-musllinux_1_1_x86_64.whl (539.4 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

quantized_mesh_encoder-0.4.3-cp39-cp39-musllinux_1_1_i686.whl (517.5 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

quantized_mesh_encoder-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (536.3 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

quantized_mesh_encoder-0.4.3-cp39-cp39-macosx_11_0_arm64.whl (200.6 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

quantized_mesh_encoder-0.4.3-cp39-cp39-macosx_10_9_x86_64.whl (208.5 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

quantized_mesh_encoder-0.4.3-cp38-cp38-win_amd64.whl (209.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

quantized_mesh_encoder-0.4.3-cp38-cp38-musllinux_1_1_x86_64.whl (559.0 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

quantized_mesh_encoder-0.4.3-cp38-cp38-musllinux_1_1_i686.whl (540.4 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

quantized_mesh_encoder-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (547.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

quantized_mesh_encoder-0.4.3-cp38-cp38-macosx_11_0_arm64.whl (208.9 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

quantized_mesh_encoder-0.4.3-cp38-cp38-macosx_10_9_x86_64.whl (216.7 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

quantized_mesh_encoder-0.4.3-cp37-cp37m-win_amd64.whl (209.3 kB view details)

Uploaded CPython 3.7m Windows x86-64

quantized_mesh_encoder-0.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl (524.5 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

quantized_mesh_encoder-0.4.3-cp37-cp37m-musllinux_1_1_i686.whl (507.6 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

quantized_mesh_encoder-0.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (521.6 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

quantized_mesh_encoder-0.4.3-cp37-cp37m-macosx_10_9_x86_64.whl (217.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

quantized_mesh_encoder-0.4.3-cp36-cp36m-win_amd64.whl (218.7 kB view details)

Uploaded CPython 3.6m Windows x86-64

quantized_mesh_encoder-0.4.3-cp36-cp36m-musllinux_1_1_x86_64.whl (524.5 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

quantized_mesh_encoder-0.4.3-cp36-cp36m-musllinux_1_1_i686.whl (505.8 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

quantized_mesh_encoder-0.4.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (521.9 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

quantized_mesh_encoder-0.4.3-cp36-cp36m-macosx_10_9_x86_64.whl (217.0 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file quantized-mesh-encoder-0.4.3.tar.gz.

File metadata

File hashes

Hashes for quantized-mesh-encoder-0.4.3.tar.gz
Algorithm Hash digest
SHA256 00be53849a3bae3e23d2e1bd6e6fe138b751e077f05ff3bea2f00d982ad82a9a
MD5 0569bafeb295c0e3b59153628e7f8301
BLAKE2b-256 ef343dbc254748dbbbf9783870a696377b59daf5c98ff3c3aae6cf4e8eb6b47d

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 31368f0d47567225e454422fbc318b56abf83cfb0da7214c9e9c02054f47d035
MD5 373e1734fcebf577ee96f84adbff7276
BLAKE2b-256 4ff830070560115c668bb8891fdee1fd788651d7ac321c3cf59a52364b7324ba

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 78fc11247c984a67d9a96ecefd5e5423d59dcdf04129b10ca92023a705a07ab7
MD5 df03f8fef14ed31bcfd0e215b204c523
BLAKE2b-256 2c5902cc7996fdc4e3fea1819fe3b545e00a915756557e4869d8b0bb076a3a52

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 b4064f7167889278056d0607241055ff790d0d7daec966f8413a913546e0d9aa
MD5 fe8f85d736506e05857f709ed038238e
BLAKE2b-256 21f122947ca3622d7da6072bea45f69201a8921e5a40abde86e4fbed86e7235d

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ce024e4dd2eb1add11927523a3a95f21a14e2b199ee0c431e38f30195062a567
MD5 5f48c7304d0bd1ba006f1c907da778a7
BLAKE2b-256 41bfaf0b0992a19e0556a9d659f92cd2cee354bab23979455871e783acca6395

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 777f71b88d2f41ae942024ae733439ac82940594d3bdea8dd368bd621eae6f7a
MD5 2abe978b49f2a0f9f0f14866e4c7cc6f
BLAKE2b-256 a3ef334198f7a4f664d5e969a62126d6b03a7ee0dabb8bb219ea29c36398ca47

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f61520358df7fca36e18ccdb6f1909fb8ce023fcb4194d378402ea63ab09cb3b
MD5 5f5ebe0235375c1cbd9c7ab1573001dc
BLAKE2b-256 96792ebd747079826401ef8ff84fad39cbe48a8f6910844a42a46974a0dcbead

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d2fcd74733cbe344d7e8c366f0574c8883ba6193df7bad56faf3a7e84d627f2d
MD5 e7babcb742b36481c4370ea30e2e5ebe
BLAKE2b-256 1dc58a4d76ba365f9e9b3884e3a61aa080f0fac896cdf451ed0af60e6af76d33

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a8b98cb563fb1f2ad2d97308adb7c9459a74132a8203704da4c20f7f65d58ecb
MD5 d7d3448d072676abb1fb09cb17ab0673
BLAKE2b-256 533bc3876a4c65afd051e1ba0774abdb5bd5b9d88f2fbc91b026f434eff97c8b

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 aad1941ed331c1966dc176e6e86231c12f32364979a6ed987af77d54fe82ba0f
MD5 0da44872ac4cc9246ff81b3440a86e90
BLAKE2b-256 b4bc19f8885f9b8ff33032784ab89b7ff57698ea05ca475db56cc04030b34a49

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ddb6f46201678bb17939deaa8467bd6a63fba86225ec713a3e28e83e0653709
MD5 aa5d2eca85e3c748009665e303270ffb
BLAKE2b-256 c2ec3d284a8469ddd73a6426245a5b417e445df8ba28fc0ece6870cc51175e95

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0398233458e28c875d8bda81aab9514a51b475d45f7648485fa4c87315aa7c70
MD5 322669b61bfbc3d1d369d62d0ab4cc64
BLAKE2b-256 d12bc81f1ab948e62092b9fb8f34a51d0beb07315900502cc3df76db9d45a203

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6b5ae1f86d2a5e5a081cb224bc7691521fae2c741b213567f5cdcb55c444272f
MD5 fcea35c57f6cd66b0c147070c6a70d80
BLAKE2b-256 4ee2354ba4173860ad1466a45f5eda4e0fb9b41ab42221a88587916dd7f0ad71

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 055741bf941068949778a59f573e201b3abb22e8355a93adfa43a01b4b3281a9
MD5 708e2d43134df108e6469001f2cdcdf5
BLAKE2b-256 8ec41479fdcfa0d1a40432482b742c8a507e7905307d4c51ade0d239f5ef0758

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 eed667cf4a263d5d9ee1e7bc92a8c16a141c49a5c2238002899b71933dde760d
MD5 bf0d6132786269a49e526f56935dd0a0
BLAKE2b-256 e4a4b5e0b5c800a584fecaa4564d9556ea043d459893e57a73b3aafb01b36bf6

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 111a59b23e0ce92582d97c6ce0c0a7187decc10353ad2ee5d10ee97785963d1e
MD5 4f76ae6b689080054ac235c4192f3a53
BLAKE2b-256 9f2a02d11b02f86b9b5eabf0e02b317ea6adb61c7396e718d90b65bd1b26f642

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5e0f2dca2259ee4d75325a82c83fa65bc066f0f5ea56afb3f561bed9171c39b
MD5 41131cbab7ee21478d899945d352cb5e
BLAKE2b-256 368bdc4f03f3155c9ab2f8474ab85916c4c48e8de52a45893ea045d23ca8326e

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 baa6951cdd097f622ca330f8683431845a6e67a2a5665c027ba618b093e363bc
MD5 829ffd9694449bb65a984b18862f027b
BLAKE2b-256 42c4394b350a2eb597ece009a460b0816dac5267b6febda09e2edf82865a9834

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 407298d3e17d4aaa85223ed309f969dd94aeb76d13cc17565f2c3ff792a38f77
MD5 c35e7147f726acebb6177106b5b9939d
BLAKE2b-256 f709ccabf6d0427065032a30a1e697b07c8283054382bd5fe0e5fc4fa279c460

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fb62db3ec725188b48da7056cd82a1f60be1d3905e2765d2f6c90395839d8d02
MD5 2e3a31b5e3cff0df1066d8b8a81289a0
BLAKE2b-256 a5e7d4c92caa79a3d1d0f2790e549c0fc12b08c3b8f94b0e73ad3f0c7ed45b79

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ac0f728c323b29bb15f9d5e6599bfef249c4464766e8cb1c349927d377b98aa9
MD5 06d2dfebac5eabfc07be329231845cf6
BLAKE2b-256 c9a701d02c8d91c660938524397b1b8b999e64936585d91d8dc2b512c6158b11

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 14d345cd10fff6ad648951536d0505ce578f6c8dac18d24edadb51c370164e4e
MD5 57fe8b2dde68106e7e6b49f19c2a5e1e
BLAKE2b-256 242ac55542f5f07a88469d2bd04be470d870d19403d2336418919907ded18869

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 759c6491a74bfe2fecacc89da3b5b538c7035f032c57291ec34a5e7903a46170
MD5 e002a45ed3ed8dcaa722918fd30e034c
BLAKE2b-256 6c05c6b11821d32448f4ef1a2df4de99b1f64dd8ab8ad49e21a2a104b6e96faa

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f09a399cf73734407eaa8d995d6b963f95358394b482aa8255430c0fd21caa8e
MD5 b9483ae86871d6e5d53ca26a4d44567f
BLAKE2b-256 e38fa2a26a5b1e14df1adf5c1e72bb708aa229bc939d13b6e38361f3433542bd

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fa9d59d51cfb52897e9ec7ff5208f3b60fcc839c28b9cd60834509a856a222e8
MD5 3e813288a684433870c9818f05392287
BLAKE2b-256 209775ec796bf7626aa5ec4eb5f08abe9a150e8c9667127eeb56964f426bb8a9

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a93f10675ae206fbc19889574d9ca9048086807166766c4df878f1587e7f12ec
MD5 8bdecc27a8cdf8a0b0d1db18b960615a
BLAKE2b-256 83066575d262fc4d93ab514921c81c61f970bfe4beb8348c6414700c9f4a8904

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7b772ac3ad33c616994c1db2c7665f4d6109f9c35ee12c4e937260f6789d01d5
MD5 8a103062b50ea72005a020f7b8595a4c
BLAKE2b-256 46d3389f45e93cd5e18d5282cec3523903981a399f8374c47c0cc76f5c0a547b

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c204777ec0e95286162bb13af10e02f7fb3925aa5765b73ff5558a8decabe37c
MD5 179935a31a3b2981addb3f87afa87ed0
BLAKE2b-256 dbb50d232288a75399bb76b499a88099ada3f3e0124e38c51fd5f6bebae4a492

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04d0aa77f450265b36ff09f3014f47025b1b77acc6bd4674c69dee358663d7e3
MD5 ab505bbb9b9565357f37e966d99521e2
BLAKE2b-256 c79d01602aa7d7b0a018771823aabb0e0231d5cd2eb9b3b527a77de294dba9aa

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cd4838330996890baf201fd04792d31ccbd228587ec7b107ff2378c35cde729a
MD5 cc3b5e3819700579db6e0d4863139dc9
BLAKE2b-256 0411a9131d3f47bae27ff0c861cf65cfe1d4df4edfaf3a1ec3c372820daf83b3

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 13fd69e3d9a1eb45a51056dc95da61207bea8919ff147036b39efd8d1be6f605
MD5 52c99f80459b6c047cb9184f4bb88893
BLAKE2b-256 3aa6c324c55189ac2109fd620cb320d88f4e3553caa100afd9fa177d01ec999c

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ada2de645dfb51474ce37869bbe0dbe02a7db89a0119bf2135db338508f134be
MD5 de2dfead84f4ca18085be36686071ed1
BLAKE2b-256 8ab67397111ce609b165ee352b77b8025af499056007bba31f64df05475504d1

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp36-cp36m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 2f36f6c8f845c9bc19d9901c5d78b2ac89ea49341993e98787cdf992e26f3014
MD5 402ee7f6920e188ded7fb9590bb5137b
BLAKE2b-256 0f079766ee637e91fc0db5293f9b2d11d7a7cb855ff700f3a9dd9bc3672e7936

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bd7768042cff6fdd499e0c5a04aadcb7a03a7fc947d2880ddfa5a8ebee8aefa9
MD5 3eededeb6804f596415ae5c01c085594
BLAKE2b-256 5b0fd2071f304710ea01b3ce707a0815e51c6d0082551376ffe02d4815dc7fde

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.4.3-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.4.3-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3b30bf46c1276a6d0233b3b1c7b38dcbb021a5a0b2247a3fca936f93de8f234d
MD5 feda4f5a76016fd75b86d4fa47e5e212
BLAKE2b-256 dd84d2aaabd0856d9309ae2f4bddbfd89e1aed23a4390de430a2824b56152590

See more details on using hashes here.

Supported by

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