Benchmarks

Every published measurement, and how it was taken

A number is only useful if you can tell what was measured. These historical results name the data, the denominator or timing phase, and the build context. Test your own caches before choosing a setting.

Reference host
AMD Ryzen 9 9950X3D · 16 cores
Build
MSVC Release · AVX2
Measurement date
15 August 2026
Runs
Median of 11
one published frame
Source render of a smoke plumeThe same smoke frame at Q50
Source · 4.0 GBQ50 · 341 MB
Activate Inspect pixels for 6× original pixels. Move the mouse, use the arrow keys or drag to move. Home recenters the loupe. Escape closes it.
Whole sequence
341 MB
file bytes
Ratio
11.8 : 1
source ÷ encoded file
Average per frame
≈ 2.05 MB
rounded size ÷ 166
Frame shown
1279 × 1193
original render pixels
One frame of a 166-frame smoke sequence. Drag or use the arrow keys to compare. Sizes are for the whole sequence.source ÷ file bytes · 15 Aug 2026

Original PNG renders. Difference maps are image-space comparisons in sRGB, not voxel error metrics or quality scores.

Source VDBs, encoded volumes and Studio reports are not yet published.

Measurement ledger

All results, with their scope

Ratios and timings that describe different things stay in different rows. These are measurements of the listed historical workloads, not current-build or whole-render performance promises.

Historical VQField benchmark measurements
FigureValueDataDenominator or phaseHost · build · commitDateKind
Size ratio at Q703.9 : 1Smoke plume, 166 frames · realsource ÷ encoded file bytes9950X3D · MSVC Release / AVX2 · revision not recorded in published table15 Aug 2026Measured
Size ratio at Q5011.8 : 1Smoke plume, 166 frames · realsource ÷ encoded file bytes9950X3D · MSVC Release / AVX2 · revision not recorded in published table15 Aug 2026Measured
Size ratio at Q30109.4 : 1Smoke plume, 166 frames · realsource ÷ encoded file bytes9950X3D · MSVC Release / AVX2 · revision not recorded in published table15 Aug 2026Measured
Size ratio at Q20447.3 : 1Smoke plume, 166 frames · realsource ÷ encoded file bytes9950X3D · MSVC Release / AVX2 · revision not recorded in published table15 Aug 2026Measured
Size ratio at Q5014.81 : 1Production file, 4 grids · privatesource ÷ encoded file bytes9950X3D · MSVC Release / AVX2 · 6f072c615 Aug 2026Measured
Size ratio at Q5056.42 : 1256³ scalar field, 4,915 active blocks · syntheticactive FP32 bytes ÷ encoded bytes9950X3D · MSVC Release / AVX2 · 6f072c615 Aug 2026Measured
Prepare a sampler42.5 msOne-grid density file · privatesampler creation, once per file9950X3D · MSVC Release / AVX2 · 6f072c615 Aug 2026Measured
First sample, uncached block66 nsOne-grid density file · privateprepared sampler · 125 uncached blocks9950X3D · MSVC Release / AVX2 · 6f072c615 Aug 2026Measured
Sample from cache~9 nsOne-grid density file · privatewarm access · 8 MiB cache · approximate9950X3D · MSVC Release / AVX2 · 6f072c615 Aug 2026Measured
Q50 transfer at 1 Gb/s~2.7 sSmoke plume, 166 frames · real341 MB × 8 ÷ 1 Gb/s; no protocol overheadArithmetic from rounded published size15 Aug 2026Derived
Decode + VDB write, Q200.63 sSmoke plume · realincludes file read and VDB output; historical decoder9950X3D · MSVC Release / AVX215 Aug 2026Historical

The original sequence table did not record a source revision. Commit 6f072c6 identifies the separate block codec benchmarks only. The historical decode-and-write timing includes I/O and cannot be compared directly with prepared sampling latency.

Methodology

Read the figures on their own terms

Sizes are rounded for display. Ratios come from the published measurements, so dividing rounded sizes may give a slightly different result.

Denominators

File bytes: source .vdb bytes divided by encoded .vqfield bytes, as stored on disk.

Active FP32 bytes: four bytes per active voxel and channel. This denominator ignores the source file’s compression and metadata. The two ratios are not interchangeable.

Timing phases

Prepare creates the sampler once. First access reads a block that is not cached. Cached access reads previously decoded values.

These phases stay separate. An individual lookup benchmark does not measure a complete renderer or transfer pipeline.

Quality settings

Q is an encoder setting, not a percentage of the original. The same setting gives different sizes and errors on different fields.

Check rendered sequences, field errors and the downstream workflow together. A ratio alone is not an acceptance test.

Comparison images

These supplied renders are aligned views of the same frame. The 416 × 416 crops are from the area of greatest image difference at Q20.

Difference maps show per-pixel differences in sRGB. Orange starts at the selected mean RGB difference threshold, which defaults to 13/255. The viewer reports the share of plume pixels above it. Render noise can contribute to this difference.

A comparison with OpenVDB + Blosc or half-float storage requires the same source data and a separate measured baseline. No such comparison is claimed here.