What is Inviwo?
Inviwo is a software framework for the rapid prototyping visualizations. It is written in C++, exploits modern graphics hardware and is available under BSD license, which permits free use in any setup - also commercially
Rapid prototyping
Inviwo provides a rich visual interface for the easy creation of custom visualizations. These visualizations can be saved, modified, and reused on other data.
Python integration
Besides being realized in C++, Inviwo exposes a Python 3.7 API, supports Python development, and has Python scripting integrated for batch processing.
Full extendability
Inviwo can be extended by implementing own Processors, which can be organized in modules. See our tutorials on creating processors and modules.
Data types
Inviwo can read and visualize many data types, such as HD5, DICOM, RAW and TIFF stacks. So you can visualize data from many simulations and imaging modalities.
Documentation
To get started with Inviwo, we provide guides on how to install, develop new processors, and create new modules. We also made video tutorials on the most important concepts.
Community
Inviwo is used and maintained by researchers at many international universities, core development takes place at Linköping U, Ulm U, and KTH. For help and general discussion join us on our Slack server.
Powered By Inviwo
More Features and Information
Check out our tutorial slides from the 9th EWorkshop on Visual Computing for Biology and Medicine (VCBM2019). We give a brief overview on hoto use Inviwo for rapid prototyping medical applications.
Inviwo provides many visualization methods for a range of data types such as triangular meshe images, volumes, vector fields and multidimensional arrays.
Geometry
- Mesh rendering
- Point cloud rendering
- Line rendering
- Transparent geometry rendering
(using an A-Buffer) - Height fields
Scalar field visualization (Image, Volume)
- GPU-based volume ray-casting with global illumination
- 2D image slice inspection
- Contour extraction and visualization
(ISO surface )
Vector field visualization
- Line integral convolution (LIC)
- Hedgehog
- Path lines
- Stream ribbons
- Stream lines
External Modules and Applications
On top of the functionality built into Inviwo, we have a large collection of addition external modules that are separately available, due to their large dependencies:
- Dicom Reader Adds support for reading DICOM image/volume files (.dcm file ending)
- Molecular visualization Adds support for molecular data structures along with reading PDB and mmCIF files. Molecules are rendered in van-der-Waals, Licorice, and Ball and Stick representations.
- Tensor visualization Adds support for reading/writing tensor fields. Includes algorithms such as HyperLIC and Anisotropy raycasting.
- Topology visualization Integrates the Topology Toolkit into Inviwo. Includes algorithms for critical points, integral lines, persistence diagrams, persistence curves, merge trees, contour trees, Reeb graphs, Morse-Smale complexes, topological simplification, topology-aware compression, harmonic design, fiber surfaces, continuous scatterplots, Jacobi sets, Reeb spaces, bottleneck and Wasserstein distances between persistence diagrams etc.
- Clustering Cluster rows of a DataFrame. Supported clustering methods are k-means, DBSCAN, agglomerative, and spectral clustering
- Vector Graphics Integrates NanoVG, which is a small antialiased vector graphics rendering library for OpenGL.
- NetCDF Adds support for reading NetCDF files
- OpenMesh Integrates the OpenMesh library, which is a data structure for polygonal meshes. Includes for example mesh decimation and vertex normal generation.
- Spring-mass system Simulation of spring-mass system.
- Visualization Toolkit Integrates support for VTK, which has algorithms for surface reconstruction, implicit modeling, decimation and much more.
- Photon mapping Volume illumination algorithm for time-varying heterogenous media.
- Temporal Tree Maps Temporal treemaps for visualizing trees whose topology and data change over time.
- Developer tools Log inviwo events, useful for debugging interaction.
Citation
If you use the Inviwo code for your research, please cite our paper:
Inviwo - A Visualization System with Usage Abstraction Levels
@Article{inviwo2019,
author = {J{\"o}nsson, Daniel and Steneteg, Peter and Sund{\'e}n, Erik and Englund, Rickard and Kottravel, Sathish and Falk, Martin and Ynnerman, Anders and Hotz, Ingrid and Ropinski, Timo},
title = {Inviwo - A Visualization System with Usage Abstraction Levels},
journal = {IEEE Transactions on Visualization and Computer Graphics},
year = {2019},
volume = {26},
number = {11},
pages = {3241-3254},
doi = {10.1109/TVCG.2019.2920639},
ISSN = {1077-2626},
}