Draco is a library for compressing and decompressing 3D geometric meshes and point clouds.
The library addresses the challenge of efficiently storing and transmitting 3D graphics data, which can be large and bandwidth-intensive. Draco applies compression algorithms to reduce the size of mesh and point cloud geometry while preserving visual fidelity, enabling faster transmission over networks and reduced storage requirements. The tool provides both encoding and decoding capabilities, with support for deployment via WebAssembly and JavaScript for browser-based applications.
Draco suits projects that work with 3D models, point clouds, or mesh data where file size and transmission speed matter—such as web-based 3D viewers, game engines, or applications streaming 3D content. The library offers Emscripten-based encoder and decoder APIs for JavaScript environments, making it accessible to web developers. It includes support for glTF extensions including EXT_mesh_features and EXT_structural_metadata, and normalized attributes in the Emscripten encoder API. For production use, the project recommends pinning to versioned URLs when using the GStatic-hosted WebAssembly and JavaScript decoders to avoid transient errors from edge caching delays during releases.
Development activity shows attention to security and stability through regular bug fixes and security updates across releases. The project maintains CMake configuration files tested across Linux, macOS, and Windows platforms, supporting custom paths to third-party dependencies. Build configuration has evolved with refinements to compiler warning flags and assertion-enabled builds for debugging purposes.