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.5.0.tar.gz (179.4 kB view details)

Uploaded Source

Built Distributions

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

quantized_mesh_encoder-0.5.0-cp313-cp313-win_amd64.whl (251.7 kB view details)

Uploaded CPython 3.13Windows x86-64

quantized_mesh_encoder-0.5.0-cp313-cp313-win32.whl (239.0 kB view details)

Uploaded CPython 3.13Windows x86

quantized_mesh_encoder-0.5.0-cp313-cp313-musllinux_1_2_x86_64.whl (686.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

quantized_mesh_encoder-0.5.0-cp313-cp313-musllinux_1_2_aarch64.whl (666.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

quantized_mesh_encoder-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (684.3 kB view details)

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

quantized_mesh_encoder-0.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (673.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

quantized_mesh_encoder-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (251.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

quantized_mesh_encoder-0.5.0-cp313-cp313-macosx_10_13_x86_64.whl (258.1 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

quantized_mesh_encoder-0.5.0-cp312-cp312-win_amd64.whl (251.9 kB view details)

Uploaded CPython 3.12Windows x86-64

quantized_mesh_encoder-0.5.0-cp312-cp312-win32.whl (239.2 kB view details)

Uploaded CPython 3.12Windows x86

quantized_mesh_encoder-0.5.0-cp312-cp312-musllinux_1_2_x86_64.whl (692.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

quantized_mesh_encoder-0.5.0-cp312-cp312-musllinux_1_2_aarch64.whl (671.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

quantized_mesh_encoder-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (692.5 kB view details)

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

quantized_mesh_encoder-0.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (682.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

quantized_mesh_encoder-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (252.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

quantized_mesh_encoder-0.5.0-cp312-cp312-macosx_10_13_x86_64.whl (259.2 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

quantized_mesh_encoder-0.5.0-cp311-cp311-win_amd64.whl (251.3 kB view details)

Uploaded CPython 3.11Windows x86-64

quantized_mesh_encoder-0.5.0-cp311-cp311-win32.whl (239.2 kB view details)

Uploaded CPython 3.11Windows x86

quantized_mesh_encoder-0.5.0-cp311-cp311-musllinux_1_2_x86_64.whl (696.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

quantized_mesh_encoder-0.5.0-cp311-cp311-musllinux_1_2_aarch64.whl (682.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

quantized_mesh_encoder-0.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (691.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

quantized_mesh_encoder-0.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (686.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

quantized_mesh_encoder-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (252.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

quantized_mesh_encoder-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl (258.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

quantized_mesh_encoder-0.5.0-cp310-cp310-win_amd64.whl (251.6 kB view details)

Uploaded CPython 3.10Windows x86-64

quantized_mesh_encoder-0.5.0-cp310-cp310-win32.whl (239.6 kB view details)

Uploaded CPython 3.10Windows x86

quantized_mesh_encoder-0.5.0-cp310-cp310-musllinux_1_2_x86_64.whl (668.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

quantized_mesh_encoder-0.5.0-cp310-cp310-musllinux_1_2_aarch64.whl (656.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

quantized_mesh_encoder-0.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (664.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

quantized_mesh_encoder-0.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (660.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

quantized_mesh_encoder-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (253.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

quantized_mesh_encoder-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl (258.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

quantized_mesh_encoder-0.5.0-cp39-cp39-win_amd64.whl (252.3 kB view details)

Uploaded CPython 3.9Windows x86-64

quantized_mesh_encoder-0.5.0-cp39-cp39-win32.whl (240.2 kB view details)

Uploaded CPython 3.9Windows x86

quantized_mesh_encoder-0.5.0-cp39-cp39-musllinux_1_2_x86_64.whl (670.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

quantized_mesh_encoder-0.5.0-cp39-cp39-musllinux_1_2_aarch64.whl (659.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

quantized_mesh_encoder-0.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (666.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

quantized_mesh_encoder-0.5.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (662.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

quantized_mesh_encoder-0.5.0-cp39-cp39-macosx_11_0_arm64.whl (253.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

quantized_mesh_encoder-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl (259.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file quantized_mesh_encoder-0.5.0.tar.gz.

File metadata

  • Download URL: quantized_mesh_encoder-0.5.0.tar.gz
  • Upload date:
  • Size: 179.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for quantized_mesh_encoder-0.5.0.tar.gz
Algorithm Hash digest
SHA256 8b2e133dde20ae81a727445c28f47f303c2126f3b0915e19f0c8ef88710bef40
MD5 231cafdcdc999b18278ed8e3ee5aedce
BLAKE2b-256 70a39a9518d514a7561f2caa37b4004d8ccc1512fb070cc4411bc2c5299ff4c5

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4a040eec4f6344cd994fea3ff9217a45e773e379a783484dc4dc34be7480b0df
MD5 e1d630248d09da111c46904490d9864c
BLAKE2b-256 933189c4da31a5516ed7636be4ee306a3e88eb49d361b35dea614e0b7ef91176

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 d724e70663d9c2cc879bbeae1eb633cb30a6975c3a9e37992652d4a02112a08c
MD5 5e133f27b2b169338ce5f3f7e11b79a9
BLAKE2b-256 351abceba85b4eba9b370936fde1bcd186d96fdc18262ad2de6971fa1fad6cac

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2faf3ce4ef92d2cefe4b1b3c71bb89f4f1817f624b24fba3cbdb1e12c86ec092
MD5 775df33ad21e4bb044efae6cdce1b9f1
BLAKE2b-256 b9b33717f502b558f8501b08788431df709b89c8129f4a905ca3358972bb8ab1

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e120b2222d1470ca75293163dbe2cec133c8c9b39cfb664fd037001bb51c84c5
MD5 3ab6e22757cfb53a9d54d1cd3040ffee
BLAKE2b-256 f4167b57c32a72c9b259c42ba9ba0f95519cf57ff2af6456c0c306be20beb0e4

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b7e9c9836b3d55868831cfe96071b1c5246e8fbe79b43788074d7d97d2f19191
MD5 7b5e4a19f2ed56b29d31f67326fc999b
BLAKE2b-256 5fc7b5adababce5eebb15b742268d6e1d4d33a90486778b9967e58c368a77722

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e01ebcc62a4e20cb90e0a327e8c1e5586bdbae4a34b9fb28b56cdc06c322a16c
MD5 af1afad44172f4cb3e208b071da9927f
BLAKE2b-256 4e12cd8ce250ea25e747a823e30cdadf98b8bcee11bc6a8cd31706bfcb8174c2

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 125a6a00a81c7ab9705f00aabcc4c1d378fe5cdc8fccab55f5f6406ba6a09c92
MD5 451da2944dd6ad340ecc7d3b25f73cee
BLAKE2b-256 e9bf8f8bc658d579f44a6b6f892228f8e3158c40ee14be855e0aa33c7d0094bb

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7927a00b6bb5fa64800f4641afe9519703795458b611d580e9d9f00d7c9013fa
MD5 07656280bb6e5cc9a644c11849a1bbf1
BLAKE2b-256 f995f8884d17c5938961f9850ac3a88090e61cc458218089980938bf814aa600

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b14a33ecc2fc807886804652d208c150fd660c0c5bbaa9bda682f6811ab9769d
MD5 58606fee48065fc2f3a53110cec13826
BLAKE2b-256 042bffb05ea735c97639defe8e132020a4763e58c14b0ff6ea8eb86af006f25b

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 0f321e218f353a64fee6a843c6adc6eb04bb0ff91a09b70a88bb4dcb09db4970
MD5 5e34c1b69f0da32a745c421803ae3dd2
BLAKE2b-256 aa82a46c55ccab5c855bf1d1321ec756c805373538f7ab8c2d4360e108b23ccd

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 86f297df7406218b03f733414bb431af2d914cd90330b20e10ae222bca1a42a3
MD5 936d0dc63917efc1264411f163cda9c3
BLAKE2b-256 d4e69ac0b776202e5b368a7866ff17f31e52a0b1d33d7b16fb94c00f9827761d

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9fcb50cfecc589bb49ad09768969cab203c1cc1de3c17e8f5a24ea5c51e49459
MD5 32879aad576be6c669c2aaa90c0454ea
BLAKE2b-256 b66839c7867b03fb258dc4d1f9e2567a98bdf540c50bdecaf3122c74412b550a

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c580b7188d4444d2abc8737dbb8b122ec7cf1b1f2824e8b7c703f4f966f900e4
MD5 8c180ae2373d9339beaf9cda0e2d1524
BLAKE2b-256 7dd9dc5fa5d478248e655c1e6fa985ff914458da78b18a89d47496fa2ee06564

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9bdd185cb3e8df7fb7ef7c27086f0661d51e0e84f682c2ae761282db440b19af
MD5 064cd21ec318bcb58c3c561270c65d61
BLAKE2b-256 8d746ee7d0f92f149961d75b7374e8c25f923894c4bd798db927052e0b435d4d

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d99878a9d94b344b7adcd2a2d45a54f3a9ddddc7a66b0bd1c0824c158807192
MD5 6cb43d70d055625a01401b3c22987bdd
BLAKE2b-256 48a47ea859fe26b973540d37af1e2182781d721d6e9f3de6d563b04388233400

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c464cb5cd52064ef7f87f9b2e64972c4113cba3eeef0381f5929dfaad52f36e9
MD5 43e8e29f1ce35538c2153bd24c99531e
BLAKE2b-256 ffab8813abbdf4039dce39b642d826289298daf60a5cfbceeeb015020fdc2f5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 150053cc2cfb35f7242b6903b8289c5ad77181d3c87af68554ecc14267514448
MD5 15073a368c816849cf2308feaf1d2919
BLAKE2b-256 68d53f8ba751c1a3d4c960204de9ef876c4fb38a87ca0873c6caccf36a27b352

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 b7a281c0111fbd60479157bfa69793c6edd564a562dbc11eb4ada1c0de7bb249
MD5 fb426b16fa76041babd259bd2901c64d
BLAKE2b-256 f3f93c652770f0047cad461236fbb7681a485d37ab748bf7017332337f17f381

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7f9d34ed5a04cb5a63e43574d9d7b3d95011eeb9d759448bda6b04729ea13c43
MD5 10e9feefccf4e23be1b71fcc29bdb5cd
BLAKE2b-256 5b34a0fa45f41ea0f00955594d31de6424f13eac7af9783dbe164a629d6fe477

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 90fc7c3e201808fb9abcf3149801c57ad114e9036d40056fbeeba81afa8f8bcf
MD5 c0e10aa499d19c9e5d693384efb5e29b
BLAKE2b-256 d75498a03fd588d5d6f05ae43af986c9e15e7e466313f3cc2d9a5ed9000d2d03

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bba116a350e23e5063122f59d670048184aca8e9ebc53c55b6234efed8140054
MD5 d55a4167e1b732acdceeccffa6d10c1a
BLAKE2b-256 6c01290d20cfa91fb9e9299aa6d1d67904e00fce03370820ed07586d27181c8e

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7bdff31bbfc9863ef4affa1d3f33f9943f4fcaf94edb95f5ce7b80c0d0247901
MD5 93ed8cb3608b36baec9c1df2e6cad898
BLAKE2b-256 92c07918d76cdda69ace99ef75cb83f25804ecb91cac43d56d3d6c578fe3951f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c790f03a0c94c08f852ba3b99ee453a9d0a46d9ba359c5deb2da956af952d194
MD5 b76c7fad82b1a1be2b50c05f10303596
BLAKE2b-256 5b1f6ac2693e892b009d0df86eed53b1c7fc24b6da57a90efdb718a7a343a90b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8e60f595167d0f803f9eadd63924e6fe33144839d08068fd590789f184f5fc17
MD5 8bbce7bfb4335639e9579be990095958
BLAKE2b-256 f733a01485d64dfcdf17058a9222a38b50452a3dbed49eafb480053e55687d91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 246900747859d7e5c268856469b7fb8c8b59e7ddff86addec0562446e07f2e5e
MD5 43757fb9610083bd7776ed0805c08de1
BLAKE2b-256 a9dfb2d217e31a2c95713495182beee731ea5c22c787dc0bf9794ea13ff3152b

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 0035ff2b4ca351747084915c6311b8b9c2cedc4be8af2b5593ad32ca276aac12
MD5 4394f1e350b7d077c78c19f75038f16c
BLAKE2b-256 14a1b77c56fe6f18a3708c8a4d4ea546e6a3622e11ac5b2c4687586530574387

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8a5c0dac46d20dffeabeb1739037972aed5d8fb00eabb21c17705f680aeae900
MD5 d56624f8ce378fc2223cbf7242d03091
BLAKE2b-256 8faf7b6e3438f211744b232f7046de62543f925e5c205647703f33699a3ad5c6

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0246113c039c9d0a5b8eeadfc83674b3f3ec27c436d609098b591ee34602f82d
MD5 a06518b9b26e271b3ad975d77ec8c9d8
BLAKE2b-256 47732307f5bcd6b7c992087e679127737328ca7fffce9bdf815cf0a9a1d8c45a

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 22978e97cb40fc01867d78dadc501dcf4dd19c0809367d851797f01fcf45e071
MD5 29ecc3f0a66d4be6deaa1cc21f5a2249
BLAKE2b-256 a848a8bb1750e43ae6b20d140cd30ec53d43280a5a8283ef2ad361eda748007c

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 839de0fd006e79c6e27cb53c50ac46afae79b81786d1dc71570776957a259acf
MD5 7d5aa596323ca28c239cf630bbe7d1c1
BLAKE2b-256 a68fc5467e538efbad5a14247635ecd722a7d415e4745d9d3c5d3c650f583bf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49412ce36a9f5314b245eab814f0ac4e6f3284d0061561ce83cd7f36eaf91eb9
MD5 a8ad2230e781fd8aab3766a019ca823a
BLAKE2b-256 3cbc7055496305345eccefe213da13392396ca99ea3f28df369ba6d3a9f00527

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8e6461ec94d067f2cfe25c7eee98ef4ccda3242de7b1c2272f07d698cb64a7d7
MD5 cae2363565cbc00256931fe26416044b
BLAKE2b-256 f24e0e67f410d7507d121165cdb5089fc677efd687c56da9a62fddbcb4d34d7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 fc350b12f383fd68727f422df4482fd8580d97ff0f2287953d21ab08f1dc07dd
MD5 2c941e6bd65d3ccf8eba2cfe13daa1c6
BLAKE2b-256 c885558d756b30211b4af6cc235d1eabfddda59b80f2c1fd60e309f3bbd5bb26

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp39-cp39-win32.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 21ab1e99bd1facc0a7b53d7e2d34d566631ab9674fd0deea4d05c9d281de9b05
MD5 c35d50a62cb14051bcba869b8bdbc90d
BLAKE2b-256 b93b85126cfa2f856435a8ec8b049f533a2822b506964aaf339970170dd07b4a

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 da8d485ac244e2e5054837ae993c4ed3a2c0707da38f404fee8e758d688172aa
MD5 b82c4231e23fc19425925fb48e4b3f04
BLAKE2b-256 a1f2bd6ad21f1b4f321108c4d86da8a183302dc192d7bb2a8b55ee47d077ff3b

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 71d9aa52cb6158b5a3ae8b540da892f89a646e3b7e0698fc6bb000299216ecf4
MD5 bd4a05276bd4dc35552c6ff7e13135fc
BLAKE2b-256 91e6b5217dbdfe13dddc7b923eece495eea9d0ce7f0a047ca6fc0e5049176150

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9a26660897e910c2d4a9a961ff0e7a4ad09a36012d04e3177663f131bb63e5f7
MD5 fed9919c292ab783ef23f4e48874bc05
BLAKE2b-256 37fe8850abcb1b091f2ddd28dde315717e2262b1609a5c089c219e747b134521

See more details on using hashes here.

File details

Details for the file quantized_mesh_encoder-0.5.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6483c5b58e89109aa651263c7282ad4c18bbcd56f8be5ae22d1588704c5f3f17
MD5 31e7e4c8069978ce7f337fb6663a643e
BLAKE2b-256 4481ed8fff5bdb20b034ed630d60ad2ccdb75e8bc2a54f3279fd425e5403510c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6ad2ad8c1140e47b362343c52bf6cd21dbf871ff2d94a2dae0ecbd9d079fbf35
MD5 90025ef456e6d4019fcd0c84c303eca0
BLAKE2b-256 e78e1eae648216967693fe216eed08bf079d400904cc72e28ee715e62fa47c20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quantized_mesh_encoder-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d24ed90a0797b289c5e973fb08d4cd43f5c1acd15da513d85cad2c7310c6bc5d
MD5 61f22f520fb46c9b5b2e65e8ec0cdafb
BLAKE2b-256 186de7176b53051b794dc0fef3fa7f45ee304c141d6dcd0c85fbcc28d8c808d6

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