The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!

 Pages: [1] 2 3 ... 6   Go Down
 Author Topic: Amazing fractal  (Read 82372 times) Description: 0 Members and 1 Guest are viewing this topic.
Fractal Molossus

Posts: 703

 « on: February 01, 2010, 02:23:26 AM »

This is a new fractal that is member of the fractals described in http://www.fractalforums.com/3d-fractal-generation/continuous-conformal-mandelbrots/msg12464/#new
The formula is simple:
Code:
float scale = 2
; fold box onto itself
if (point.x > 1)
point.x = 2 - point.x
elseif (point.x < -1)
point.x = -2 - point.x
endif
if (point.y > 1)
point.y = 2 - point.y
elseif (point.y < -1)
point.y = -2 - point.y
endif
if (point.z > 1)
point.z = 2 - point.z
elseif (point.z < -1)
point.z = -2 - point.z
endif
; fold sphere onto itself
float length = point.Magnitude()
endif
point.MultiplyEquals(scale)
Here are the first shots for scale = 3:
 closeUpFront.jpg (190.18 KB, 798x797 - viewed 4537 times.)  closeUpFrontB.jpg (178.23 KB, 797x630 - viewed 4297 times.)  insides.jpg (137.52 KB, 798x720 - viewed 4372 times.) « Last Edit: February 02, 2010, 02:20:32 AM by Tglad » Logged
Fractal Molossus

Posts: 703

 « Reply #1 on: February 01, 2010, 02:29:14 AM »

Here's an opening, lit a little from below with scale = 3, and a shot using scale = 2.
 cathedral.jpg (242.99 KB, 797x767 - viewed 4334 times.)  scale2.jpg (247.4 KB, 797x797 - viewed 4465 times.) Logged
cKleinhuis
Fractal Senior

Posts: 7044

formerly known as 'Trifox'

 « Reply #2 on: February 01, 2010, 03:00:25 AM »

cool one, nice ornaments!
 Logged

---

divide and conquer - iterate and rule - chaos is No random!
msltoe
Iterator

Posts: 187

 « Reply #3 on: February 01, 2010, 03:46:23 AM »

Tglad: This looks like the inside of a cathedral. Mesmerizing!
What is your termination condition? I'm using a norm < 32, and the extents are at least -6 to 6.
Here's a slice through the middle. If only Escher had a 2 GHz laptop...

-mike
 mand.cath_scale3.slice3.jpg (185.49 KB, 600x600 - viewed 4415 times.) « Last Edit: February 01, 2010, 04:42:30 AM by msltoe, Reason: Added picture » Logged
Fractal Molossus

Posts: 703

 « Reply #4 on: February 01, 2010, 05:36:53 AM »

I'm terminating at > 1024. Need to zoom in to see the details, like attached pic for scale=3.
Scale = 2 is more connected, see 2nd pic.
 lookingInS.jpg (228.94 KB, 792x653 - viewed 4439 times.)  wholeThingS.jpg (108.19 KB, 596x585 - viewed 4547 times.) Logged
kram1032
Fractal Senior

Posts: 1863

 « Reply #5 on: February 01, 2010, 04:34:01 PM »

cube cathedral
Really great

Though I guess, you terminate at < 1024, rather than > 1024?
 Logged
Dinkydau
Fractal Senior

Posts: 1616

 « Reply #6 on: February 01, 2010, 06:22:55 PM »

Very cool, I like it.
 Logged

stigomaster
Guest
 « Reply #7 on: February 01, 2010, 06:44:23 PM »

Steampunk fractal goodness
 Logged
bib
Global Moderator
Fractal Senior

Posts: 2070

At the borders...

 « Reply #8 on: February 01, 2010, 06:49:05 PM »

I LOVE these pics. It's the convergence of fractal and decorative architecture.
Anyone wrote the equivalent for Ultrafractal?
 Logged

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

Posts: 703

 « Reply #9 on: February 02, 2010, 02:15:11 AM »

I'm using Ultrafractal actually, to make it work, just use the code above in the inner loop (I just replace an existing mandelbulb formula where useDE is false, must be pasted in both places, for pos iteration and lighting iteration). Then add this line prior to the code
Code:
point.Init(real(zri), imag(zri), zj)
and these lines afterwards
Code:
zri = point.x + flip(point.y) + cri
zj = point.z + cj
and not forgetting to initialise the point vector at the beginning of the file:
Code:
Vector point = new Vector()
Lastly, you need the vector class implemented, I put this in mmf.ulb
Code:
class Vector(){
public:
func Init(float xx, float yy, float zz)
x = xx
y = yy
z = zz
endfunc
float func Dot(Vector other)
return x*other.x + y*other.y + z*other.z
endfunc
func Divide(float f)
x = x / f
y = y / f
z = z / f
endfunc
func Multiply(Vector a, float f)
x = a.x * f
y = a.y * f
z = a.z * f
endfunc
func MultiplyEquals(float f)
x = x * f
y = y * f
z = z * f
endfunc
func Normalise()
float mag = sqrt(x*x + y * y + z*z)
if mag>0
x = x / mag
y = y / mag
z = z / mag
endif
endfunc
float func Magnitude()
return sqrt(x*x + y*y + z*z)
endfunc
x = a.x + b.x
y = a.y + b.y
z = a.z + b.z
endfunc
x = x + a.x
y = y + a.y
z = z + a.z
endfunc
func Subtract(Vector a, Vector b)
x = a.x - b.x
y = a.y - b.y
z = a.z - b.z
endfunc
func Cross(Vector a, Vector b)
float _x = (a.y * b.z) - (a.z * b.y)
float _y = (a.z * b.x) - (a.x * b.z)
float _z = (a.x * b.y) - (a.y * b.x)

x = _x
y = _y
z = _z
endfunc
float x
float y
float z
}
I would add it to the MMFwip3D.ufm but I'm not sure if this is reserved just for mandelbulbs, don't know how to add an extra fractalType and am getting confused with the number of duplications of the inner loop algorithms in the latest version. Anyway, let me know if that doesn't work.

I put some pics in the gallery section http://www.fractalforums.com/index.php?action=gallery;su=user;cat=111;u=853
Do we dare go inside? -
 entranceS.jpg (239.44 KB, 680x799 - viewed 3970 times.)  entrance2S.jpg (245.11 KB, 728x749 - viewed 4225 times.) « Last Edit: February 02, 2010, 02:22:29 AM by Tglad » Logged
M Benesi
Fractal Schemer

Posts: 1075

 « Reply #10 on: February 02, 2010, 03:56:12 AM »

Nice.
 Logged

twinbee
Fractal Fertilizer

Posts: 383

 « Reply #11 on: February 02, 2010, 05:59:01 AM »

This is really amazing - not seen anything really like it. Definitely suited to exploration - love to see some higher res pics!
 Logged
David Makin
Global Moderator
Fractal Senior

Posts: 2286

 « Reply #12 on: February 02, 2010, 12:56:37 PM »

I would add it to the MMFwip3D.ufm but I'm not sure if this is reserved just for mandelbulbs, don't know how to add an extra fractalType and am getting confused with the number of duplications of the inner loop algorithms in the latest version.

Just to clarify - the third use of the inner loop is in the "loop:" section of the UF code and it's used in the conventional UF manner such that just one iteration is performed per pass through the UF loop, you'll notice it's just the main iteration code without any DE stuff.
It's there for the "UF colouring" options where the user can choose to colour the fractal using any class-based UF colouring.
Basically the "solid" location is iterated as if it were a standard UF formula so that the orbit is passed to the colouring - of course we have to convert our 3D/4D value of z to a standard complex z value as that's all that gets passed to the colouring so what I've done is used methods such that on conversion the complex value of the z passed to the colour always has the same magnitude as the original 3D/4D value.
 Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
Jesse
Fractal Schemer

Posts: 1013

 « Reply #13 on: February 02, 2010, 08:51:45 PM »

Somebody burned a hole in mine
 cath2blow.jpg (255.57 KB, 1000x1000 - viewed 6637 times.) Logged
bib
Global Moderator
Fractal Senior

Posts: 2070

At the borders...

 « Reply #14 on: February 02, 2010, 09:29:35 PM »

Thanks Tglad for the code, but my competences are too limited to put the pieces of the puzzle together. After copy/pasting your pieces of code in an approximatively random order and adding a few lines to get rid of errors like "Variable has not been detected" (C), I'm stuck with a desperately black image

Any chance you could post the entire code, or even better, an ultrafractal file (upr, ufr, ufm...) ?
 Logged

Between order and disorder reigns a delicious moment. (Paul Valéry)
 Pages: [1] 2 3 ... 6   Go Down