Inviwo is a software framework for rapid visualization prototyping.
Package releases and information is available at www.inviwo.org
Below follow some general information about the framework:
- Freely available under the Simplified BSD License.
- Cross-platform and runs on Windows, Linux and Mac OS X.
- Easily extendable through inclusion of external modules and projects.
- The core is written in C/C++ only, with minor dependencies.
- Modern graphics programming through OpenGL (>= 3.3 Core) related modules.
- Parallel computing on multiple platforms (GPU/CPU) through OpenCL (>= 1.0) related modules.
- Python (>= 3.9) scripting and computation is supported through provided modules.
- The primary GUI is based on Qt (>= 6).
- A minimal application is available, utilizing GLFW 3 for multiple window and context management.
- The project and module configuration/generation is performed through CMake (>= 3.16.0).
- Inviwo has been compiled in Visual Studio 2022, Clang 14, GCC 11, XCode 14
- C++20 Required
For help and general discussion join us on our Slack server
There are a large number of modules developed and maintained in other repositories.
These can be added through the CMake option IVW_EXTERNAL_MODULES
, see Inviwo modules for more details.
The following modules add a variety of functionalities to Inviwo. Please refer to the respective repository for possible issues related to them.
- 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 Integrats 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.
- Visual Neuro A visual analysis tool understanding cohorts of brain imaging and clinical data. Also includes algorithms for statistical computation.
- ENVISIoN Visualization of electronic structure quantities from ab-initio calculations.
Is your repository missing above? Just add it and make a pull request!
This work is supported by Linköping University, Ulm University, and KTH Royal Institute of Technology as well as grants from the Swedish e-Science Research Centre (SeRC), the Excellence Center at Linköping - Lund in Information Technology (ELLIIT), the Swedish Research Council (Vetenskapsrådet), DFG (German Research Foundation), and the BMBF.