monguin61
Forums Newbie
Posts: 2


« Reply #30 on: March 19, 2009, 01:41:47 AM » 

What you're doing, as I understand it, moves point z1 to point z3. You can see both the vertical angle phi and the lateral angle theta changing. I'm wondering if, in order to come up with the right 3D multiplication operation, you need to capture the qualitative behavior of the complex numbers, and make the 3D multiplication resemble the 2D multiplication as closely as possible. That said, I think it might make more sense to change only the vertical angle phi, which would move point z1 to point z2. My reasoning is that, with complex numbers, squaring z doubles the angle between z and unity. To make that happen with 3D numbers, assuming unity=(0,0,1), only phi needs to change. After my last post, though, I thought of another issue: with complex numbers (but NOT quaternions), there is a finite set of points that, when squared, get you to negative one (for complex numbers, z = +i; for quaternions, any z with z=1 and Re{z}=0). I wonder if that is another important 'feature' of the multiplication operation? If so, then neither your definition, nor my suggestion will work: any point with phi = 90 will yield 1 after squaring. So, maybe the multiplication needs to depend on theta in some more complicated way? I guess the question here is whether it should behave more like the complex numbers, or more like the quaternions. If we say complex numbers, then the obvious answer is to say that (1,0,0), (1,0,0), (0,1,0), (0,1,0) need to yield 1, while no other points do. I'm not yet sure how best to realize that concept through formulas. Or... maybe this has no effect at all on the result. I hope that all sort of makes sense. I've been thinking about this stuff a lot in the last few days, because I'm afraid if I stop pursuing it, I'll lose track of all these ideas in my head. Maybe none of it will go anywhere, but I at least want to check it out. lycium, what method were you using to render those surfaces? How long did it take to generate a surface that showed some basic detail? I'm wondering if I can put something together to try out different approaches on my own.


« Last Edit: March 19, 2009, 01:49:05 AM by monguin61, Reason: corrected stupid mistake »

Logged




twinbee


« Reply #31 on: March 19, 2009, 11:59:57 AM » 

Oh right, just doubling the phi angle, instead of both the phi and theta? You bet I tried that AFAICR, I got the 2nd b/w pic on that article: http://www.skytopia.com/project/fractal/mandel3d6.pngAlso, tried doubling theta only, and with most combinations of offsets (the +0.5pi bits in the function) etc. Can't say I tried everything though. Good thinking with trying to emulate complex numbers more closely. The chances of finding it may be slim, but that's offset against how cool it would look Yay, 100 posts!


« Last Edit: March 19, 2009, 12:01:28 PM by twinbee »

Logged




David Makin


« Reply #32 on: May 24, 2009, 09:01:30 PM » 

Hi all, was just having another play with the quaternionic Mandy  some results: q^2+c where q is (x,y,z,w) but with x and z swapped on each iteration prior to squaring: As you can see this produce "projections", though not really "bulbs", but it is reminiscent of the complex Tricorn (Mandelbar) which can be created by either z=conj(z) or z=flip(z) prior to squaring. Anyway I wondered what Julias from this would be like, so here's one, I think they look promising (I mean as interesting and slightly different Julia sets)... I also wondered what happens if you do something closer to how the complex Tricorn is created, so I thought I'd try a version of "flip" like this (corrected for "zero" issues): d = sign(y)/sqrt(y*y+z*z+w*w) y = x*y*d z = x*z*d w = x*w*d x = 1/d Note I tried "flip" because the equivalent of "conj" just produces the plain 3D rotation of the complex tricorn. The Mandelbrot is probably the most boring "fractal" I've ever seen, but again the Julias look promising: Edit: I confess and offer my apologies  I should have been more careful when testing this. The Julia that produced this image was such that the above line: x = 1/d was actually executed as x = sign(x)/d in other words it wasn't a correct quaternionic analogue to complex flip. Doing it correctly also turns the Mandy version into the correct slightly more interesting 3D rotation of the complex "flip" Tricorn. Edit: Of course the main problem with this sort of manipulation (and the others used earlier in this thread) is that it makes it more difficult to get efficient rendering  because the formulas end up effectively treating what are normal 4D numbers in standard quaternionic form as numbers in a more generalised 4D form so normally "brute force" raytracing is required since you can't use the simple quaternionic derivative to get the distance estimation. I suppose one could write the mathematical algorithm to get the derivative treating the iterated formula as a general 4D one but I guess that would require the differentiation of a full general 4D system using the Jacobians ..... anyone care to have a go, or would that end up making the distance estimator method as slow as the "bruteforce" method ?


« Last Edit: May 25, 2009, 02:36:39 AM by David Makin »

Logged




twinbee


« Reply #33 on: May 25, 2009, 04:22:36 AM » 

Nice renders  always good to see these things animated!
Look forward to more results as always...



Logged




David Makin


« Reply #34 on: May 25, 2009, 09:23:13 PM » 

Hi all, take a look at this IFS: http://makinmagic.deviantart.com/art/PureJuliaIFS123685891As the comment says it was entirely created from 4 complex Julia Set transforms. The reason I post this here is that using the same method with quaternionic Julia Sets for 3D/4D IFS could be used to produce the same thing but made up of many spheres (essentially q^2+0) or other Julia Set shapes  essentially giving the "3D bulb" effect. Actually the results would probably be similar to the images produced using Indra's Pearls except that the "spheres" could be any shape of quaternionic Julia and it would of course be simple to mix in affine transforms too. The only problem is that writing an efficient rendering method for such 3D objects isn't trivial, though I think getting distance estimation would be possible.



Logged




cKleinhuis


« Reply #35 on: May 25, 2009, 11:53:19 PM » 

i am thinkin a lot about realtime fractals now adays, i am searching for nice methods to display on todays gfx hardware, rendering quaternions is like displaying a isosurface of a function ... this is a bit expensive .... but i like the method of iterated function systems ( with extended functions introduced with the flames algorithm.. ) and symmetry ... i will simply plot millions of dots somehow ... cheers ck



Logged


divide and conquer  iterate and rule  chaos is No random!



David Makin


« Reply #36 on: May 29, 2009, 04:20:19 AM » 

Hi all, Another one  this time swapping y and z in (x,y,z,w) on every iteration prior to squaring (not exactly a "True 3D Mandelbrot Set" but I'm rather pleased with it).


« Last Edit: May 29, 2009, 04:44:53 AM by David Makin »

Logged




twinbee


« Reply #37 on: June 02, 2009, 02:25:12 AM » 

Hey that's neat  so near yet so far...



Logged




David Makin


« Reply #38 on: June 06, 2009, 09:49:23 PM » 

Hi all, I decided to try Kerry's suggestion of using a truly 3D based number system i.e. * r i j _________ r  r i j i  i r ? j  j ? ? The best result was from this: * r i j _________ r  r i j i  i r i j  j i r e.g. (for z^2+c) xi = mx mx = mx*mx  my*my  mz*mz + x my = 2.0*(xi*my + my*mz) + y mz = 2.0*xi*mz + z Edit: Result is this:


« Last Edit: June 07, 2009, 12:57:13 AM by David Makin »

Logged




David Makin


« Reply #39 on: June 07, 2009, 04:33:25 AM » 

Hi all, Here's my best effort so far: http://makinmagic.deviantart.com/art/4DMandy125047448This is using 4D numbers as follows: *  r i j k  r  r i j k i  i r k j j  j k r i k  k j i r Which gives z^2+c: xi = mx yyy = my zzz = mz mx = mx*mx  my*my  mz*mz  mw*mw + x my = 2.0*my*xi + 2.0*mz*mw + y mz = 2.0*mz*xi + 2.0*yyy*mw + zz mw = 2.0*(mw*xi + yyy*zzz) + w


« Last Edit: June 07, 2009, 05:12:15 AM by David Makin »

Logged




bib


« Reply #40 on: June 07, 2009, 03:24:03 PM » 

The last one is very impressive and quite similar to what one would expect to see: same global shape, nice symmetries. However, there are still smooth surfaces when the 2D Mset border is never smooth. Is it because of a low number of iterations?



Logged

Between order and disorder reigns a delicious moment. (Paul Valéry)



David Makin


« Reply #41 on: June 07, 2009, 03:44:51 PM » 

The last one is very impressive and quite similar to what one would expect to see: same global shape, nice symmetries. However, there are still smooth surfaces when the 2D Mset border is never smooth. Is it because of a low number of iterations?
Yes  bailout is only x^2+y^2+z^2+w^2>4 and it's solid at just 11 iterations (using solid at a given iteration with an optimised "brute force" method for finding the intersections). I added the formula to my version of mmf.ufm:Sold3D Quaternions, I'll probably upload the new version to the UF database later today. Ideally it should use a distance estimator method but that requires the derivative and as far as I know the only way of getting that for the number system used is the full derivation of the derivative of 4 functions of 4 reals, which I was too lazy to calculate Using the dstance estimator one could get a lot more detail in the smooth areas without losing it in the complicated areas (also rendering would actually probably be more efficient).



Logged




David Makin


« Reply #42 on: June 08, 2009, 10:41:09 AM » 

Hmmm  doesn't look quite so good when in more detail, here it is solid at 20 iterations instead of 11: This image really shows up the necessity of rendering it using solid based on distance estimation (or iteration density) rather than using plain iteration.


« Last Edit: June 08, 2009, 10:45:51 AM by David Makin, Reason: update »

Logged





David Makin


« Reply #44 on: June 08, 2009, 06:44:55 PM » 

When I get home I'll post the UPR for it here  mmf.ufm:Solid3D Quaternions is the formula which I have updated to the UF formula database but there are still issues with the compiled zip files not updating so if you want to get the update you'll probably have to download the updated version of mmf.ufm manually from: http://formulas.ultrafractal.com/cgibin/formuladb?changesFor anyone impatient, once you've got the updated mmf.ufm just select the Solid3D Quaternions formula and then set the fractal type parameter to "Alternative q^2+c" Note that with the formula UF's zoom does not work correctly if the viewing rotation parameters in the formula are not zero  you need to set the "x, y, z" target parameters etc. by hand.


« Last Edit: June 08, 2009, 06:50:12 PM by David Makin »

Logged




