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.
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.
Utah teapot level set, full volume. | Utah teapot level set, cross section. | Utah teapot level set, cross section. |
Eroded bunny | Original bunny | Dilated bunny |
View demo movies:
Dilation | Mean curvature flow | Morph |