What is Inviwo?
Inviwo is a rapid prototyping framework that allows you to easily build data processing pipelines with integrated interaction and visualization. It is available under a BSD license, which permits free use in any setup - also commercially
Rapid prototyping
Inviwo provides a rich visual interface for creating data processing and visualization pipelines. These pipelines can be saved, modified, and reused on other data.
Python integration
Inviwo exposes a Python API and has Python scripting integrated for batch processing.
Full extendability
Inviwo can easily be extended by implementing your own data processing and visualization algorithms. See our tutorials on creating processors (data processing building blocks) using our plugin-in module system.
Data formats
Inviwo can read many data formats, such as HD5, DICOM, NIfTI, CSV, PNG, JPEG, RAW, and TIFF. You can also easily import image files into a single stack.
Documentation
Checkout the getting started pages for guides on how to install, develop new processors, and create new modules. You can also find 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},
}