jeff young  
  ::  home  ::  portfolio  ::  resume  ::  

     For the final project in the visualization class, my partner Matt Brown and I created a fractal visualization program. We used the VTK to cast rays into a volume of precalculated Julia set values and extract an isosurface. We arrived at the images below after tinkering with the many settings we programmed into the application.

<- back to the visualization page ::

:: fractal ::
:: fractal gallery ::

When one thinks of a fractal, most people think of the two images above, the Julia and Mandelbrot sets (left to right). We began the final project implementing the fractal in a 2D plane. For the raycast volumes, we used the Julia set seeded with values from the Mandelbrot set. We used a number of different values, but the general range is indicated by the white line in the Mandelbrot image.

This was the first Julia fractal that we visualized. It uses linear interpolation to generate each layer of the volume. We liked it, but we wanted to see how much we could control the look of it to reduce the harshness, so we introduce hermite smoothing into the layer generation.
The first fractal visualized with hermite smoothing. After introducing hermite interpolation into the layer generation of the volume, we gave ourselves a number of variables to play with. They were:
  • The isovalue to raytrace
  • The starting value of the Julia seed
  • The interval step per layer of the seed
For this image we used
  • Isosurface value: 1216
  • Starting seed value: 2.4
  • Interval step: 0.02375
Values are the same as image above, this image is taken from another angle.
We thought this image was one of the most pleasing. It maintained both the organic nature of the shape while reducing the intimidating sharpness of the first image we generated.
  • Isosurface value: 2216
  • Starting seed value: 2.0
  • Interval step: 0.024375
We thought the seperation that occurred in this image was interesting, like a cave.
  • Isosurface value: 4216
  • Starting seed value: 1.9
  • Interval step: 0.0228125
Values are the same as above but the image is from another view. Odd that the harsh seperation shown above is part of this shape, but it is.
Values are the same as above, image is from another view. Here you can see how the slow languid twisting of the top and bottom gives way to the pulled seperation.
As we increase the isovalue we are raytracing, we begin to ascend the color table we've defined - that's why this shape is a darker blue. Also, the higher the isovalue, the less coherence there is to the surface and we begin to render orbiting blobs. This phenomenon starts here and continues to the last image, which shows the effect clearly.
  • Isosurface value: 6216
  • Starting seed value: 1.9
  • Interval step: 0.0228125
Values are the same as above, image is from another view.
Note the increase in rendered blobs at the high isosurface value.
  • Isosurface value: 8216
  • Starting seed value: 2.0
  • Interval step: 0.024375
Values are the same as above, image is from another view. A good view of the separation and blob rendering.
The highest isovalue we raytraced. Very blobby, very cumbersome to interact with.
  • Isosurface value: 10216
  • Starting seed value: 2.2
  • Interval step: 0.0275
Get out your 3D glasses! Here are some stereo image of the project produced by Matt Brown.
 
 
all content copyright © 2004-2005 jeff young