Talk Visvis - an object oriented approach to visualization

Presented by Almar Klein (Science Applied v.o.f.) in Scientific track 2012 on 2012/08/25 from 10:30 to 11:00
Abstract

Visvis - an object oriented approach to visualization

Almar Klein, Rob Reilink, Ludo C. Visser

Science Applied v.o.f.
Enschede, The Netherlands
http://www.science-applied.nl
{a.klein, r.reilink, l.c.visser}@science-applied.nl

Visvis is an open source visualization toolkit written in pure Python. Its aim is to allow easy visualization of all sorts of data, including animations. It has a strong emphasis on an object oriented approach; all data is represented as an object that has properties and methods to change its appearance or behavior. A Matlab-like interface in the form of a set of functions allows easy creation of objects, e.g. plot(), imshow(), volshow(), surf().

A clear distinction is made between world objects (Wobject class) and widget objects (Wibject class). The first represent visualized data in a 3D scene, while the latter are tools that live in screen coordinates. Similar to Matlab and Matplotlib, the base widget object is the Figure, which can be shown as a toplevel window or embedded in a user interface. A Figure will typically contain one or more Axes instances, which display a scene populated with world objects. The Axes class has properties to change the appearance of the scene, such as the camera, data aspect ratio, lighting, and background color. The most important classes for world objects include Line (lines with markers), Mesh (triangular or quad surface), Text, Texture2D (images), and Texture3D (volumes).

Visvis is essentially an object oriented wrapper around OpenGL, thereby combining the high level usability of Python with the low-level power of OpenGL. For instance, users can easily subclass Wibject and Wobject to make their own tools or data visualization. Users can also embed and modify shading code (GLSL, code that runs on the GPU) to take control of how images, volumes, and meshes are visualized.

Visvis is highly interactive. Using the mouse, the camera can be moved and rotated, and the user can zoom and change the field of view. Since visvis has support for picking, it’s easy to make applications to collect human annotations and segmentations.

In this talk we shall discuss the basic ideas behind the design of visvis, and show many examples and use-cases, including different ways to visualize motion and the usage of custom shading code.

More information about visvis can be found at http://code.google.com/p/visvis/.

tagged by
no related entity