Search This Blog

TopMeny

Showing posts with label Level set. Show all posts
Showing posts with label Level set. Show all posts

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

Level set viewer and cloth simulation

Level set viewer, cloth simulation with collision detection against a level set model and a ply-model viewer.

levelseteditor.jpg
This was a project and lab exercises in a course held by Professor Ken Museth. The result of my and my partners work is a Ply-model/Level set/Cloth simulation viewer. In other words, you can open and view ply-models and also save level sets to a ply format. The level set part also gives opportunity to modify the model a little bit (basic boolean operations) as well as viewing different levels, view different resolutions of the model and more. The cloth simulation is a piece of fabric that is created by a transmission line matrix with spring connected to the nodes in different ways. The project is written in C#, .NET 2.0 and DirectX. Please take some time to view the demo videos or download and run the executable.
Note: You must have .NET 2.0 and DirectX 9.0c installed to run the demo executable.

Download demo executable (56 MB)
Download demo video 1 - Ply model (30 MB)
Download demo video 2 - Level set (67 MB)
Download demo video 3 - Cloth simulation on level set model (34 MB)