BVC is the volumetric pillar of the Bitruvius Suite — built by the team behind TurboLEPCC and TurboSPZ.
Explore the SuiteSplats. Point clouds. One codec, at GPU speed.
BVC compresses the two formats 3D actually ships in — lidar point clouds and Gaussian splats — into lossless files smaller than the incumbents' lossy ones, then adds the axes they can't reach: GPU decode, browser decode, exact data.
Performance
Three numbers
that matter.
Every figure on this page is reproduced by committed benchmark harnesses on public test data, on two reference machines — a 24-core Intel workstation and an Apple M3 Max — producing byte-identical files on both.
billion points per second at scale
Apple M3 Max, 16 cores — the read dial of the same wire
our lossless file vs their lossy one
they degrade the data and still lose on size
faster reads on a single core — in a 34% smaller file
a 10.65M-point survey: ~4 s as LAZ, 16 ms as BVC flagship at scale
Head-to-Head
Same data. Same machine.
Smaller files.
Identical input, identical tiling, measured against the strongest implementation of each competing format — including our own Turbo line, which already outperforms the format owners' shipping libraries. Shorter bar wins.
Gaussian splats — bytes per splat (786K-splat capture, full color detail)
SOG and SPZ are both lossy — and only lossy. BVC is the only splat codec here with a bit-exact mode — and even that exact file undercuts SPZ's lossy one, so it beats SPZ without dropping a bit. The compact tier goes smaller still, at a declared fidelity. "Single-digit bytes per splat" headlines elsewhere require retraining the splat model — a different product category. Among encoders that compress what you already have, BVC leads at every fidelity point.
Point clouds — bytes per point (the exact files in the live race below — 1.06M-pt Autzen tile)
Head-to-Head Performance
Encode and decode.
Versus the field, on every chip.
Same data, same machine, same number of threads — point clouds on a 10.65-million-point survey, splats on a 786K-splat capture. Bars are single-core where the format allows nothing more; chips show what each codec does when given the whole machine.
On the GPU — end-to-end decode, million points per second
whole-file decode including all transfers · verified bit-exact on both stacks
NVIDIA RTX (Vulkan)
Apple M3 Max (Metal)
Where are the competitor bars? There are none — no GPU decoder ships for LAZ, LEPCC, SPZ, Draco, or the KHR_meshopt bitstream. Those formats were designed for serial CPU
decode (chained arithmetic coding, serial compressed streams), and a decade of GPU
hardware hasn't produced one: Draco's own tracker closed “Run Draco on GPU?”
without a path — GPU dequantization of CPU-decoded output is not bitstream decode —
and meshoptimizer decompresses on the CPU by design (its experimental GPU meshlet
decoder targets a different format, not the KHR bitstream). BVC is the only format
of the six designed for GPU
decode — and the only one with a shipping, bit-exact GPU decoder on both major
APIs. The empty column is the result.
In a renderer, buffers persist and decode runs at kernel rate — billions of values per second. Compressed tiles also move 2.5× less data over the bus than raw points.
Now in the browser — decode on the page's own GPU (WebGPU)
Resident decode, million points/s · output stays in GPU storage buffers (zero readback) · SHA-256 digest-gated byte-identical, all 214 Autzen tiles
The wire decodes on the browser's GPU in both Chrome (Dawn) and Safari (WebKit) — two independent WebGPU implementations agreeing bit-for-bit with the reference. Apple's unified memory runs it ~4× the NVIDIA readback-walled path. It's the same bytes proven identical across seven environments — x86, ARM, WASM-CPU, native GPU, and browser WebGPU on both vendors. No LAZ / LEPCC / SPZ / Draco / meshopt path decodes on the browser GPU at any setting.
And Gaussian splats, too — on the browser's GPU
Resident splat decode, million splats/s · hornedlizard 786K-splat capture (deg-3 SH) · SH-compressed GPU wire (22.6 B/splat) · zero readback · per-tile SHA-256 digest-gated + packed arena byte-identical to the CPU packer
The splat's entropy stage runs on the page's own GPU — channels and SH leaf indices land in GPU storage buffers a renderer reads directly (the codebook is sampled as a resident texture at shade time). Digest-gated byte-identical on both Apple Metal and NVIDIA. On Apple's unified memory the resident path beats the same-run WASM-CPU decode by 2.9× — more than the RTX's 1.1×, since there's no readback wall. The bit-exact tier decodes resident at 40.2 (M3) / 10.3 (RTX) Mspl/s. No SPZ / SOG / L-GSC path decodes a splat on the browser GPU at any setting.
Encode, too — faster than the full-machine CPU
read-dial GPU encode vs the full multi-core CPU encoder · byte-identical · 1.06M-point tile
Dashed line = full-CPU parity (1.0×). Both backends beat their own full multi-core CPU encoder, byte-identical — and the lead widens with tile size (M3 Max reaches 1.35× at 4M points). BVC is the only point-cloud codec that encodes on the GPU; every other format's encoder is CPU-serial.
Prove It
Race it yourself. Right here.
BVC against the field, live in your browser. A 786k-splat Gaussian capture, BVC vs Niantic SPZ — and a ~1.06M-point LiDAR scan decoded and rendered georeferenced: BVC crown (palette-256), the LEPCC fidelity class, vs Esri's LEPCC head-to-head. Same data, different containers; watch the size and the clock. Swap in the flagship or read-dial BVC lanes — or Google's Draco and the Khronos meshopt codec — from the dropdown.
The Moat
The volumetric format
built to decode on the GPU.
LAZ, LEPCC, SPZ, Draco, and meshopt were designed for serial CPU decode — a property of the file formats themselves. No implementation can fix them; for LAZ, LEPCC, and SPZ we built the fastest decoders in existence and hit each format's ceiling personally. BVC is what you design after that: a wire format whose decode splits across CPU cores, browser threads, and GPU workgroups natively — the only one of the six with a shipping, bit-exact GPU decoder.
Start-to-finish GPU decode
A real BVC file decodes end-to-end on the GPU — including the entropy stage every competing format must run on a CPU. Verified bit-exact on both major GPU ecosystems: NVIDIA (Vulkan) and Apple (Metal). In a renderer, decode runs at kernel rate — billions of values per second.
2.5× less bus traffic
Compressed tiles move 2.5× less data across the bus and through GPU memory than raw points — the multiplier that decides how many assets stream at once. The incumbents cannot run this experiment at all.
A 258 KB browser decoder
The same decoder ships for the web: 258 kilobytes of WebAssembly, SIMD-accelerated, both profiles. The same file serves archive, server, browser, and GPU — no transcode step anywhere in the pipeline.
One wire. Every operating point.
Maximum compression, fastest reads, fastest writes, or fully GPU-native files — every trade-off is an encoder-side dial recorded in the file. One format, one decoder, the whole frontier. The GPU-native dial costs just 7.7% over maximum compression.
Why the other five can't follow
Each incumbent decodes its bitstream with a serial primitive — a coder whose next symbol depends on the state left by the last one. That maps to a CPU core, not thousands of GPU lanes. They can dequantize or rasterize already-decoded points on the GPU; the decode itself stays on the CPU.
KHR_meshopt_compression attribute stream, decoded on the CPU by design. (meshoptimizer's GPU meshlet decoder targets a different bitstream.)GPU dequantization or rasterization of CPU-decoded points is not bitstream decode. No shipping or experimental GPU decoder of these five bitstreams exists as of July 2026 — BVC is the only one of the six that runs the entropy stage on the GPU.
Data Integrity
Your data, exactly.
Or bounded — and declared.
The incumbents lose data silently — and offer no alternative. Esri's LEPCC posterizes color; on the industry-standard test cloud it altered 98.6% of all points. SPZ and SOG are lossy-only: SPZ quantizes on ingest and degrades every re-encode, like re-saving a JPEG; SOG's k-means SH compression has no lossless setting. BVC offers true lossless for both point clouds and splats — and where loss is chosen, it is a declared dial with a guaranteed worst-case error written into the workflow, never a surprise.
Bit-exact, everywhere
Every supported platform — Intel, AMD, Apple Silicon, WebAssembly, and two GPU stacks — produces and verifies byte-identical files, enforced by cryptographic hash gates in continuous testing.
Better custody than the source
Measured and committed: SPZ cannot round-trip its own files — every pass moves every color coefficient. BVC ingests once and never degrades again. It preserves SPZ content better than SPZ preserves itself.
Numbers that survive diligence
Every claim traces to a committed harness on public data. When a measurement flaw was found that flattered us, every published number was corrected the same day — and still won every column.
Coming Soon
Not a paper. A product.
Command-line tools
LAS/LAZ in, BVC out — one command, quantization metadata carried end to end.
SPZ converter
Round-trips real Gaussian-splat files with positions, opacity, scale, and color exact — 33% smaller on disk.
Browser package
The 258 KB WebAssembly decoder, with a MapLibre rendering SDK in active development.
GPU decode library
Both profiles on Vulkan and Metal, parity-locked against the CPU decoder.
Bounded-accuracy dials
Survey-grade tolerance controls: centimeter-bounded geometry, declared color precision.
Language bindings
Python, Node, JVM, .NET, and C — one core, every runtime.
Access
Free decoder. Paid encoder.
Ahead of general availability, BVC is onboarding a limited cohort of design partners — teams whose workloads match the codec's strengths: petabyte-scale lidar archives, streaming 3D platforms, Gaussian-splat pipelines. Participation is by application and qualification, and includes direct engineering access and a voice in the roadmap.
Decoder
Free
Anyone who needs to read BVC-encoded data can pull the decoder from the Bitruvius Developer Hub — desktop, browser, and GPU. Compiled binaries for every supported platform; no source. The adoption flywheel is intentional.
Encoder + Decoder
Commercial license
Production encoding requires a paid license. Tiers, seats, transactions, and OEM redistribution are listed on the pricing page. All artifacts are compiled binaries.
Compiled-only distribution is intentional: it keeps the patent-pending novelty out of source and protects implementation IP across the supply chain.
The volumetric format
the GPU was waiting for.
The incumbents' speed limits are wire-format facts — fixing them means breaking every existing file. Any response starts from zero, years behind, against a moving target. Early access is limited and by qualification.
Esri, ArcGIS, I3S, and LERC are trademarks of Environmental Systems Research Institute, Inc.; Niantic and SPZ are trademarks of Niantic, Inc. / Niantic Spatial, Inc. These names are used solely to identify the products and formats being compared; no affiliation, sponsorship, or endorsement is implied. The live demos run Esri's unmodified LEPCC reference decoder (Apache 2.0) and Niantic's unmodified libspz reference decoder (MIT) under their respective licenses, alongside laz-perf (Apache 2.0). Benchmark data: the Autzen Stadium LiDAR scan, the openly distributed benchmark dataset popularized by the PDAL project, and sample capture scenes © Niantic from the open-source libspz repository (MIT). BVC is an independent Bitruvius format and implementation. Performance comparisons reflect our own measurements under the stated methodology; results vary by workload and hardware. Full third-party notices: Attributions.