Inviwo – An open-source Visualization System with Usage Abstraction Levels

Inviwo is a software framework for rapid prototyping visualizations. It builds the basis for the development of novel visualization research and teaching in an increasing number of research groups in the world, with a growing number of application areas. The system targets today’s visualization applications needs for users and developers with various levels of experience and demands. It utilizes different levels of abstraction, e.g. by providing a data flow network editor, to improve the application development process utilizing a layer structure. By allowing developers to interact with all contained abstraction levels it guarantees that a high-level abstraction does not hide low-level details. The realization deals successfully with challenges as the communication between different computing platforms, performance-centered encapsulation, as well as layer-independent development by supporting cross-layer documentation and debugging capabilities. The framework written in C++, exploits modern graphics hardware and is available under BSD license, which permits free use in any setup – also commercially.

Image: Left: Illustration of the layers of abstraction in our visualization system. The different layers of abstraction allow access to functionality for different usage levels and parts of the visualization application design process. As an example, our Python integration allows interactive development across layers through the editing of the visualization pipeline or definition of new processors. Right: Data flow in inviwo.

Reference: D. Jönsson et al. Inviwo – A Visualization System with Usage Abstraction Levels. In IEEE Transactions on Visualization and Computer Graphics (TVCG), 2019.