The origin of VTK is with the textbook "The Visualization Toolkit, an Object-Oriented Approach to 3D Graphics" originally published by Prentice Hall and now published by Kitware, Inc. (Third Edition ISBN 1-930934-07-6). VTK has grown (since its initial release in 1994) to a world-wide user base in the commercial, academic, and research communities.
vtk.js aims to be a subset of VTK and provide 3D rendering using WebGL (+WebGPU) for both geometry and volume rendering.
What is the difference with VTK/C++?
We have also started to explore a path where you can compile some bits of VTK/C++ into WebAssembly and to enable them to interact with vtk.js. With such interaction, you can pick and choose what you need to extract from VTK and enable it inside your web application. VTK/C++ WebAssembly can even be used for rendering, and examples can be found in VTK repository. Additionally itk.js (which is ITK via WebAssembly) also provides proven implementations for several image filters and data readers. There are, however, some additional costs in terms of the size of the WebAssembly file that will have to be downloaded when visiting a VTK or ITK WebAssembly webpage; and we still have some work to do to streamline the vtk.js + VTK WebAssembly integrations.
On top of the rendering capabilities of vtk.js, the library provides helper classes to connect to a remote VTK/ParaView server to enable remote-rendering and/or synchronized C++/RenderWindow content with a local vtk.js RenderWindow by pushing the geometry from the server to the client and only involve rendering on the client side.
In general VTK tries to be as portable as possible; the specific configurations below are known to work and tested.
vtk.js supports the following development environments:
- Node 12+
- NPM 6+
Feature requests and Bug reports
Submit an issue to report bugs or missing features in vtk.js.
Help and Support
- VTK/Web discourse forum is here to help you find existing questions or ask your own.
- Kitware offers advanced software R&D solutions and services. Find out how we can help with your next project.
VTK is distributed under the OSI-approved BSD 3-clause License. See Copyright.txt for details.
See CONTRIBUTING.md for instructions on how to contribute.