Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Ingemar Eriksson, posted on September 25, 2000

Image Description, by Ingemar Eriksson

Ray traced quaternion julia set (10 iterations). Original resolution 4096 x 3072 (4 samnples / pixel ) took 36 h on a pII-350. Made with my own notyetfinished ray tracer.

//Ingemar Eriksson

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

September 25, 2000, 09:51 AM

Very nice work.
I've done some work with 2D and height-mapped 3D Mandel-Brot and Julia sets, but I'm unfamiliar with Quaternian Julia Sets. Could you tell me how are they generated and where can I find more information?


September 25, 2000, 10:09 AM

Wow, that's impressive!
I take it thats random, correct?
I would also be intrested in where I could find some more information on Quaternian Julia sets - I think they would be very good for use in some alien scenes - Don't you just get that creepy feeling looking at that? *grin*


September 25, 2000, 10:12 AM

Well, for some reason that reminds me of a tent hanging on some wierd internal support.....but it's a nice screenshot :)


September 25, 2000, 10:23 AM

Very cool pic. Personally, I think it looks like a big wad of salt water taffy on one of those stretching machines...


September 25, 2000, 10:23 AM

reminds me of cloth or stretched candy, that's been hardened into glass

Hannu Kankaanpää.

September 25, 2000, 10:51 AM

You should animate that! I've only seen the traditional 2d julia sets animated. Then render a MPEG. That'd look really groovy!

September 25, 2000, 11:03 AM

is this based on Alan Norton's fractal research at IBM in the 80's?

looks fantastic!

Ohad Eder Pressman

September 25, 2000, 11:11 AM

Very nice, very nice.

some source would be good too, or a short explanation of the method you used.


September 25, 2000, 12:49 PM

Damn nice... not much more to say...

Sean Montgomery

September 25, 2000, 02:25 PM

Michael Herf did this filter for MetaCreation's KPT5. It rocks and it also has a realtime version of it, as well as the high quality version. Check it out.

Hannu Kankaanpää.

September 25, 2000, 03:59 PM

Haha, found that filter (I hadn't even tried all my photoshop filters). KPT is such a collection of useless/weird filters =)..


September 25, 2000, 05:11 PM

If anyone's interested in making their own, you might wanna check out this page (comes with source code as well):

Note: it's not mine...just something I found while searching the web for quaternion fractals.


September 25, 2000, 05:29 PM

Nice, nice, nice, nice, nice!!!


September 25, 2000, 09:21 PM

One thing I've always wondered about quaternion fractals is how, exactly, you calculate the ray-set intersection. To me it seems like a VERY non-trivial task. Do you just use brute force to determine approximately where the ray enters the set and then subdivide the region between internal and external until a boundary is found? In that case, what about regions of much complexity where such a naive approach would fail? Or do you just calculate a set of voxels for the set and then refine the visible portions, or what? And then how do you do the surface normal?

I've seen a lot of quaternion fractals out there, and plenty of descriptions of how the iterative process happens, but never anything really explaining how the ray-set interesction takes place...

On a similar note, I must take exception to most of the pages out there on quaternion fractals which state that Julia and Mandelbrot sets aren't true 3D. Granted, heightfield-rendered ones aren't - but the sets themselves are actually 4-dimensional (you can vary Z0 independently of C and get different 2D planes of the 4D hyperset for Mandelbrot as well as for Julia - and I've never seen a rendering of cross-sections of the Julia hyperset). It'd be neat to do raytracing of 3D cross-sections of the 4D Mandelbrot hyperset. Actually, aren't Quaternion fractals technically 6D by the same token? Though the Z0=0 cross-section is already difficult enough to grok as a shape... :)

For what it's worth, the Mandelbrot set was originally created as an index into the continuous Julia sets. It's also interesting to note that the 2D cross-section of the Julia hyperset looks very much like the orbits of the Z0=0 Mandelbrot set at that same C.

Also, sorry if I'm munging terminology here. I only did fractal set theory as a hobby back in high school, and back then I didn't really grasp a lot of the mathematical concepts. It's been a while since I've given much thought to it. :)


September 26, 2000, 03:21 AM

Very cool! Maybe with some small adjustments you could make realistic clouds that way. It looks like it has some turbulence in it :-)


September 26, 2000, 06:35 AM

Hey Fluffy,

Those heightfield fractals are 2.5d fractals just like regular heightfield scenes. To visualize 4D fractal you just take 3D 'slice' (plannar projection) of it which is generally made by setting one of the variables to constant. I have only made regular 2D fractal renderer myself, but I assume that you could raytrace 4D fractal by projecting 3D ray to quaternion space and making iterations on the ray in specified resolution to track the fractal surface.

Cheers, Altair

Ingemar Eriksson

September 26, 2000, 08:48 AM

The quaternion juilia set is defined as the set of q for which q(n+1) = q(n)^2 + c, n->oo, for which |q| < 2,
where q = r + ix + jy + kz, with i² = j² = k² = ijk = -1.

This particular surface (well, volume to be correct) is defined as those q for which |q(10)| < 2. The
k-component of q is omitted due to ray tracing in 3 dimensions. An interval stepping technique is used for
finding the intersection and iterative derivatives used for normal calculations (approximately the same as
found in POVRAY). Expanding the q(n) term and using numerical analysis for roots would result in 2^n-degree
equations :(

An animation will be created when I have the simultaneous combination of motivation and time. Some ideas
about using these quaternionvolumes together with the marching cubes algorithm has figured in my mind, but
have yet to be realized.

//Ingemar Eriksson

This thread contains 17 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.