# Voreen

Voreen (volume rendering engine) is an open-source volume visualization library and development platform. Through the use of GPU-based volume rendering techniques it allows high frame rates on standard graphics hardware to support interactive volume exploration.

## History

Voreen was initiated at the Department of Computer Science at the University of Münster, Germany in 2004 and was first released on 11 April 2008 under the GNU general public license (GPL). Voreen is written in C++ utilizing the Qt framework and using the OpenGL rendering acceleration API, and is able to achieve high interactive frame rates on consumer graphics hardware. It is platform independent and compiles on Windows and Linux. The source code and documentation, and also pre-compiled binaries for Windows and Linux, are available from its website. Since October 2024, Voreen is developed in an open repository on GitHub. Although it is intended and mostly used for medical applications, any other kind of volume data can be handled, e.g., microscopy, flow data or other simulations.

## Concepts

The visualization environment VoreenVE based on that engine is designed for authoring and performing interactive visualizations of volumetric data. Different visualizations can be assembled in form of so-called networks via rapid prototyping, with each network consisting of several processors. Processors perform more or less specialized tasks for the entire rendering process, ranging from supplying data over raycasting, geometry creation and rendering to image processing. Within the limits of their respective purposes, the processors can be combined freely with each other, and thereby granting a great amount of flexibility and providing a uniform way of handling volume rendering. Authors who need to implement a certain rendering technique can confine their work basically on the development of new processors, whereas users who only want to access a certain visualization simply need to employ the appropriate processors or networks and do not need to care about technical details.

## Features

Visualization
* Direct volume rendering (DVR), isosurface rendering, maximum intensity projection (MIP)
* Support of different illumination models (Phong reflection model, toon shading, ambient occlusion)
* Large (out-of-core) data visualization (using an OpenCL octree raycaster)
* Streamline-based vector field visualization
* Multimodal volume rendering
* Geometry rendering with support for order-independent transparency
* Flexible combination of image processing operators (depth darkening, glow, chromadepth, edge detection)
* Visualization of time-varying as well as segmented 3D datasets
* Support for 1D and 2D transfer functions/CLUTs
* Configurable views for building more complex applications (triple view/quad view/tabbed view/splitter)
* Plotting
* Volume Ensemble visualization (similarity plot, ensemble mean/variance, parallel coordinates)
Volume Processing
* Isosurface extraction
* Efficient basic 3D-image processing for very large (out-of-core) volumes
* Very large volume analysis (connected components, vessel network analysis)
* Interactive volume segmentation (random walker-based, vesselness filtering, basic thresholding)
* Interactive volume registration (manual or landmark-based)
* Vector field volume processing (Jacobian matrix, Delta/Q/Lambda2 vortex criterion, coreline extraction)
* Out-of-core processing of spatio-temporal multi-field ensemble datasets (ensemble analysis)
* OpenLB integration for flow simulation ensemble generation
Interaction
* Configurable application mode for improving usability for domain experts
* Axis aligned and arbitrarily aligned clipping planes
* Editors for 1D and 2D transfer functions
* Inspection of intermediate results
* Distance measurements
Data I/O
* Support for several volume file formats (e.g. DICOM, TIFF stacks, HDF5, RAW, NetCDF, VTI, NIfTI-1)
* High-resolution screenshot and camera animation generation with anti-aliasing
* FFmpeg-based video export
* Python scripting for offline image processing and visualization
* Geometry in/export (e.g. for Additive Manufacturing)