Search This Blog

TopMeny

Thursday, December 13, 2007

Level Set Framework

A study of .NET as a platform for computational intensive applications.
levelseteditorGUI.jpg
Level Set Editor GUI - Built on top of the level set framework (C#, .NET, DirectX).

Keywords: level sets, framework, .NET, C#, marching cubes, visualization, 3D, computer graphics

Authors: Anders Bursjöö and Hannes Larsson
Supervisor: Ken Museth, Professor Linköpings Universitet
Download report: LevelSetFramework_Thesis_Report_v2.0.pdf

Level set is a mathematical technique for tracking surfaces. It is used in 3D-computer graphics for organic simulations such as water and smoke. It is pretty hard to understand so we wanted to create a framework that a user could use in level set operations. The framework should apply to a novice user as well as a professional user that want to extend the framework.

The framework is written in .NET 2.0 and contains two different data structures from level sets and some basic operations for scalar field manipulations and advection. The framework is built with interfaces to be extendible.

LS_GUI.png

A GUI has been created on top of the framework (see the image above). The program uses marching cubes to generate the mesh and is rendered in DirectX. The marching cubes algorithm is general and could be plugged into OpenGL or some other graphics library.

The colors indicate the normal direction. Several layers (levels) have been rendered to display the structure of level sets. Each level represents a constant value.
utha_1.jpg
Utah teapot level set,
full volume.
utha_2.jpg
Utah teapot level set,
cross section.
utha_4.jpg
Utah teapot level set,
cross section.

bunny_erosion.jpg
Eroded bunny
bunny_erosion.jpg
Original bunny
bunny_erosion.jpg
Dilated bunny

View demo movies:
levelseterosion.jpg
Dilation

levelsetmean.jpg
Mean curvature flow

levelsetmorph.jpg
Morph

4 comments:

Anonymous said...

hi,

the editor looks really nice

do you plan to make it available as well as the framework ? binary ? sources ?

cheers

Anders Bursjöö said...

We (me and my co-author Hannes) have got some requests for the binary/source and we have thougth about publishing the framwork as a .dll, but we haven't got the time to wrap it up and release it. We do need time for this because some documentation and examples need to be written and the code need to be cleaned up a bit. If the code will be plublished it will be annonced here.

Anonymous said...

I'd be interested in seeing the framework and it's code, too.

Anders Bursjöö said...

I'm sorry guys, as it looks today we will not publish any framework or code unless someone pays us to revisit and a code update. We are both stuck in our dayly work and do not have time for updating and publishing the framework :/.