Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

3D-volume fractals and how I did it

46 views
Skip to first unread message

Petri Lipponen

unread,
Mar 11, 1994, 4:43:05 AM3/11/94
to
#DISCLAIMER:
"All the things said in this article are mine; Helsinki University
of Technology has nothing to do with them"

My (?) method of making 3d-fractals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I started playing with fractals about 5 years ago. Mainly Mandelbrot and Julia.
Because I've also been interested about 3d-modelling, I started wondering
Real 3D-fractals, not just 3d-pictures of Mandelbrot or Julia.
I now have invented a set of nice fractals, from which I've not been able to
find any reference in the litterature. I hope that if anyone has done this
before someone could tell me (In any case there is small possibility, that
I'm the first who's thought of this :). I wellcome any contructing ideas of
further developement and information of these fractals. Please send them
via email; if there is something of global interest, I'll post it to this
newsgroup.


About the Mathematics Used:
~~~~~~~~~~~~~~~~~~~~~~~~~~~

In Mandelbrot and Julia , complex-numbers are used. They suite very well to
2d-fractals, but since this was 3d, I had to expand the complex set.
The easiest way to do this was to continue the analogue from R and C.
Complex numbers are type w=x+i*y, where i^2=-1. My 'surreal numbers'
(that was the first that came to mind :) are form:

w=x+i*y+s*z , where i^2=-1 and s^2=-i

(In any case, this is not at all perfect way of making new sets, but it
worked in this case and I'm pleased enough)

Adding and subtracting is similar to those of C-set. Multiplication is
not so straigth forward. More of it in next chapter.

The Fractals:
~~~~~~~~~~~~~

First fractal I made was Sort of expansion of Mandelbrot in every way.
For Mandelbrot, the formula is:
2
w = w + C, where w and C are complex, and w =0 and C = coordinates
i+1 i 0


I used the following:
3
(1) w = w + C - K , where w,C are 'surreal' and K includes 'difficult'
i+1 i terms of 3rd power.

K is the difficulty I told earlier. When two surreal numbers are multiplied,
there is almost always term that includes both i AND s. I solved this by
defining K so that it includes all those terms, so that they get substracted
(easy way of solving problems :).

Second I made a straigth expansion of Mandelbrot, with the following formula:
2
(2) w = w +C -K ,where w,C and K are as before
i+1 i

It easily seen, that Mandelbrot is a special case of this, when z=0.

Then I made a '3d-Julia' same way :
2
(3) w = w +A -K, where A is a constant surreal number.
i+1 i

You can do a variation of your own by simply changing the exponent and C of
the formula. It's up to you.

Imaging:
~~~~~~~~

And now the hardest part. It's easy to calculate 3d-volume (every point of it
has a value), but making it visible so that you can easily see what it is, is
much harder.

I First used a simple cuts along z-axis; take 2d picture for every z=-2+k*step,
and k=0,1,2,3,4,...

Result = lots of pictures. Fractal can be seen as animation of these pics or
by putting them aside and using a bit imagination. In any case, handling of
20 or 40 pics simultaneusly is not simple and memory and disk requirements are
quite big.

Then I tried a sort of 'gas-model'. I intended to render a picture that would
look like fractal-shaped interstellar gas cloud or something. well, it didn't
work. Illusion of 3 dimensions was ZERO. And there was no trace of the details
of fractal. Bad luck.

Latest method I've used, is to search certain itarationlevel of the set and
calculate the normal of that surface. After that it's easy to find the shade
of that pixel. My latest version can follow the lightray from the point and
thus say if that part of fractal is shadowed.

This method gives nice pics and uses quite little memory. More CPU-time is
needed, but that is easier to handle (longer calculating times). I going to
send a small (200x200) GIFof 3d-mandelbrot to alt.binaries.fractals.pictures,
so that you can see what its all about.


Program and other things:
~~~~~~~~~~~~~~~~~~~~~~~~~

I've made a C-program that renders fractals of this kind. It's no (yet)
documented in english, and the code is REAL spaghetti, but I can post or
email it if there is general interest (after all, code is always self
documenting). It prints PGM-grayscale files to stdout, so eg. pgmplus or
similar package is needed to convert pics to more usable form.

If you have any opinions about hte fractals themselves or new rendering
methods, I'm happy to hear them.

ps. I'm sorry for any spelling or other bugs there
flames >/dev/null


#Petri Lipponen, HUT, Finland.
#email: plip...@vipu.hut.fi
#for more information... email me.

--
# #
Name: Petri Lipponen email: plip...@hut.fi
Addr: Jamerantaival 11 k 222 Espoo 02150 FINLAND
Cookie:

Matthew Davey

unread,
Mar 11, 1994, 12:56:54 PM3/11/94
to
plip...@lk-hp-16.hut.fi (Petri Lipponen) writes:

>My (?) method of making 3d-fractals

>I now have invented a set of nice fractals, from which I've not been able to
>find any reference in the litterature. I hope that if anyone has done this

>before someone could tell me[.......]

The 'generalisation' of Complex numbers more generally used is
Quaternions, and any recent version of Fractint supports a few
Quaternion Fractal types. This is in fact a 4D basis.


>....... but since this was 3d, I had to expand the complex set.

>The easiest way to do this was to continue the analogue from R and C.
>Complex numbers are type w=x+i*y, where i^2=-1. My 'surreal numbers'
>(that was the first that came to mind :) are form:

> w=x+i*y+s*z , where i^2=-1 and s^2=-i

>(In any case, this is not at all perfect way of making new sets, but it
>worked in this case and I'm pleased enough)

You're right, this is not a perfect way..... in fact, your 'surreal'
numbers are contained within the complex numbers: for instance
s= (-1 + i)/(square root 2)

The algebraic generalisation that can be used to construct the complex
numbers from the real numbers from the rationals from the integers
from the natural numbers (whew!) breaks down. Basically, the Complex
numbers are sufficient to solve any polynomial equation.

Anyway, Quaternions are the way!

Good luck, and looking forward to seeing your pictures on a.b.p.f

--
Matt Davey Curiosity killed the cat, but for a while I
mcd...@maths.tcd.ie was a suspect.
<A HREF="http://www.maths.tcd.ie/hyplan/mcdavey/mcdavey.html">Matt Davey</A>

0 new messages