VTKHDF — VTK in HDF5
VTKHDF packages VTK datasets inside HDF5 containers and includes first-class support for temporal (time-series) data.
Overview
VTKHDF is an HDF5-backed storage convention for VTK datasets and metadata. It leverages HDF5's self-describing layout, chunking, and compression to store large scientific datasets efficiently. VTK provides readers such as vtkHDFReader that understand the format's conventions.
Temporal / Time-Series Support
VTKHDF explicitly supports time-series: a single VTKHDF file can contain multiple timesteps and a compact table of time values. Implementations commonly use either a shared mesh with per-timestep attribute arrays or per-step groups that contain full dataset entries for each timepoint.
- Per-step groups or centralized time arrays let readers present timelines and seek frames efficiently.
- Time-varying attributes may be stored separately from static geometry to avoid duplication.
- HDF5 features (chunking, compression, partial I/O) are especially useful for large time-series where only subsets of data or timesteps are accessed.
Practical Recommendations
- If the mesh is constant across timesteps, store geometry once and keep only time-varying arrays per timestep.
- Adopt consistent naming and grouping conventions so tools and scripts can programmatically iterate timesteps and fields.
- Choose HDF5 chunk sizes that match your access pattern (per-timestep reads vs. field slices) and enable compression where appropriate.
Interoperability
VTKHDF files are readable by VTK's HDF readers and by tools that understand VTK conventions inside HDF5. When using VTK compiled to WebAssembly, VTKHDF files can be read client-side if the runtime provides the needed I/O, or the files can be streamed by a server for browser consumption.
Current VU-VERSE Support
VU-VERSE currently supports VTKHDF datasets where the mesh geometry is constant across timesteps (time-varying data is provided as per-timestep attribute arrays). This simplifies memory usage and I/O and is the most common case for many simulation outputs.
Planned: support for fully time-dependent meshes (where topology or vertex positions change between steps) — common in CFD / OpenFOAM and fluid-structure simulations — is on the roadmap and will require additional reader logic and UI handling to manage mesh updates efficiently.
See Also
Official VTKHDF specification: VTK: VTKHDF specifications