Alef
|
|
« on: December 05, 2011, 06:28:58 PM » |
|
Well, most of functions give some results only in one, two sides. I was compiling tricorn fractal with more powers. z=conj(z^2)+c There is no defined quaternion flip and conj functions so I written it like conj(z)= quaternion ( imag(z) , -real(z), -part_k(z), -part_j(z) ). Flips in all powers resulted bundles sticking out of the smooth 3D surface, and conj another ugly revolved surfaces with bundles in each sides of fractal. Ugly.
Since I cant comprehend triplex numbers and mandelbulb cossin#)*%&*#^ whatever formulas, I tried to put tricorn formulas one behind another and rotate using flip and conj. Results appeared with matrix, single +C for the first equation and all number parts beeing put in all rows in columns. So it generates swirls in all sides.The simplest square powered set were bleak 3D cousin of mandelbrot, but with larger the power, the smoother becomes surface and more circles appears. Results of cube power was realy suprising, it looks like head of some ancient statue, or amerindian artefact. The quaternion have two eyes in each side, two ears, and six swirls on top and bottom as a hair. (Pic 1.) GilgameshHead (quaternion) { //04.12.2011. by Edgars Malinovskis. Based on tricorn in 3D, rotating quaternion parts around matrix creates results in all dimensions. parameter real bailout; parameter int settype; parameter bool testInverted; parameter complex julia, juliasecond; quaternion C;
void init(void) { if (testInverted==true && settype=="Julia Set") { z = recip(pixel); C = julia + loquat (juliasecond); } else if (settype=="Julia Set") { z = pixel; C = julia + loquat (juliasecond); } else if (testInverted==true && settype=="Mandelbrot Set") { z = 0; C= recip(pixel); } else { z=0; C=pixel; } }
void loop(void) { //matrix of -> z^pow, real, imag, j, k. All part (real, i, j, k) are in each column and row. z= z*z*z+C; z= quaternion ( imag(z) , real(z), part_k(z), part_j(z) ); z= z*z*z; z= quaternion ( part_k(z) , part_j(z), imag(z), real(z) ) ; z= z*z*z; z= quaternion ( part_j(z) , imag(z), real(z), part_k(z) ) ; z= z*z*z; z= quaternion ( real(z) , part_k(z), part_j(z), imag(z) );
}
bool bailout(void) { //return( |z| <= bailout); return( abs(real(z))+ abs(imag(z)) + abs(part_j(z)) + abs(part_k(z)) <= bailout ); } void description(void) { this.title = "Gilgamesh Head (Quaternion)";
bailout.caption = "Bailout Value"; bailout.default = 12.0; bailout.min = 0.5; bailout.hint = "Defines the bailout radius: If pixel falls out of it, the iteration stops. Larger number increases details";
settype.caption = "Set type"; settype.enum = "Mandelbrot Set\nJulia Set"; settype.default = 0;
testInverted.caption="Cave of Patriarchs"; testInverted.default=false;
julia.caption = "Julia Parameter X,Y"; julia.default = (-0.73,0); julia.hint = "Different values create different Julia Sets."; julia.visible = (settype=="Julia Set"); juliasecond.caption = "Julia Par. Z axis"; juliasecond.default = (-0.5,0.4); juliasecond.hint = "Different values create different Julia Sets. Adds second part of quaternion numbers"; juliasecond.visible = (settype=="Julia Set"); } }
Zooming in to the line between its eyes reveals finer circular pattern (Pic 3). Julia set (Pic 2.) bulbs are prety nice, smoother. Probably becouse of long chain of operations it needs just 2 (!) iterations to get the final mandelbrot set and 3 iterations to the final Julia set. This could be one of the techniques to rotate mandelbrots to get some mandelbulb. Just that this creates circles and holes and not the head features of mandelbrot. Puting some comentary signs // before the equations creates pine cone like quaternions. It think this formula could make at least something in 2D, it brings just black screen if no real part at least in first two columns in all rows. p.s. If you find this usefull, don't forget the credits. By Edgars Malinovskis.
|
|
« Last Edit: December 05, 2011, 06:39:18 PM by Asdam »
|
Logged
|
fractal catalisator
|
|
|
Alef
|
|
« Reply #1 on: December 05, 2011, 06:35:18 PM » |
|
Here is animation. I 'm thinking, do changing number part sequence, powers and more or less equations could be created not only the circular pattern, but alsou some more advenced geometry. However looking at this head makes me to think about year 2012 mayan- sumerian ancient astronaut / end of the world theories.
|
|
« Last Edit: December 05, 2011, 06:41:15 PM by Asdam »
|
Logged
|
fractal catalisator
|
|
|
DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal -like the tip of it
|
|
« Reply #2 on: December 07, 2011, 11:26:23 PM » |
|
I cannot see fractal detail at all. More iters?
|
|
|
Logged
|
No sweat, guardian of wisdom!
|
|
|
Alef
|
|
« Reply #3 on: December 08, 2011, 04:36:34 PM » |
|
It is pretty smooth unless you zoom in. Here I zoomed to the eyeball.
|
|
|
Logged
|
fractal catalisator
|
|
|
Alef
|
|
« Reply #4 on: December 08, 2011, 04:43:44 PM » |
|
It have fractal features on line pattern. Here I zoomed in between the eyes and then on the line.
I was thinking, that mandelbrot set is generated becouse in complex numbers x^2 = real^2 >< y^2 = i^2. So mandelbrot set is property of numbers themselves and not just formula z=z^2+c.
In quaternion numbers still x^2 >< y^2. But I think z^2 = j^2 = y^2 = i^2. So correct z^2 allways will be eather x^2 or y^2 or n*y^2. So by having equal values at z and y axis it generate rotation surface.
z=z*z+c in quaternion numbers produce rotation surface. Here rotation surface is rotated number of times.
|
|
|
Logged
|
fractal catalisator
|
|
|
|
Alef
|
|
« Reply #6 on: December 11, 2011, 06:52:26 PM » |
|
I was wrong, increasing render parameters do increases number of details to explore, forehead region still are idealy smooth. But the most interest are in overall face.
Changing last equation to z=z*z*z-z; turned fractal into more robotic head like of the Futurama's Bender, but with protruding snale like eyes;)
|
|
« Last Edit: December 11, 2011, 06:54:28 PM by Asdam »
|
Logged
|
fractal catalisator
|
|
|
Alef
|
|
« Reply #7 on: December 16, 2011, 06:37:39 PM » |
|
After main iteration equations adding z=(cabs(z)+0.1)*z/cabs(z), that is at the end of each iterations adding 0.1 of the same sign, a bitt increases 3D features of fractal. Not shure, but this realy creates more realistic surface. Maybe it could be expanded to mendelbulbs Here is basic head: http://edo555.deviantart.com/art/Gilgamesh-Head-273451950?q=gallery%3AedoHere is with z=(cabs(z)+0.1)*z/cabs(z), and with same parameters. http://edo555.deviantart.com/art/Gilgamesh-head-274213653?q=gallery%3Aedo555&qo=1With the same iteration parameters head had become almost photorealistic, so finaly I can post it it the David Icke forums and claim it is cia found sumerian/mayan statue explaining 2012.12.12 Maybe I would start new cospiracy theory. - Small zoom in with series of power z^5+C, Z^4, Z^4, Z^3 - Ancient greek like pattern on 3D surface by orbit trap colouring. Yellow is up and blue is down.
|
|
|
Logged
|
fractal catalisator
|
|
|
Alef
|
|
« Reply #8 on: December 27, 2011, 05:30:03 PM » |
|
Finaly animated the fractal. Calculations took three days, three nights, three hours, 22 minutes and three by three seconds. Result are suprisingly realistic (for the soft), but it don't zoomed so well as do mandelbulbs, as it don't generates clean close picture with the same parameters as for distance wiev. But changing parameters changes details.
http://www.youtube.com/v/0F2_V_5zmZc&rel=1&fs=1&hd=1Final code was using z*z*z+k*z as it allows creating Bender or Buddha like heads. GilgameshHead (quaternion) { //18.12.2011. by Edgars Malinovskis. //Based on mandelbar. Rotating quaternion parts around matrix creates results in all dimensions. //You my redistribute, modify, derivate or use comercialy as you wish as long as you give proper credits.
parameter real bailout, coef1, coef2, coef3, coef4; parameter int settype, powers; parameter bool testInverted, testNumbers, testAdvanced, depthincreaser; parameter quaternion julia, perturb; quaternion C;
void init(void) { if (testInverted==true && settype=="Julia Set") { z = recip(pixel); C = julia; } else if (settype=="Julia Set") { z = pixel; C = julia; } else if (testInverted==true && settype=="Mandelbrot Set") { z = perturb; C= recip(pixel); } else { z=perturb; C=pixel; } }
void loop(void) {
if (testNumbers==true) { //manipulate numbers so that x^2 >< y^2 >< z^2 z= quaternion ( real(z) , imag(z), part_j(z) + part_k(z), 0.5*part_k(z) - part_j(z) ); }
if (testAdvanced==false) { //Basic. Matrix of -> z^pow and numbers: real, imag, j, k. All parts are in each column and row. z= z*z*z+C; z= quaternion ( imag(z) , real(z), part_k(z), part_j(z) ); z= z*z*z; z= quaternion ( part_k(z) , part_j(z), imag(z), real(z) ) ; z= z*z*z; z= quaternion ( part_j(z) , imag(z), real(z), part_k(z) ) ; z= z*z*z; z= quaternion ( real(z) , part_k(z), part_j(z), imag(z) ); }
else if (testAdvanced==true && powers=="3,3,3,3") { z= z*z*z+C+z*coef1; z= quaternion ( imag(z) , real(z), part_k(z), part_j(z) ); z= z*z*z+z*coef2; z= quaternion ( part_k(z) , part_j(z), imag(z), real(z) ) ; z= z*z*z+z*coef3; z= quaternion ( part_j(z) , imag(z), real(z), part_k(z) ) ; z= z*z*z+z*coef4; z= quaternion ( real(z) , part_k(z), part_j(z), imag(z) ); }
else if (testAdvanced==true && powers=="4,4,4,4") { z= sqr(sqr(z))+C+z*coef1; z= quaternion ( imag(z) , real(z), part_k(z), part_j(z) ); z= sqr(sqr(z))+z*coef2; z= quaternion ( part_k(z) , part_j(z), imag(z), real(z) ) ; z= sqr(sqr(z))+z*coef3; z= quaternion ( part_j(z) , imag(z), real(z), part_k(z) ) ; z= sqr(sqr(z))+z*coef4; z= quaternion ( real(z) , part_k(z), part_j(z), imag(z) ); }
else if (testAdvanced==true && powers=="5,4,2,3") { z= sqr(sqr(z))*z+C+z*coef1; z= quaternion ( imag(z) , real(z), part_k(z), part_j(z) ); z= sqr(sqr(z))+z*coef2; z= quaternion ( part_k(z) , part_j(z), imag(z), real(z) ) ; z= sqr(z)+z*coef3; z= quaternion ( part_j(z) , imag(z), real(z), part_k(z) ) ; z= z*z*z+z*coef4; z= quaternion ( real(z) , part_k(z), part_j(z), imag(z) ); } else if (testAdvanced==true && powers=="5,5,5,5") { z= sqr(sqr(z))*z+C+z*coef1; z= quaternion ( imag(z) , real(z), part_k(z), part_j(z) ); z= sqr(sqr(z))*z+z*coef2; z= quaternion ( part_k(z) , part_j(z), imag(z), real(z) ) ; z= sqr(sqr(z))*z+z*coef3; z= quaternion ( part_j(z) , imag(z), real(z), part_k(z) ) ; z= sqr(sqr(z))*z+z*coef4; z= quaternion ( real(z) , part_k(z), part_j(z), imag(z) ); }
if(depthincreaser==true) { z= z+0.1*z/cabs(z); } } bool bailout(void) { return( abs(real(z))+ abs(imag(z)) + abs(part_j(z)) + abs(part_k(z)) < bailout ); } void description(void) { this.title = "Gilgamesh Head (Quaternion)"; this.helpfile="http://www.fractalforums.com/3d-fractal-generation/gilgamesh-head-the-3d-mandelbulb-like-fractal/";
bailout.caption = "Bailout Value"; bailout.default = 12.0; bailout.min = 0.5; bailout.hint = "Defines the bailout radius: If pixel falls out of it, the iteration stops. Larger number increases details";
settype.caption = "Set type"; settype.enum = "Mandelbrot Set\nJulia Set"; settype.default = 0;
testInverted.caption="Inverted 'Cave' Set"; testInverted.default=false;
testNumbers.caption="Manipulated Numbers x^2 >< y^2 >< z^2"; testNumbers.default=false; depthincreaser.caption="+Surface z=(cabs(z)+0.1)*z/cabs(z)"; depthincreaser.default=false;
julia.caption = "Julia Parameter"; julia.default = (-0.73,0.3,-0.5,0.3); julia.hint = "Different values create different Julia Sets."; julia.visible = (settype=="Julia Set");
testAdvanced.caption="Additional Options ->"; testAdvanced.default=false;
coef1.caption = "K of z=z^n+K*z+c"; coef1.default = 0; coef1.hint = "Implements linear z to the matrix of equations."; coef1.visible = (testAdvanced==true); coef1.min = -2.1; coef1.max = 2.1;
coef2.caption = "K2 of z=z^n+K2*z"; coef2.default = 0; coef2.visible = (testAdvanced==true); coef2.min = -2.1; coef2.max = 2.1;
coef3.caption = "K3 of z=z^n+K3*z"; coef3.default = 0; coef3.visible = (testAdvanced==true); coef3.min = -2.1; coef3.max = 2.1;
coef4.caption = "K4 of z=z^n+K4*z"; coef4.default = 0; coef4.visible = (testAdvanced==true); coef4.min = -2.1; coef4.max = 2.1; powers.caption = "Equation Powers n"; powers.enum = "3,3,3,3\n4,4,4,4\n5,4,2,3\n5,5,5,5"; powers.default = 0; powers.visible = (testAdvanced==true); perturb.caption = "Base Point/perturbation"; perturb.default = (0,0,0,0); perturb.hint = "Starts calculation with this number."; perturb.min = -0.9; perturb.max = 0.9; perturb.visible = (testAdvanced==true && settype=="Mandelbrot Set"); } }
|
|
|
Logged
|
fractal catalisator
|
|
|
Alef
|
|
« Reply #9 on: January 07, 2012, 03:51:50 PM » |
|
Square power, another square power and another square power and once more square power instead of 3,3,3,3 produced rather poor version of 3D mandelbrot. The most untrue 3D mandelbrot ever, but not without its own peculiar beauty. More 3D fractal features as resulting power is just 16, unlike of power 3,3,3,3 head fractal having enermous power 81 in just single iteration step. EDITED: Repeating circle pattern should be some kind of (complex spherical) interference especialy seen in inside of this. Some wave interferance of rotated quaternions having wave surface.
|
|
« Last Edit: February 24, 2012, 04:06:33 PM by Asdam »
|
Logged
|
fractal catalisator
|
|
|
|