Skip to main content

Viskores (VTK-m)

v2.2.0

Massively parallel visualization toolkit for multi-core and many-core architectures, the next-generation successor to VTK algorithms

Volume
C++
BSD-3-Clause
Active
GPU: CUDA
CPU
Stars
700
Latest Release2.2.0
Release DateAug 2024
Contributors90
Forks200
At a Glance
Technique
Volume
Language
C++
License
BSD-3-Clause
Platforms
Linux
macOS
Windows
GPU Support
Yes (CUDA)
CPU Support
Yes
Scene Formats
Vtk, VTI, Vtr
Output Formats
Vtk, Vti
First Release
Jan 2014
Latest Release
2.2.0 — Aug 2024
Best For
HPC visualization developers building in-situ analysis pipelines, Kitware ecosystem integrators accelerating VTK/ParaView with GPU backends, and computational scientists needing portable parallel visualization algorithms

Development Activity

Commit activity data is not available for this renderer.

700
Stars
2.2.0
1 year ago
90
Contributors
View on GitHub

Overview

Best for

HPC visualization developers building in-situ analysis pipelines, Kitware ecosystem integrators accelerating VTK/ParaView with GPU backends, and computational scientists needing portable parallel visualization algorithms

Not ideal for

End-user visualization, small datasets, web-based rendering, or anyone seeking a standalone visualization application with a GUI

Strengths

  • Hardware-portable parallel algorithm framework — write once, run on CPUs (OpenMP/TBB), NVIDIA GPUs (CUDA), and AMD GPUs (Kokkos) without code changes, a rarity in scientific visualization
  • Backed by US Department of Energy national laboratories with sustained funding and professional engineering support from Kitware, ensuring long-term viability
  • Flying Edges algorithm for isosurface extraction is significantly faster than traditional Marching Cubes, delivering state-of-the-art performance on both CPU and GPU
  • Designed for exascale in-situ visualization — can process simulation output at the point of generation without intermediate I/O, critical for petabyte-scale computational science
  • Clean, modern C++ API with the worklet abstraction that separates algorithm logic from hardware mapping, making it accessible for visualization researchers to add new parallel algorithms

Limitations

  • Not a standalone visualization application — it is a library that must be integrated into VTK, ParaView, or custom applications, requiring significant C++ development expertise
  • Learning curve for the worklet programming model can be steep for developers unfamiliar with data-parallel programming paradigms
  • Narrower algorithm coverage than full VTK — not all VTK filters have been ported, so some workflows still require fallback to the original VTK serial implementations
  • Documentation is oriented toward HPC developers and visualization researchers — resources for beginners or non-C++ developers are limited
  • GPU performance benefits are most apparent on large datasets and HPC workloads; for desktop-scale data, the overhead of GPU memory transfers can negate parallel speedups

Background

Viskores, formerly known as VTK-m (VTK-many-core), is a ground-up redesign of VTK's computational visualization algorithms for modern massively parallel hardware. Developed by Kitware in collaboration with Sandia National Laboratories, Oak Ridge National Laboratory, and Los Alamos National Laboratory under US Department of Energy funding, it provides hardware-portable implementations of key visualization algorithms — isosurface extraction, volume rendering, contouring, particle advection, and connected components — that run efficiently on CPUs, NVIDIA GPUs, AMD GPUs, and other many-core architectures.

The framework's central abstraction is the "worklet" — a small, portable function that developers write once and Viskores automatically maps to the target hardware via backend dispatchers for serial execution, TBB, OpenMP, CUDA, and Kokkos. This design enables a single algorithm implementation to run on Intel Xeon processors, NVIDIA A100 GPUs, and AMD MI250X accelerators without code changes. The Flying Edges algorithm for isosurface extraction, developed within this project, is significantly faster than traditional Marching Cubes on both CPU and GPU.

Viskores is not a standalone visualization application — it is an infrastructure library designed for integration into VTK, ParaView, and custom HPC visualization pipelines. Its primary use case is in-situ visualization: processing simulation data at the point of generation on the same supercomputer, without intermediate I/O. This capability is critical for exascale computational science where writing full simulation output to disk is prohibitively expensive. The library integrates directly with VTK as a backend filter implementation and is used by ParaView for GPU-accelerated filter execution.

Quick Start

git clone https://github.com/Kitware/VTK-m && cd VTK-m && cmake -B build && cmake --build build

Community & Resources

Performance Benchmarks

No benchmark data available for Viskores (VTK-m) yet.

Benchmarks will be added as more renderers are tested across our standard scene suite.

Learn about our methodology