gitmyhub

draco

C++ ★ 7.4k updated 1mo ago

Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.

A Google library for compressing 3D model files, meshes and point clouds, so they download faster and use less storage, usable from C++, JavaScript, and WebAssembly with integrations for glTF, Unity, and Maya.

C++JavaScriptWebAssemblysetup: moderatecomplexity 3/5

Draco is a library from Google for compressing and decompressing 3D geometric data. When you have a 3D model, such as a character in a video game or a product shown on a shopping website, the raw file describing every point and triangle in that shape can be quite large. Draco reduces the size of those files significantly, which means faster downloads, less storage space, and quicker loading times for 3D content on the web or in apps.

The library works with two types of 3D data: meshes, which are the connected surfaces that define the outer shape of an object, and point clouds, which are collections of individual points in three-dimensional space often captured by 3D scanners. For meshes it reduces file size by encoding the positions and surface details with controlled precision. Some quality is traded for smaller size, but the degree of compression is adjustable.

Draco integrates with glTF, which is a widely used file format for 3D models on the web. Many 3D tools and game engines already have Draco support built in or available as a plugin, including Unity and Maya. For web applications, Google hosts the decoder files on a public CDN so a website can load 3D content without bundling the decoder itself.

The library can be used from C++ directly, or through JavaScript and WebAssembly bindings for browser-based projects. There are also command-line tools for encoding and transcoding files. Plugins for Unity and other platforms are provided alongside the core library.

This is a developer-facing tool. Non-technical users benefit from it indirectly whenever a website or application loads 3D models faster than it otherwise would.

The full README is longer than what was shown.

Where it fits