DracoPy
Python wrapper for Google's Draco Mesh Compression Library
What it is and what it does
DracoPy wraps Google's Draco mesh compression library to compress and decompress 3D mesh geometry in Python. It reads and writes Draco-encoded files (.drc), supporting both triangle meshes and point clouds. The library lets you control compression trade-offs through quantization bits, compression level, and quantization range, making it useful for applications that need to reduce 3D geometry file sizes while managing precision loss.
The package ships with prebuilt wheels for modern Python versions on major platforms, though source builds require a C++11 compiler. It has no runtime dependencies beyond numpy and is actively maintained with a stable API.
Use it for:
- Compress 3D mesh models for storage or network transmission in graphics and CAD applications.
- Decode Draco-compressed geometry in web-based 3D viewers or game engines that use compressed assets.
- Reduce file sizes of point cloud datasets from 3D scanning or LiDAR capture.
- Batch-process mesh files with tunable quantization to balance compression ratio and geometric fidelity.
- Integrate mesh compression into data pipelines for 3D reconstruction or photogrammetry workflows.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
DracoPy is a Python wrapper for Google's Draco mesh compression library that encodes and decodes 3D mesh data with optional quantization and compression.
Yes. DracoPy is a stable, actively maintained wrapper around a widely-used compression standard with no security vulnerabilities, permissive licensing, and prebuilt wheels that minimize install friction. Install it if you need to compress or decompress 3D mesh data; the medium friction is offset by broad platform support and a straightforward API.
Install
dracopy on PyPI
pip
pip install dracopyuv
uv add dracopypoetry
poetry add dracopyInstalling DracoPy
Before you install
Medium install friction due to compiled C++ components, but prebuilt wheels are available for Python 3.10–3.13 on macOS, Linux, and Windows. Repository is actively maintained with recent commits.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions.
Quickstart
pip install DracoPy
import DracoPy
with open('bunny.drc', 'rb') as draco_file:
mesh = DracoPy.decode(draco_file.read())
binary = DracoPy.encode(mesh.points, mesh.faces, quantization_bits=14)
Requires numpy; source builds need a C++11-compatible compiler.
Verify before relying
- Whether numpy is automatically installed as a dependency or must be installed separately.
- Performance characteristics (compression ratio, encode/decode speed) for typical mesh sizes.
- Support status for Python 3.14 (listed in classifiers but not in wheel evidence).
Package facts
| License | Apache-2.0 (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 276 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 304,758/month — #7,802 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dracopy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl; dracopy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl; dracopy-2.0.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; dracopy-2.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; dracopy-2.0.0-cp310-cp310-win32.whl; dracopy-2.0.0-cp310-cp310-win_amd64.whl; dracopy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl; dracopy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl; dracopy-2.0.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; dracopy-2.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; dracopy-2.0.0-cp311-cp311-win32.whl; dracopy-2.0.0-cp311-cp311-win_amd64.whl; dracopy-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl; dracopy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl; dracopy-2.0.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; dracopy-2.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; dracopy-2.0.0-cp312-cp312-win32.whl; dracopy-2.0.0-cp312-cp312-win_amd64.whl; dracopy-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl; dracopy-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
fast-simplificationSimplifies 3D meshes by reducing the number of…
permissive · top 15,000 on PyPI
open3dOpen3D provides data structures and algorithms…
permissive · top 5,000 on PyPI
open3d-cpuOpen3D-cpu provides CPU-based 3D data…
permissive · top 15,000 on PyPI
numpy-stlReads, writes, and modifies STL mesh files…
permissive · top 15,000 on PyPI
plyfileplyfile reads and writes ASCII and binary PLY…
copyleft · top 5,000 on PyPI
meshioplusplusmeshioplusplus reads and writes mesh files in…
permissive · top 15,000 on PyPI
meshioReads and writes mesh files in dozens of…
permissive · top 5,000 on PyPI
build123dbuild123d is a Python CAD framework for…
permissive · top 15,000 on PyPI
pyjpeglsEncodes and decodes image data using the…
permissive · top 15,000 on PyPI