Meshoptimizer is a C and C++ mesh optimization library, with interfaces for other languages via FFI. It helps reduce mesh size and storage overhead, and improves GPU rendering efficiency by optimizing vertex and index data, including algorithms for simplification and compression-related workflows.
Project status
- Actively maintained: Recent upstream push on 2026-08-08, and multiple tagged updates in 2026 (v1.2 on 2026-06-30, v1.1.1 on 2026-04-15, v1.1 on 2026-04-02) indicate ongoing work rather than a dormant project.
- Update cadence: In 2026 there were updates spaced roughly 2 to 3 months apart (v1.2 vs v1.1.1), plus a quick follow-on (~2 weeks) from v1.1 to v1.1.1, suggesting an active release rhythm for at least the current development cycle.
AI summary generated
Recent updates
v1.2
Release v1.2 adds a new experimental tangent frame generator (MikkTSpace-based but significantly faster), plus new experimental index filtering and cluster shared exponent helpers. It also substantially revises Intel/AMD vertex decoding (SSSE3+POPCNT) for a 20-45% speedup, and includes various smaller gltfpack and WebAssembly improvements.
Featuresv1.1.1
This release (v1.1.1) contains a set of internal correctness changes and output-behavior adjustments across the C++ core library, the gltfpack toolchain, and the JS/WebAssembly wrappers. There were no publisher release notes provided, so the code diff is effectively the only source of truth for what changed.
BreakingFeaturesv1.1
v1.1 adds two large experimental capabilities to meshoptimizer, a new meshlet topology codec (with optimized CPU decoding) and opacity micromap rasterization support for Vulkan and DXR. It also includes several smaller improvements, including meshlet optimization and simplification options, plus performance and correctness fixes across the library and related tools like gltfpack and the JavaScript build outputs.
Featuresv1.0
meshoptimizer v1.0 focuses on faster and higher-quality clusterization and improved cluster partitioning, plus additional stabilization work. The release also changes vertex encoding to use version 1 by default, adds demo library clusterlod.h, extends gltfpack compression to draft KHR_meshopt_compression, and updates JavaScript bindings to ES modules.
BreakingFeaturesv0.25
v0.25 adds multiple experimental mesh simplification capabilities (including update-aware simplification and permissive/regularize modes), plus new gltfpack features like WebP encoding (-tw) and permissive simplification (-sp). The diff also shows new encoding/decoding support for a color filter, along with expanded JavaScript and WASM exports.
Featuresv0.24
meshoptimizer v0.24 adds multiple new experimental mesh processing capabilities, including spatial SAH meshlet building for ray tracing, custom vertex remapping with user-defined equivalence, and new simplification and point cloud clustering utilities. It also improves several existing algorithms, including tighter bounds, faster partitioning, and more accurate overdraw statistics, plus some gltfpack performance and OBJ parsing enhancements. The code diff shows additional behavioral hardening and export-visibility changes that are not called out in the release notes.
BreakingFeaturesv0.23
v0.23 focuses on substantial improvements to meshoptimizer's meshlet and vertex/index codecs, including a new vertex codec v1 format with better compression and faster decoding. It also adds new experimental cluster partitioning and sphere bounds helpers for hierarchical workflows, plus several gltfpack and JavaScript packaging/typing updates.
BreakingFeaturesv0.22
v0.22 focuses on quality and efficiency improvements to the meshoptimizer core library (simplification, meshlets, provoking index buffers, and filter stability) and enhanced gltfpack output size/efficiency through geometry deduplication and improved quantization/simplification handling. It also adds a new JavaScript module, MeshoptClusterizer, for meshlet clustering and bounds computation.
BreakingFeaturesv0.21
Release v0.21 adds a new experimental meshlet optimization entry point, and extends meshopt_simplify with two new option flags for faster sparse-subset simplification and absolute error handling. It also updates the attribute-aware simplifier to support per-vertex locking via a new vertex_lock parameter, and includes multiple gltfpack enhancements around extension support and better texture/image handling.
BreakingFeaturesv0.20
v0.20 introduces new experimental mesh simplification capabilities, including meshopt_simplifyWithAttributes, and adds CPU dequantization support via meshopt_dequantizeHalf. gltfpack gains multiple glTF processing improvements (including texture copying for .gltf output) and the JavaScript bindings expand with new experimental simplifier entry points that require enabling experimental features.
BreakingFeaturesv0.19
v0.19 primarily improves meshoptimizer internals (performance and meshlet/simplification heuristics) and adds gltfpack options focused on preserving scene graph structure via -vpf and gap prevention via -slb. It also expands the JavaScript API by exporting MeshoptSimplifier and adding WebWorker-based support to MeshoptDecoder.
Features