Inviwo is the visualization framework we use in our daily research and we will use it in the practical assignments to implement some visualization methods ourselves.
Note
If you have not installed Inviwo yet, it is probably best to first skip to Setup and read the Overview while playing around with the editor.
Overview
Inviwo is an extendable C++ framework for easy prototyping of interactive applications. It provides a network editor for the designing of data flow networks, which are automatically evaluated and executed to produce output on one or more output processors (typically a canvas). The data flow in such a network runs from top to bottom, and the nodes are referred to as processors. Besides these processors two more first class objects exist. Ports, which are used to exchange data in between processors, and properties, which define the state of a processor.
Processors are the primary objects the user interacts with inside the network editor. Usually, they are dragged from the processor list on the left onto the network editor, before they are connected. Processors receive input data and generate output data through ports, whereby the ports on the top boundary are referred to as inports, and the ports on the bottom boundary are referred to as outports. Each processor has a set of properties, which define its current state. Upon selection of a processor in the network editor, its properties are shown in the property list on the right, where they can be edited.
Processors can exchange information in two ways. First, they can exchange data through their ports, whereby equally colored ports are of same type and can thus exchange data. Port connections can be established by connecting two ports via drag-and-drop. Besides the ports, the properties of a processor can be linked in order to synchronize their values. Links can be established by creating a connection between the semicircles of two processors.
To distinguish processors in a network, they have unique identifiers which can be edited by the user. Initially the identifier will be equal to the type of the processor, which is shown in italic below the identifier. Furthermore, the processor shows whether it is correctly connected through the status light.
Setup - Short Version
Download these resources/tools if you do not already have them running.
Clone the submodules with git submodule update --init --recursive
Generate a solution using CMake
Set source and binary destination path (./bin)
Set all Qt variables
Open the resulting solution and build it
The entry point is inviwo-cli
Building in Release will make all your execution faster
If you run into problems, look at the extended version below.
Setup - Extended Version
For the assignments you need to build and run a version of Inviwo on your computer. We will provide you with a set of modules (one for each assignment) that contain code and stubs for different classes that you will implement. The latest version of those modules along with the version of Inviwo we will use for the course can always be found at https://github.com/KTHVisualization/inviwoLinks to an external site.. In order to get, install, build and work with Inviwo, you need to install a set of dependencies:
Git: a version control system. Github is a web-based version of git that a lot of open source projects use to work on, maintain and distribute their code.
CMake is a cross-platform build environment that generates build files for the respective operation system such as make files on Linux or Visual Studio projects.
Qt is used for creating cross-platform applications and graphical user interfaces.
You can find the setup instructions for different platforms below: