Welcome to Fractal Forums

Fractal Software => Fractal Programs => Topic started by: superheal on September 11, 2013, 11:21:35 PM




Title: Fractal Zoomer 1.0.4.3
Post by: superheal on September 11, 2013, 11:21:35 PM
Hello to the awesome fractal community!

I ll give you a link of my fractal 2D renderer. I was working on it for like 2 and half years, and my main goal was to test my programming skills.
I mostly added options I liked from other fractal software. The code is written in java.

http://sourceforge.net/projects/fractalzoomer/?source=directory

There is nothing fancy about the application. Its not real time nor has high precision. Just the standard java doubles. I ve tried to add as many options as I could, but its still an ongoing process as I come along to new stuff :D

The main features are:
Boundary tracing algorithm
Over 100 fractal generating functions
Julia sets
Orbits
Image filters
Plane transformations


I am open to feedback/suggestions or information about potential bugs!


Title: Re: Fractal Zoomer 1.0.4.3
Post by: Nahee_Enterprises on September 12, 2013, 09:54:21 AM
    Hello to the awesome fractal community!
    I ll give you a link of my fractal 2D renderer.  I was working on it for like 2 and half years, and my main goal was to test my programming skills.
    I mostly added options I liked from other fractal software.  The code is written in java.
         http://sourceforge.net/projects/fractalzoomer/?source=directory
    There is nothing fancy about the application.  Its not real time nor has high precision.  Just the standard java doubles.
    I ve tried to add as many options as I could, but its still an ongoing process as I come along to new stuff  :D
    I am open to feedback/suggestions or information about potential bugs!

Greetings, and welcome to this particular forum !!!     :D

Programming a decent fractal rendering application does test one's skills as a programmer, no matter what language it is coded in.  You can now be proud that yours is just one of more than 700 which are available to the public.
 


Title: Re: Fractal Zoomer 1.0.4.3
Post by: superheal on August 31, 2015, 01:13:06 PM
Hello!

I was not updating this post, but I was busy updating my software with all the interesting things I found in this forum!
There have been a numerous of updates, the latest update is version 1.0.5.8

The most important changes are:
User formulas
User coloring formulas
Variable Initial value formulas
User Plane Transformations
User bailout tests
3d Heightmap
Polar Coordinates projection
Bump-mapping and fake distance estimation

Cheers!  :dink:


Title: Re: Fractal Zoomer 1.0.4.3
Post by: Caleidoscope on September 01, 2015, 09:24:07 AM
Fascinating picture. Outstanding!   :)


Title: Re: Fractal Zoomer 1.0.4.3
Post by: TheRedshiftRider on September 01, 2015, 11:29:22 AM
Wow, colouring but also bailout now have a user option. Even more customization.

Greetings, and welcome to this particular forum !!!     :D

Programming a decent fractal rendering application does test one's skills as a programmer, no matter what language it is coded in.  You can now be proud that yours is just one of more than 700 which are available to the public.
 


:) you're right but this one is not as simple as most of the 700.


Title: Re: Fractal Zoomer 1.0.4.3
Post by: Adam Majewski on September 02, 2015, 09:08:05 AM
Hi,

Thx for great program

Can you describe coloring option :
https://a.fsdn.com/con/app/proj/fractalzoomer/screenshots/fractal%2005-01-2015%2012;42;35.png

?
( function, algoriothm)

TIA

Adam


Title: Re: Fractal Zoomer 1.0.4.3
Post by: superheal on September 02, 2015, 07:26:23 PM
It is the newton method, z = z - f(z) / f'(z)

where f(z) = cos(z)
         f'(z) = -sin(z)

Every point on the plane was rotated 45 degrees.

z(0) = rotate(z(0), 0 + 0i, 45) , where 0 + 0i is the center of the rotation

Next every point was transformed with the circle inversion.
Code:
circle_inversion(z, center, radius) {

distance = norm(z - center)^2
radius2 = radius * radius

z = [re(center) + (re(z) - re(center)) * radius2 / distance] + [im(center) + (im(z) - im(center)) * radius2 / distance]*i

return z
}

for the current image every z(0) = circle_inversion(z(0), 1 + 1i, 3)

Next every point is iterated through the normal newton method process, until it converges to a root.
The escape criterion is norm(z - zold) <= convergent_bailout (zold is the previous value)

The coloring algorithm is a mix of the standard smooth escape time algorithm for converging fractals, along with a formula that tries to assign a different number depending on the final z value (the root).

For the smooth escape time algorithm I used:
Code:
power = log(norm(z - zold)) / log(norm(zold - zold2))
f = iterations + log(log(convergent_bailout) * 0.5 / log(norm(z - zold))) / log(power)

(zold2 is the second previous value)

For the root extraction I used the phase and the squared magnitude of the final value along with some scaling factors (I had to round the final re and im values because of small variations):
Code:
temp = floor(1000 * re(z) + 0.5) / 1000
temp2 = floor(1000 * im(z) + 0.5) / 1000

f2 = ((atan2(temp2, temp) / (2 * pi) + 0.75) * 59 * pi) + (temp * temp + temp2 * temp2) * 2.5
59 * pi is just a random scale factor, you can use whatever you want

This formula obviously does not uniquely define every root of a function (you can have almost the same value for different roots)
but it works for my purpose.

the final number is, res = f + f2

Having this floating point number (res) you need to find the coresponding color.
Lets assume that you have a palette with N colors (palette[N])

You need to use as your data
(int)res, palette[(int)res]
(int)(res + 1), palette[(int)(res + 1)]

and you must perform linear interpolation to find the intermediate value res, which as I mentioned was a floating point value.
The interpolation must be performed in every color channel (R,G,B) seperately.

The final image was processed with the bump mapping algorithm, and the fake distance estimation algorithm.

In the attachments you will find the saved settings of the image (Dont forget to disable the boundary tracing algorithm, because it glitches the image when you use bump mapping).


Title: Re: Fractal Zoomer 1.0.4.3
Post by: superheal on September 02, 2015, 09:11:16 PM
The version 1.0.5.9 is out!

It features some changes to the custom palette editor.
The most important one is the color picker, which lets you import to the palette any color from your screen. The old way of performing this action, was to print screen  an image containing the desired color and use a color picker from paint.exe (or a similar program) to identify the color's rgb values, and then manually insert it to a color slot.
Also some helpful additions are the insert/remove a color from a color slot options.



Title: Re: Fractal Zoomer 1.0.4.3
Post by: Adam Majewski on September 03, 2015, 05:33:35 PM
It is the newton method, z = z - f(z) / f'(z)

where f(z) = cos(z)
         f'(z) = -sin(z)

So initial image was :

http://yozh.org/wp/wp-content/uploads/2012/10/fig0130.13.png

Then :
- Every point on the plane was rotated 45 degrees around zero
- every point was transformed with the circle inversion.
- every point is iterated through the normal newton method process, until it converges to a root.
- The coloring algorithm is a mix of the standard smooth escape time algorithm for converging fractals, along with a formula that tries to assign a different number depending on the final z value (the root).

Quote
The final image was processed with the bump mapping algorithm, and the fake distance estimation algorithm.

It was made inside your program ?

Quote
In the attachments you will find the saved settings of the image (Dont forget to disable the boundary tracing algorithm, because it glitches the image when you use bump mapping).

I can't open it inside text ediotor, is it a binary file ? ( I have only Linux )


Title: Re: Fractal Zoomer 1.0.4.3
Post by: superheal on September 03, 2015, 08:58:23 PM
The image you posted is indeed newton's method applied for cos(z). (without the rotation and the circle inversion transformation)
By the way, rotation is not so important for the produced image. I was just enumerating everything I used for it.

Here is mine:
(http://i.imgur.com/Fz1Faep.png)

Yes, both bump mapping and fake de are included in the program.
Unfortunately the saved file is in java object format, so if you open it with a text editor you will read jibberish.

Here is the .jar file of the executable, so you can give it a try in linux. I dont know how it gonna behave though. Java programs are portable but some gui stuff usually break.
http://sourceforge.net/projects/fractalzoomer/files/Fractal%20Zoomer.jar/download


Title: Re: Fractal Zoomer 1.0.4.3
Post by: Adam Majewski on September 04, 2015, 06:25:30 PM
Hi,

Thx. The executable jar file works fin. I have the same image.

Your program has so many options , great
Is it possible to show the content of fhz file  ( for example in a text format ) ?
Can you expand help ? Also description inside the code is welcome ( program is as good as it's doc )

See for example :
http://mightymandel.mathr.co.uk/
http://www.mndynamics.com/indexp.html
Thx

Adam

https://en.wikibooks.org/wiki/Fractals


Title: Re: Fractal Zoomer 1.0.4.3
Post by: superheal on September 04, 2015, 08:22:57 PM
I am glad it works :D
Does linux support the chm help file? I will do my best to further enhance it with information. (If you found something in particular confusing or ill documented can you please specify it so I can look into it asap!)

On the fzs settings file part, I will give you an example of its contents.
Code:
x_center = -2.0
y_center = 0.0
size = 6.0
bailout = 2.0
function = 0
palette = 3
out_coloring_method = 0
in_coloring_method = 0
...

It basically stores everything is active the moment you save (Excluding the filters or julia map or the 3d heightmap).
Some of the fields, like function, store an integer value that defines the active function (for instance Mandelbrot was assigned to 0).
I cant change the way the program saves its settings, because then all the old saved settings will be useless.
Do you want me to create another save file format just for information purposes?
If yes, then fields like function should print, function = Mandelbrot, instead of an arbitrary value.
Another option is to have a new window that contains all the active options at once, inside a textarea.

On the code comments part, thats the achilles heel of most software, and I definatelly feel bad for it. Myself had trouble implementing some stuff, like boundary tracing or the 3d heightmaps or the polar projection for the same reason. With alot of trial and error I managed to import them.

I will do my best to satisfy your needs the next couple of days, but I will have to go completely off the grid for about a month (joining the army the upcoming Monday, and I will be doing the basic military training).


Title: Re: Fractal Zoomer 1.0.4.3
Post by: Adam Majewski on September 04, 2015, 09:17:32 PM
Quote
Does linux support the chm help file?
Yes. I have read it.

Quote
Do you want me to create another save file format just for information purposes?

It would be great, for example simple text file.

Quote
Another option is to have a new window that contains all the active options at once, inside a textarea.
It would be good if one can copy it.




Title: Re: Fractal Zoomer 1.0.4.3
Post by: superheal on September 05, 2015, 04:40:15 PM
1.0.6.0 is up.

It features a settings overview report creator.


Title: Re: Fractal Zoomer 1.0.4.3
Post by: superheal on September 07, 2016, 11:18:02 PM
Hello all!

I was not very active due to my new job plus my military obligations.
A new version (1.0.6.3) is out.

It mainly features:
Coupled formulas (user configured too).
Added new functions to the every user formula editor.
New image filters.
New tool, Domain Coloring.
(https://en.wikipedia.org/wiki/Domain_coloring)

Its a nice way to create images, but works best at low iterations.

Cheers  :beer:


Title: Re: Fractal Zoomer 1.0.4.3
Post by: TheRedshiftRider on September 07, 2016, 11:37:39 PM
Thank you, sounds like a nice update.


Title: Re: Fractal Zoomer 1.0.6.4
Post by: superheal on March 13, 2017, 11:02:54 PM
Hello guys!

The new version is out, and it features alot of new functions and variables, specifically in the user formulas.
The newest feature, is that the user can now write code in Java, (based uppon the Complex class provided) and
define some more functions that can be user in the user formulas.

https://sourceforge.net/projects/fractalzoomer

Have fun exploring! ;D


Title: Re: Fractal Zoomer 1.0.4.3
Post by: Gerson on December 05, 2017, 09:17:32 PM
User formulas are very good to test formulas.
Other ones are too, see:
https://gs13.deviantart.com/art/Gs13-deviant-055-717861924