# VTKHDF roadmap

**URL:** https://discourse.vtk.org/t/vtkhdf-roadmap/13257
**Category:** Development
**Tags:** file-formats
**Created:** [February 5, 2024, 12:33pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257 "2024-02-05T12:33:45Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![lgivord](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lgivord/32/3543_2.png) [@lgivord](https://discourse.vtk.org/u/lgivord)
#### Post date: [February 5, 2024, 12:33pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/1 "2024-02-05T12:33:45Z")

</div>

**THIS POST IS OUTDATED AND ONLY KEPT FOR HISTORIC PURPOSES**

Please consult the up to date roadmap here: [VTKHDF: Implementation Status - VTK documentation](https://docs.vtk.org/en/latest/vtk_file_formats/vtkhdf_file_format/vtkhdf_status.html)

=========================================================================

=========================================================================

=========================================================================

=========================================================================

=========================================================================

=========================================================================

=========================================================================

=========================================================================

The aim of this post is to summarize the current status of the VTKHDF File Format handles, indicate where supporting resources can be found, and provide a roadmap of what is planned for 2024 and beyond.

Additionally, a master issue has been opened [here](https://gitlab.kitware.com/vtk/vtk/-/issues/19243) to track any improvements and clarifications of the VTKHDF specification itself.

This post will be updated as we augment the format specification and improve the implementation.

In short, VTKHDF is a file format to store VTK data types in a HDF5 file. The up-to-date specification about this file format is [here¹](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#vtkhdf-file-format).

## What is currently supported with VTKHDF

### In the VTKHDF file format.

This format¹ specifies how to store the following VTK data types:

- [vtkPolyData](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#poly-data)
- [vtkUnstructuredGrid\*](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#unstructured-grid)
- [vtkImageData](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#image-data)
- [vtkOverlappingAMR](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#overlapping-amr)
- [vtkMultiBlockDataSet](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#partitioneddatasetcollection-and-multiblockdataset)
- [vtkPartitionedDataSetCollection](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#partitioneddatasetcollection-and-multiblockdataset)
- vtkPartitionedDataSet

\*: not all cell types are supported

The VTKHDF format also specifies how to store distributed and temporal data for most of these [VTK data types](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#transient-data).

### In VTK

VTK has a dedicated module⁶ `VTK::IOHDF` to read and write VTKHDF file format, it contains a reader named vtkHDFReader and a writer, vtkHDFWriter.

| types | serial | distributed | temporal (in one file) |
| --- | --- | --- | --- |
| vtkPolyData | ✅ | ✅ | ✅ |
| vtkUnstructuredGrid | ✅ | ✅ | ✅ |
| vtkImageData | ✅ | ✅ | ✅ |
| vtkPartitionedDataSet | ✅ | ✅ | ✅ |
| vtkPartitionedDataSetCollection³ | ✅ | ✅ | ❌ |
| vtkMultiBlockDataSet³ | ✅ | ❌ | ❌ |
| vtkOverlappingAMR² | ✅ | ✅ | ✅ |

vtkHDFReader supports 

Some types are specified and can be read, but some of them can not be written using vtkHDFWriter just yet. The types not listed here need to be written externally, using any library which supports writing HDF5 files.

  

| types | serial | distributed | temporal (in one file) |
| --- | --- | --- | --- |
| vtkPolyData | ✅ | ❌ | ✅ |
| vtkUnstructuredGrid | ✅ | ❌ | ✅ |
| vtkPartitionedDataSet | ❌ | ❌ | ❌ |
| vtkPartitionedDataSetCollection³ | ✅ | ❌ | ❌ |
| vtkMultiBlockDataSet³ | ✅ | ❌ | ❌ |

vtkHDFWriter supports

Note that a part of the vtkHDFReader is available in VTK 9.3.0 but most of these features are available on VTK master only.

### In ParaView

This VTK::IOHDF module is fully exposed in ParaView and an extractor has been added for the vtkHDFWriter, which is essential for in situ use cases with Catalyst.

## Roadmap

Few other features are already under development, discussion or planned. Some of them will be data type dependent like in this table:

| | PolyData | UnstructuredGrid | RectilinearGrid | ImageData | OverlappingAMR | PartitionedDataSet | PartitionedDataSetCollection | MultiBlockDataSet |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| vtkHDFReader: Distributed support | 🔵 | 🔵 | ⚪ | 🔵 | 🔵 | 🔵 | 🟠 | 🟠 |
| vtkHDFReader: Static mesh support\*\* | 🟢 | 🟢 | ⚪ | ⚪ | ⚪ | 🟢 | ⚪ | ⚪ |
| vtkHDFWriter: non-distributed support | 🔵 | 🔵 | ⚪ | ⚪ | 🔵 | 🟠 | 🔵 | 🔵 |
| vtkHDFWriter:Distributed support | 🟠 | 🟠 | ⚪ | ⚪ | 🟠 | 🟠 | 🟠 | 🟠 |
| vtkHDFWriter: iterative temporal writing | 🟢 | 🟢 | ⚪ | ⚪ | 🟠 | 🟠 | 🟠 | 🟠 |
| vtkHDFWriter: Static mesh support | 🔵 | 🔵 | ⚪ | ⚪ | ⚪ | ⚪ | ⚪ | ⚪ |

VTKHDF ongoing efforts in 2024 based on Data Type supported by the file format

Legends:

⚪ Future work  
🟠 Looking for funding  
🟡 To be implemented in 2024  
🟢 Currently being implemented  
🔵 Already done

\*\*: The VTK pipeline can reuse the mesh from another timestep if the correct key information is passed through and a special cache system is used with [vtkDataObjectMeshCache](https://vtk.org/doc/nightly/html/classvtkDataObjectMeshCache.html). For more details about this feature, see the following blog post about this topic⁷.

  

A few other features, not related to any specific data type, will be implemented this year:

- Add a `Misc` group under `VTKHDF` group to contain user data ignored by the VTK implementation of the file format.
- Support writing VTKHDF file in one file per block.

There are other features which may be implemented this year:

- Iterative temporal writing in vtkHDFWriter which means to append in the same file all requested timestep.
- vtkPolyhedron support for VTKHDF UnstructuredGrid⁵.

Last, we aim to create a benchmark this year to evaluate performance of the VTKHDF file format in an HPC environment.

## How you can help

If you are interested in the VTKHDF file format or the current VTK implementation, please don’t hesitate to try it out. Feedback is always welcome!

Finally, if some features that currently lack funding in the roadmap interest you, please reach us via the [Kitware contact page](https://www.kitware.com/contact/).

## Resources

Official up-to-date documentation¹ : [https://docs.vtk.org/en/latest/design\_documents/VTKFileFormats.html#vtkhdf-file-format](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#vtkhdf-file-format)

Related discussions:

- About vtkOverlappingAMR²: [link](https://discourse.vtk.org/t/overlapping-amr-support-in-vtkhdf/7868)
- About composite support³ : [link](https://discourse.vtk.org/t/composite-data-sets-for-the-vtkhdf-format/12190/10)
- About OverlappingAMR with temporal data⁴ : [link](https://discourse.vtk.org/t/vtkhdf-support-transient-data-for-overlappingamr/13123)
- About Polyhedron cell support in VTKHDF⁵: [link](https://discourse.vtk.org/t/vtkhdf-add-support-for-polyhedron-cells/13089)
- About temporal field data: [link](https://discourse.vtk.org/t/improve-fielddata-in-vtkhdf-temporal-format/13669)
- About splitted HDF5 files: [link](https://discourse.vtk.org/t/vtkhdf-proposal-support-splitting-datasets-in-multiple-files/13797)
- About rectilinear grid support: [link](https://discourse.vtk.org/t/support-for-rectilineargrids-and-structuredgrids-in-vtkhdf-file-format/14283)

HDF Module in the vtk repository⁶ : [link](https://gitlab.kitware.com/vtk/vtk/-/tree/master/IO/HDF?ref_type=heads)

Kitware blog post about the StaticMeshPlugin⁷: [link](https://www.kitware.com/staticmeshplugin/)

Repository containing python scripts to generate VTKHDF file or to convert VTKXML file to VTKHDF file: [https://gitlab.kitware.com/keu-public/vtkhdf/vtkhdf-scripts](https://gitlab.kitware.com/keu-public/vtkhdf/vtkhdf-scripts)

---

<div class="post-metadata">

### Author: ![lgivord](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lgivord/32/3543_2.png) [@lgivord](https://discourse.vtk.org/u/lgivord)
#### Post date: [February 5, 2024, 12:35pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/2 "2024-02-05T12:35:20Z")

</div>

cc @mwestphal @Francois_Mazen @berk.geveci @danlipsa @Louis_Gombert @Charles_Gueunet

---

<div class="post-metadata">

### Author: ![hakostra](https://discourse.vtk.org/user_avatar/discourse.vtk.org/hakostra/32/2990_2.png) [@hakostra](https://discourse.vtk.org/u/hakostra)
#### Post date: [February 5, 2024, 4:19pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/3 "2024-02-05T16:19:01Z")

</div>

Great roadmap, this is very useful. I have tried to follow the development of this format close, but the pace of recent development have been high and it’s not necessarily easy to hang on as an outsider. This overview is great, and I hope you manage to keep it updated. Maybe consider converting it to some “real” documentation together with the file format spec (under [docs.vtk.org](http://docs.vtk.org))?

Keep up the good work!

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.vtk.org/user_avatar/discourse.vtk.org/cory.quammen/32/6751_2.png) [@cory.quammen](https://discourse.vtk.org/u/cory.quammen)
#### Post date: [March 19, 2024, 1:57pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/4 "2024-03-19T13:57:13Z")

</div>

> [@hakostra](#):
>
> Maybe consider converting it to some “real” documentation together with the file format spec (under [docs.vtk.org](http://docs.vtk.org))?

Like this? [VTK File Formats - VTK documentation](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#vtkhdf-file-format)

---

<div class="post-metadata">

### Author: ![Arcadia](https://discourse.vtk.org/user_avatar/discourse.vtk.org/arcadia/32/8724_2.png) [@Arcadia](https://discourse.vtk.org/u/Arcadia)
#### Post date: [April 11, 2024, 8:57pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/5 "2024-04-11T20:57:45Z")

</div>

Hey there Lucas,

really great work! I love to see the activity in vtk to work with hdf5, especially for AMR and I am looking forward to use it for postprocessing our code.

From a user perspective, do you know how your changes will be included in releases further downstream? Changes in vtk Master probably with the next release (9.3.1 or 9.4.0, hopefully soon?). Will ParaView receive an updated vtkhdf reader after the vtk release or already with it’s own upcoming release?

For the future work I would love to see a hdf implementation of Treegrid / Hypertreegrid Data. I believe that coupling that with a hierarchical functionality for uniform grids as blocks within the Treegrid would greatly benefit many Block-based AMR codes for their visualization.

Greetings,  
Julius

---

<div class="post-metadata">

### Author: ![lgivord](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lgivord/32/3543_2.png) [@lgivord](https://discourse.vtk.org/u/lgivord)
#### Post date: [April 12, 2024, 7:08am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/6 "2024-04-12T07:08:28Z")

</div>

Hello @Arcadia,

Thanks! It’s always a pleasure to have user feedback.

Currently, few things in the roadmap are already merged in VTK and will be available in the next release of vtk (9.4) and paraview (5.13):

- static mesh support in the Reader/Writer for polydata and unstructured grid
- temporal OverlappingAMR (merged today in vtk!): we add support in the file format for temporal OverlappingAMR the spec updated is here [VTK File Formats - VTK documentation](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#particularity-regarding-overlappingamr). The vtkHDFReader can now open such type of data.

> For the future work I would love to see a hdf implementation of Treegrid / Hypertreegrid Data

Definitely! It would be nice but for now we don’t have funding to add support in the file format for HTG and in the reader/writer in VTK.

Best,  
Lucas

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [April 30, 2024, 12:58pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/7 "2024-04-30T12:58:11Z")

</div>

Added information about disitributed and partionedataset in the writer implementation.

---

<div class="post-metadata">

### Author: ![Nikolaos\_Beratlis](https://discourse.vtk.org/user_avatar/discourse.vtk.org/nikolaos_beratlis/32/8816_2.png) [@Nikolaos\_Beratlis](https://discourse.vtk.org/u/Nikolaos_Beratlis)
#### Post date: [May 1, 2024, 5:03am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/8 "2024-05-01T05:03:57Z")

</div>

Really great work. HDF5 is very useful and portable when working with large datasets.

I noticed that structured and rectilinear grids as implemented in legacy VTK are missing from the roadmap? Are they difficult to implement or not a priority?

---

<div class="post-metadata">

### Author: ![lgivord](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lgivord/32/3543_2.png) [@lgivord](https://discourse.vtk.org/u/lgivord)
#### Post date: [May 2, 2024, 7:07am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/10 "2024-05-02T07:07:57Z")

</div>

I don’t see any potential difficulty to support it as you said it’s because, for now, adding other VTK types have low priorities.

However, as the VTKHDF File Format aims to support all VTK data objects like what the XML format does, we should support it in the future (like for vtkHyperTreeGrid, vtkTable, vtkMolecule and so on).

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [May 2, 2024, 7:17am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/11 "2024-05-02T07:17:11Z")

</div>

I want to add that any dataset type not mentionned here is simply not supported by the specifications nor the implementation. Any of them could be added and implemented though! Feel free to reach out to Kitware!

---

<div class="post-metadata">

### Author: ![jorgensd](https://discourse.vtk.org/user_avatar/discourse.vtk.org/jorgensd/32/8861_2.png) [@jorgensd](https://discourse.vtk.org/u/jorgensd)
#### Post date: [August 14, 2024, 6:41am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/12 "2024-08-14T06:41:20Z")

</div>

Should the roadmap be updated post Paraview 5.13 release?

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [August 14, 2024, 8:32am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/13 "2024-08-14T08:32:14Z")

</div>

The roadmap is kept up to date with the status of VTK master and not related to the ParaView release, although some feature are present, or not, in ParaView 5.13.0.

Can you precise your suggestion ?

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [August 14, 2024, 8:37am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/14 "2024-08-14T08:37:54Z")

</div>

Added rectilinear grid support discussion link.

---

<div class="post-metadata">

### Author: ![Kenneth\_Moreland](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kenneth_moreland/32/8200_2.png) [@Kenneth\_Moreland](https://discourse.vtk.org/u/Kenneth_Moreland)
#### Post date: [September 6, 2024, 12:04pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/15 "2024-09-06T12:04:32Z")

</div>

Maybe this is a little late, but can we please choose a file extension for VTKHDF files that is not `.hdf`? It’s extremely frustrating when the extension for a general container format like hdf5 (or netCDF or bp or xml or json) is used over and over for conventions that are incompatible with each other. It wreaks havoc on applications like ParaView that make it difficult to determine which reader to use.

There is a reason why we use extensions like `.vti`, `.vtp`, `.vtu`, etc. instead of just naming them all `.xml`, which would be a mess. Let’s choose an appropriate VTKHDF extension now before it’s too late. I propose using `.vtkhdf`, which is simple enough.

---

<div class="post-metadata">

### Author: ![lgivord](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lgivord/32/3543_2.png) [@lgivord](https://discourse.vtk.org/u/lgivord)
#### Post date: [September 6, 2024, 12:08pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/16 "2024-09-06T12:08:52Z")

</div>

yes, this is what we recommend [https://docs.vtk.org/en/latest/design\_documents/VTKFileFormats.html#extension](https://docs.vtk.org/en/latest/design_documents/VTKFileFormats.html#extension) 🙂

---

<div class="post-metadata">

### Author: ![Kenneth\_Moreland](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kenneth_moreland/32/8200_2.png) [@Kenneth\_Moreland](https://discourse.vtk.org/u/Kenneth_Moreland)
#### Post date: [September 6, 2024, 12:13pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/17 "2024-09-06T12:13:35Z")

</div>

Perfect. I guess I just looked at the wrong file in the example scripts repository pointed to by beginning of this post: [https://gitlab.kitware.com/keu-public/vtkhdf/vtkhdf-scripts/-/blob/main/vtkxml-to-vtkhdf/test.sh](https://gitlab.kitware.com/keu-public/vtkhdf/vtkhdf-scripts/-/blob/main/vtkxml-to-vtkhdf/test.sh). It might be worth updating that.

---

<div class="post-metadata">

### Author: ![Chris\_Richardson](https://discourse.vtk.org/user_avatar/discourse.vtk.org/chris_richardson/32/10139_2.png) [@Chris\_Richardson](https://discourse.vtk.org/u/Chris_Richardson)
#### Post date: [July 18, 2025, 12:31pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/18 "2025-07-18T12:31:49Z")

</div>

Is there any prospect of integrating `vtkDGCell` support into `VTKHDF`?  
It would be very useful for our finite-element simulations on Unstructured Grid.

> [@New \`vtkCellGrid\` Functionality](https://discourse.vtk.org/t/new-vtkcellgrid-functionality/14640):
>
> Hi all, [vtkCellGrid](https://vtk.org/doc/nightly/html/classvtkCellGrid.html) and its related source/filter classes have had some significant changes committed recently. These changes are summarized below. They are in VTK master and will be in VTK 9.4.0 (branching October 5th). There is also a [ParaView merge request](https://gitlab.kitware.com/paraview/paraview/-/merge_requests/7042) to expose the functionality in ParaView; it will be present in ParaView 5.14.0. Introduction If you are not familiar with vtkCellGrid, you may wish to [read this post](https://discourse.vtk.org/t/discontinuous-galerkin-elements-and-other-novel-cell-types-function-spaces/9209) before continuing. TL;DR: vtkDataSet and its subclasses make many assum…

---

<div class="post-metadata">

### Author: ![dcthomp](https://discourse.vtk.org/user_avatar/discourse.vtk.org/dcthomp/32/60_2.png) [@dcthomp](https://discourse.vtk.org/u/dcthomp)
#### Post date: [July 18, 2025, 3:26pm UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/19 "2025-07-18T15:26:19Z")

</div>

I would like to add support for this, but don’t currently have any funding to do it. The basic structure of vtkCellGrid makes a lot of it simple, but taking account of some things will involve more than just a few hours to design and implement tests:

- shared arrays across partitions in a vtkPartitionedDataSetCollection of cell-grids;
- handling distributed data and ghost-cell computation; and
- re-use of topological connectivity across ranges of timesteps.

The basic implementation should be pretty simple and only a day or two of effort.

---

<div class="post-metadata">

### Author: ![lgivord](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lgivord/32/3543_2.png) [@lgivord](https://discourse.vtk.org/u/lgivord)
#### Post date: [August 8, 2025, 7:23am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/20 "2025-08-08T07:23:35Z")

</div>

FYI the new roadmap is now here : [Roadmap - VTK documentation](https://docs.vtk.org/en/latest/vtk_file_formats/vtkhdf_file_format/vtkhdf_roadmap_status.html)

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [August 8, 2025, 8:08am UTC](https://discourse.vtk.org/t/vtkhdf-roadmap/13257/21 "2025-08-08T08:08:08Z")

</div>

The OP was edited to reflect that.

[Next page](https://discourse.vtk.org/t/vtkhdf-roadmap/13257.md?page=2)
