My masters thesis is on protyping a hair modeling, simulation and rendering software for a small vfx studio located in Stockholm, Sweden. I have created a node based system of creating the desired hair style (using C++, Qt, CUDA), which is rendered in OpenGL in real time in the preview window of Autodesk Maya. The system is capable of rendering hundreds of thousands of hair strands, and still have interactive editing of the guide curves that controls the hair style. A basic hair simulation with collisions have also been implemented.
The masters thesis report can be downloaded here
The thesis is also available for download at Linköping University's electronic publishing website
Final project done in the class "Image Synthesis" at Stanford. I implemented a C++ SPH simulation, that James Chen and me then rendered using a modified version of the pbrt-raytracer. The rendering is done by using the same interpolation kernel as in the simulation to find the water interface.
More information on this page
Final project done in the class "Computational photography" at Stanford. It is an interactive application for the Nokia N900. The user draws a stroke on the screen and based on that an influence map is created. The user can then adjust the brightness in the influenced areas in the image.
Final project done in the class "Interactive Computer Graphics" at Stanford. It is a typing game, with some influences from Guitar Hero‚ Boom boom rocket, and missile defense. To play, press the button specified on the asteroid when it is over the line in the middle of the screen.
Download for MAC OS X (early versions of the macbook might not be able to run the game.)
This is a project I did in the class "Image processing for photography and vision" my first quarter at Stanford university. It is basically an edge-preserving blur that is good for creating a detail layer and a base layer of an image. This can then be used for such things as contrast manipulation, as seen above. The project is basically an implementation of this paper.
My implementation formed the basis for the implementation in the library ImageStack
Guitar Zero is a guitar amplifier simulator made by me, Mattias Seebergs, Rickard Berg and Albin Carnstam for the course "Modelling Project". Based on this paper we simulated a tube amplifier stage in C++ and visualized the result using the Qt library. A tube amp have vacuum tubes inside of them, which have a nonlinear behavior, and therefore a bit tricky to simulate. We made some pre-calculations using MATLAB and could run the program in real-time, but with a noticable delay though. When we were done, we had a GUI that we could connect a real guitar to, and we could get a good and realistic sound from the program. The downside of the program was that it had a delay of about 50 ms or so, which lowered the overall experience when using the program.
A report is available in Swedish here: GuitarZeroReport.pdf
This project is a 3d billiard game made for the course "3D computer graphics" by me, Tobias Ohlsson, Mattias Seebers and John Tolunay. It is programmed using OpenGL and the library GLFW. The simple model of the table was made using blender, and some help from a skilled friend.
You can control the direction by using both the keyboard arrows and the mouse scrollwheel. By holding the mousebutton you can shoot and control the strength of the shot, indicated by the power bar in the lower left corner. A guideline shows in which direction you are aiming. There is also a cone (either blue or green depending on the active player) which points out the ball you are supposed to strike down.
Homework in the class "Interactive Computer graphics" at Stanford. We used the open source library lib3ds to import a scene from 3d studio max and rendered it with OpenGL. I also implemented bump mapping and reflection mapping.
Homework in the class "Interactive Computer graphics" at Stanford. The task was to create a small version of OpenGL without any frameworks or tools to help you out. We created a graphics framework with support for lights, texture and basically everything you need to render a model decently. A bit dry but very worthwile assignment.
Start from terminal by typing "./run"
L - Turn lighting on/off
1/2/3 - turn light 1/2/3 on/off.
Mac OSX zip
A couple of homeworks in the class "iPhone programming" at Stanford resulted in this iPhone app. The task was to create an app that can download photos from flickr and display them. It also displays geotagged photos on a map. This is basically my first "real" iphone application.
Homework in the class "Sound technology" at Linköping University. We created a simple FM synthesizer in MATLAB that played the beginning of nothing else matters by Metallica (because it is so simple).
Me and some classmates made a multi-user blog back in 2006 as a part of one of our classes. It's still up and running but since facebook came along no one ever used or blog again... I like the design we made for it.
Link (in swedish)
In one of the first classes in my masters program we had to write an article about the foundations of 3d graphics. The paper is pretty basic but actually covers some important stuff about computer graphics.
Wasn't made as part of any class but simply for the fun of it. The video demonstrates two webcam images, one with the colors transformed to how a colorblind person (deuteranopia) se the world, and the other one with normal colors. A colorblind person should not be able to see any major difference between the two frames except for clarity in the colors. If you have normal color perception you should be able to see that no red is visible in the "color blind" section of the window.
I used the processing language on an old laptop, that is why the performance is pretty bad, but you get the idea.
Vilhelm Hedberg — firstname.lastname@example.org — +1 (650) - 714-7198