October, 2006

Portfolio

This portfolio contain information about various (programming) projects I’ve carried out during the last years. Most projects are related to my major within visualization. The most recent work is listed in the beginning of the document and older work can be found in the archive below.


Keywords: Computational geometry, surface reconstruction, 3D point clouds, Voronoi diagram, Delaunay triangulation, medical visualization.

Abstract:

This thesis addresses the problem of constructing virtual representations of surfaces only known as clouds of unstructured points in space. This problem is related to many areas including computer graphics, image processing, computer vision, reverse engineering and geometry studies. Data sets can be acquired from a wide range of sources including Computer Tomography (CT), Magnetic Resonance Imaging (MRI), medical cryosections, laser range scanners, seismic surveys or mathematical models. This thesis will furthermost focus on medical samples acquired through cryosections of bodies.
In this thesis report various computational geometry approaches of surface reconstruction are evaluated in terms of adequateness for scientific uses. Two methods called “γ-regular shapes” and “the Power Crust” are implemented and evaluated. The contribution of this work is the proposal of a new hybrid method of surface reconstruction in three dimensions. The underlying thought of the hybrid solution is to utilize the inverse medial axis transformation, defined by the Power Crust, to recover holes that may appear in the three dimensional γ-regular shapes.

Screenshots:
new-pavo12-dn_2.jpg

Left: 3d Point Cloud. Right: Reconstructed Surface. The data set describes the intestines of a mouse and has been acquired through cryosections (in which the frozen mouse has been sliced in extremely thin slices which later has been scanned).

image0002.jpgimage0001.jpg
Reconstruction of human body parts.

image0003.jpgimage0005.jpg
Left: Mouse. Right: Brain of a fruitfly

(I feel compelled to spell out that no animals/humans were harmed during my research.)

My thesis is available for download here.


Keywords: volume rendering, raycasting, levelset, marching cubes, smoke solver

iso_surface1.jpgiso_surface2.jpgiso_surface3.jpg
This is a project that I worked on in a course called Modelling and Animation where I have developed a raycasting system to visualize Levelsets. A levelset is matematical way of describing a volume in a way to make it possible to visulize whatever is encaptured inside the volume. This can be thought of as a jar that contain either physical objects or densities like fluids or gases. The levelset was orginally designed to describe moving fronts, like propagating waves or pressure changes in the air and the levelset paradigm is very cool since it seemlessly allow “objects” to merge and grow together, being totally unsensitive to topological changes etc.

The system utilizes a cubical grid in which each cube corner (or vertex) is associated with a value. In terms of “real objects” (with a defined surface) this value is calculated with a signed distance function and will express the distance from the vertex to the closest point on the surface of the object. That the values are signed allows us to define vertices as eather inside (negative value) or outside (positive value). Given this we can extract the surface by visiting all cubes that contain both verticies inside and outside the object, and interpolate between the values at the corners.

But what about if we want to visualize something that lacks a well defined surface such as a gas or an object with many layers (think about an x-ray picture)? This is when the raycasting system becomes very interesting. Instead of extracting a surface we now cast rays from our virtual camera into the volume and sample the density values along the ray. Despite being a computational expensive process this method can produce very cool results when precise transfer functions (translatation of sampling density to color) are used.

smoke1.jpgsmoke2.jpgsmoke3.jpg
To demonstrate the above I also implemented a smoke solver for 3D. This was however more of an head ache than I expected since the math involved is quite comlex and one has to take into consideration advection (Navier-Stokes), diffusion, boundary conditions etc etc.. But even thought the final product of this smoke solver needs some work it definately shows some neat smoke-like behaviours.

For more information please look here moa_ebbst916.pdf (contains features from the labs and project in the course plus some more pictures :> )

March, 2006

GPU HDR Lightning

Keywords: GPU, OpenGL Shader,High Dynamic Range Images, reflection maps
bunny.pngdragon_ceramic.pngbunny.jpg
This elaborate project was carried out as a part of the examination in the course Image Based Rendering, held at Linkoping University. The final project is a combination of various cool visualization techniques. As a starter we wanted to examine the use of High Dynamic Range (HDR) images in textures, espacially in combination with reflection models as we were hoping to be able to create nice glowing effects around highly overexposed areas. The HDR image is a combination of several images taken with different exposure times, making it possible to preserve details in both over- and underexposed areas.

short_exp.jpgmean_exp.jpglong_exp.jpg

To enable real-time rendering most operations are carried out directly at the graphics hardware. This is done by uploading image data (as textures) and usage instructions (shaders) to the GPU to make use of its parallel capacities.

Enough said, its a quite exiting project as it really takes computer graphics to its
extreme. For more info please read gpu_hdr_lighting.pdf.


ec_big_1.jpgEl Gamal EC cryptography is a fairly new topic within the cryptography paradigm and it is concidered to be more secure than the popular RSA algorithm. EC cryptoraphy makes use of basic mathematical relationships along elliptic curves to make “unbreakable” ciphers.

The project was carried out during my spring semester at NTHU in Taiwan, it’s written in C/C++ and comes with a graphical user interface which allows users to play around with the the technology without having to dig deep into the math behinds it (although it ought to be be very hard to understand the algortihm without any research).

ai_brother_big_1.jpg

Many of us have seen the reality show “bigbrother” where a group of people is locked in a single building. This project is an attempt to simulate how people act in such environment, how the acts of each person effects the group as a whole. Here every “person” is equiped with 3 basic needs; the need to eat, the need to sleep and the need to keep fresh. They also have the need for friendship and love. To forfill these needs the person must walk to the corresponding room (kitchen for food, bathroom for the freshness etc.) and talk to and interact with his frieds around him, otherwise he or she will end up unhappy.
The movement of the artificial persons invokes a second main problem/feature of this simulation namely a pathfinder that can be used to chose the best way from one point to another, independently on how the walls in the room might block the way.

This is our final project in the course “Computer Models of Cognitive Processes”, carried out in the spring 2004.

Try it out at the simulation test page

acoustics_spring_small.jpgacoustics_tlm_small_1.jpgacoustics_tlm_small_2.jpg

Imagine a thin membrane tightly stretched over a squared frame. The membrane is then “lifted up” in the middle of the membrane or hit it with a drumstick. Immediatly small wave-shaped vibrations are spread over the surface. The aim of this project was to simulate how these vibrations reproduced themselves. For that three different techniques was used; 2D Wave equation, Euler’s springs and masses and Transmission Line Matrix (TLM).

This project was a part of a course “Acoustics” at LITH. and was ended the spring 2004.

Wave equation, download program

Springs and masses, download program

Transmission Line Matrix, download program

Read the final report (pdf)

February, 2004

Simulation of a Frisbee

This project originates from the beautiful days in the spring 2003 when disc golf was on everybody’s mind in Norrköping. The project aim was to simulate the movement of a frisbee making it possible to implement it in a computer game. This simulation deals with problems similar to a simulation of an aircraft. The complexity of the project was high because the frisbee acts under six degrees of freedom - rotating around its own three axis and moving in the virtual world. The frisbee also acts under many internal and external forces that derives from, for example, it’s velocity, angular velocity and the flow of air around it.The project was carried out in the course “Modelling and Simulation” 2003/2004.

Download program

Read the final report of the project (pdf)

October, 2003

Nolle-P 2003 - the movie

Every year at Linköping University begins with a welcoming ceremony for the new students. During these two weeks studies are combined with loads of parties and activities. The activities are arranged and supervised by older students from the university. The name of the game is “Nolle-P”, (eng. “the zero-period” where the zeros being the refreshments) and here every program at the university has its own supervisors and are all competing against eachother. The “Nolle-P” is truely a very special event and is something a student will never forget.To cherish the memeries of this event I was asked to help with the cutting for the movie from one of these programs. The movie is about 40 minutes and was pressed as DVDs and sold in >200 copies.

Due to property restrictions I cannot put the movie here for download but be sure to tell me if you are up for a movie-night.

acreo_big_1.jpgacreo_big_3.jpgacreo_big_4.jpgacreo_big_5.jpg

This short movie introduces three creatures from outer space and follows their escape from a secret laboratory in Kåkenhus at campus Norrköping. Parts of the movie are entirely animated but at most times the animated three-dimensional figures are mapped onto a real-world video recording. This implies methods like camera matching and video tracking. Thus this project not only required modeling of an 3D environment but also precise modeling of the real environment for the movie.

acreo_big_6.jpgThis project was carried out during the course “3-D Computer Graphics and Virtual Reality” in the spring 2003. The following autumn it was broadcasted on the student TV in Jönköping, Sweden.

According to governmental regulations I’m not allowed to spread the movie as a whole since music used in the movie is protected by copyright. Instead I’ve chosen to let the interested download previews of the movie.

Preview Scene 1 (wmv), 3,5 Mb.

Preview Scene 2 (wmv), 2,2 Mb.

Preview Scene 3 (wmv), 1.7 Mb.