twinbee
|
|
« Reply #45 on: March 17, 2009, 07:11:44 PM » |
|
Hey there, welcome to the forum! Great to see someone else interested in the search too. It's almost like hunting for the yeti, loch ness, or UFOs, except at least this has a chance of existing Kinda weird to see this kind of thing in abstract maths, rather than on a material level too. And yeah, the reward is definitely enticing. There was a thread recently at povray.org that you may find interesting. Goes into a little bit more detail about whether it exists, and how one would render such a beast (in terms of lighting, iteration level etc.): http://news.povray.org/povray.off-topic/thread/%3C48d7d290%241%40news.povray.org%3E/?mtop=9I'd be happy to try out your suggestion and post the results here, but I can't quite follow your description so a diagram would be nice. Feel free to to use my 'sphere' as a template: http://www.skytopia.com/project/fractal/sphere.pngActually, even better, if you know a little programming, you could alter the function below. I've kept it as the 'slow' long way for clarity: // A triplex number is a '3D' number triplex multiply(triplex a, triplex b) { triplex n; double pi=3.14159265; double r = pow(a.x*b.x + a.y*b.y + a.z*b.z , 0.5); double yang = atan2( pow(a.x*b.x + a.y*b.y, 0.5) , a.z ) ; double zang = atan2(a.y , b.x); n.x = (r*r) * sin( yang*2 + 0.5*pi ) * cos(zang*2 +pi); n.y = (r*r) * sin( yang*2 + 0.5*pi ) * sin(zang*2 +pi); n.z = (r*r) * cos( yang*2 + 0.5*pi ); return n; }
|
|
« Last Edit: March 17, 2009, 07:15:58 PM by twinbee »
|
Logged
|
|
|
|
lycium
|
|
« Reply #46 on: March 18, 2009, 12:21:31 PM » |
|
fixed the links, they now point to imageshack instead of fractographer.com (RIP)
|
|
|
Logged
|
|
|
|
monguin61
Forums Newbie
Posts: 2
|
|
« Reply #47 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 #48 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 #49 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" ray-tracing 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 "brute-force" method ?
|
|
« Last Edit: May 25, 2009, 02:36:39 AM by David Makin »
|
Logged
|
|
|
|
twinbee
|
|
« Reply #50 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 #51 on: May 25, 2009, 09:23:13 PM » |
|
Hi all, take a look at this IFS: http://makinmagic.deviantart.com/art/Pure-Julia-IFS-123685891As 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 #52 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 iso-surface 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 #53 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 #54 on: June 02, 2009, 02:25:12 AM » |
|
Hey that's neat - so near yet so far...
|
|
|
Logged
|
|
|
|
David Makin
|
|
« Reply #55 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 #56 on: June 07, 2009, 04:33:25 AM » |
|
Hi all, Here's my best effort so far: http://makinmagic.deviantart.com/art/4D-Mandy-125047448This 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 #57 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 M-set 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 #58 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 M-set 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:Sold-3D 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 #59 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
|
|
|
|
|