Keep every version on disk
Archive wedges and iterations instead of deleting them. The same 166 frames at three settings, drawn to scale against the source.
VQFieldRandom-access compression for OpenVDB
VQField shrinks OpenVDB volumes and sequences, and lets Karma CPU, your tools or your own renderer read them in place. Each request decodes only the 8³ block it touches. When a tool needs a regular grid, decode back to standard .vdb.

Source · 4.0 GBQ50 · 341 MBHow a read works
A VQField file doesn't have to be unpacked before anything can read it. The field stays compressed in memory. A request finds the 8³ block that holds the voxel, decodes that block and keeps it in a cache whose size you choose.
Tools that expect a regular grid take the other path: decode every block once and write a standard .vdb.
Prepare the sampler, once per file.
First sample in an uncached block, in this benchmark.
Subsequent cached samples, approximately.
Try it
Point at the smoke. The renderer’s ray reads the blocks it passes through, stopping when the smoke becomes opaque. The rest stays compressed.

Interactive illustration loads as you reach it
What it's for
Every figure below comes from the published test sequence. Your data will land somewhere else on the curve, which is why a pilot starts with it.
Six ways to use a VQField cacheSwipe or use ← →
Archive wedges and iterations instead of deleting them. The same 166 frames at three settings, drawn to scale against the source.
Ideal transfer time for the sequence over a 1 Gb/s link. Less to sync to the farm, to the cloud or to another site.
In Houdini, Karma CPU reads the compressed field through the VQField sampler and decodes only the blocks its rays touch.
A seek replays the requested block from its nearest INTRA frame, within one group of pictures. Access stays bounded by the GOP, however long the sequence is.
Encode by quality, target PSNR or target ratio. Use Studio reports to inspect sizes and supported error metrics, then validate the renders for your workflow.
A C ABI with C++ helpers: open a file, prepare a sampler and read points, blocks or batches. No OpenVDB types cross the boundary.
Integrations
One engine behind three surfaces. Houdini, Studio and the SDK share the codec and file format, with different workflows around them.
Houdini · Studio CLI · SDKSwipe or use ← →
Encode and decode grids and sequences with nodes; Karma CPU reads compressed fields through the sampler. Current beta packages target specific Windows x64 Houdini builds.
$ vqfield encode input.vdb -o output.vqfield --quality 50 $ vqfield decode output.vqfield -o reconstructed.vdb $ vqfield encode-sequence "sim.%04d.vdb" --range 1001:1100 -o sim.vqfield --quality 50 --gop 8 $ vqfield inspect sim.vqfield --json
Headless commands for scripts: encode, decode, encode-sequence, decode-sequence, inspect, benchmark and report. Inspect and benchmark support JSON output; reports can include JSON artifacts.
vqfield_open_vqvdbvqfield_sampler_createvqfield_sample_componentsRead the API and lifetime rules A C ABI with opaque handles and C++ helpers. Point, block and batch sampling; full-grid reconstruction through the C++ codec and OpenVDB adapter.
Measured
A compression ratio means nothing without its denominator, and a latency means nothing without its phase. These are the rules every number on this site follows.
| Setting | Size on disk | Ratio | To scale |
|---|---|---|---|
| Source | 4.0 GB | 1 : 1 | |
| Q70 | 1.03 GB | 3.9 : 1 | |
| Q50 | 341 MB | 11.8 : 1 | |
| Q30 | 37 MB | 109.4 : 1 | |
| Q20 | 9 MB | 447.3 : 1 |
| Data | Denominator | Ratio |
|---|---|---|
| 166-frame smoke sequence · published | file bytes | 11.8 : 1 |
| Production file with 4 grids · private | file bytes | 14.81 : 1 |
| 256³ scalar field, 4,915 active blocks · synthetic | active FP32 bytes | 56.42 : 1 |
About
VQField is built by Enzo Crema. It is a runtime and file format for compressed fields that stay addressable: a renderer reads the blocks it touches instead of rebuilding the whole volume.
It grew out of VQVDB, the open-source research project presented at Houdini HIVE AI 2025. VQField uses a deterministic block-transform codec, with random access in space and time, a C SDK, a CLI and Houdini integration.
Pilot
Quality depends on the data, so we don't ask you to trust our sequence. A pilot evaluates VQField on yours, on your machines.
01
Grids, frame counts, Houdini version and what you want to improve: storage, transfer, render memory or scrubbing.
02
Confirm your platform, the right private build and data-handling terms. Nothing has to be uploaded.
03
Encode at a few settings and render the way you already do.
04
Sizes, supported error metrics and renders, with timings from your hardware.