Here be dragons…

Hello, will release a new beta in the next days – mainly technical updates and bug fixes, but this will be the last purely technical update. So next stop will be some new features. But in the meantime, here is the new Fractview icon:

Yes, its from Seahorse valley. But it was taken in a different way. Let me explain: The mandelbrot set serves as a map for julia sets in it. What is not known that much is that you can invert the mandelbrot set by using the reciprocal of the coordinates, kind of turning the mandelbrot set inside out.

Inverse Mandel.png

Mandelbrot set of the formula “mandelbrot(z, 1 / p)”

The heart-shaped body effectively becomes a drop.

The other day, I was browsing through sea horse valley on my smartphone when suddenly I had an idea: In this ‘drop’ fractal, features close to the origin (0, 0) are enlarged to infinity while features far away are centered. What about not using the origin but some other point that exhibits more interesting features than the (boring) origin?

So, the formula that I was exploring was “mandelbrot(z, 1 / p + somepoint)”, and the results were so amazing, I immediately created a new icon for Fractview (the feature graphic of this blog post).

Let’s look at the result: First, the second biggest feature in the mandelbrot set is  the circle that is centered at -1:0. By inverting it using -1 we obtain a rounded inside-out mandelbrot set. It reminds me of a fractal solar eclipse.

Mandelbrot Eclipse.png

Mandelbrot set of the formula “mandelbrot(z, 1 / p – 1)”

Now, that  is a nice plate. But where are the dragons? Well, I tweaked the Default fractal program a bit (you will find it in the presets at the end of the article) and now apart from the “julia set” flag, there is now a “reciprocal” flag that uses the current julia point as parameter. If that was a bit complicated, just import these favorites from my public Google Drive in Fractview. You will find “Default with reciprocal” there. Just browse to a nice spot, eg in the sea horse valley, select “Center” for “julia point” in parameters and toggle the “reciprocal” flag. Looks boring? Remember – features that were close before are now far away, so zoom out, and then

Enter the dragon.png

Enter the dragon

You will find the dragon at the edge of the known world. On your way there, you will find weird shapes (well, these are fractals, right?). Really weird I mean.  I found this when looking at a julia island in the dentrites:

Seahorse lightning.png And after zooming out for another factor of 20 it completely changed: Confused Dragon.png

Yes, both of these images are just a zoom factor of 20 away (the above image is located in the center, you can see it as a small dot right in the center of the lower image).

All of these lovely images are part of the collection linked here again. 

Finally, a lovely image using 0.279 as julia point:

Dragon (0.27x0).png

That was some fun on the weekend 🙂

Stay tuned for an updated beta version in the next days btw, and until then enjoy the endless possibilities of Fractview. Btw, 5600 users and counting.

Cheers, and enjoy your weekend

Karl

Advertisements
Posted in Fractals, Mandelbrot, Updates | Leave a comment

Beta version 3.2.3

Hi, just a quick note: Since I noticed that there was a significant amount of crashes in newer Android versions I checked and fixed a bug. About the details: On Android 7 and 8 the app might crash if you try to export your favorite’s collection or if you share an image (saving to the gallery or saving the image as a wallpaper works).

I fixed these two bugs in the current beta version and if there are no reports of further critical bugs, it will be released as version 3.2.3 during this weekend.

If you can’t wait, you can become a beta tester via the google play store.

Version 3.3 is still to come, so hang on 🙂

Have a nice weekend,

— Karl

Posted in Updates | Leave a comment

Lyapunov Fractals

Lyapunov fractals are very interesting. The basic formula rx(1 – x) is well-known from Bifurcation diagrams. In Mandelbrot sets, the parameter r is the current point (in fact, this is the Lambda preset). Nonetheless these fractals look completely different from other common fractals.

Basic idea

In Lyapunov fractals, the most important input is a sequence that consists of two characters. These characters represent the value of r in the formula given above. The character “a” in the sequence is the x-coordinate while “b” is the y-coordinate of the current point.
So, for instance, if the current point is 1:2 and the sequence is [a,b,b], then the sequence actually represents the values [1,2,2,1,2,2,1,2,2,…] and hence first three values of the orbit are 0.5 (the start value), 10.5(1 – 0.5) = 0.25, 20.25(1 – 0.25) = 0.375, …
The final color is then determined using the lyapunov exponent. If you want to know more, Wikipedia provides an amazing article.

Lyapunov fractals in Android

Apart from Fractview, there are currently no apps that can draw lyapunov fractals in the Google App Store (based on a quick search on 2018-02-17). There used to be a nice app by Matthias Urban who still hosts his app’s source on github, called “Ljapunow Fractals”. Thanks to Matthew who provided me with a working copy of the app that is unfortunately not available in the playstore anymore.

Tweaks in Matthias Urban’s Ljapunow Fractals

Matthias Urban’s app contained many parameters, amongst them a parameter “Warm Up” that basically initializes the sequence with some amount of iterations. This parameter can be used to add some perturbation to the sequence (if the WarmUp value is not a multiple of the length of the sequence).
Another parameter was the trigger for this blog post: Matthias Urban uses three parameters for lyapunov fractals, a, b, and also c. Unfortunately, “c” is not used for 3D-Lyapunov fractals (that would be sooo cool…), instead “c” is the negated previous value. I could not find a particular use for “c”, and it is also not used for Lyapunov fractals in the demos of Matthias’ app (it is used for Newton sets there).

New Lyapunov Program

In Fractview, it is not possible to easily add a third parameter “c”, mainly because “c” is used for the coordinates of the current pixel. Nonetheless, I implemented an improved version of the Lyapunov preset. It provides the following tweaks:

The warm-up parameter

The following image shows Zirkony Zity with a Warm Up of two:

Blog Lyapunov Zirkony Warmup.png

The possibility to use a function different from r * z * (1 – z)

The following image uses “r * z * exp(z)”

Blog Lyapunov Exp

And this use uses “r * cos z”. Neat, right?

Blog Lyapunov Cos

Hint: If you use other formulas, you should use a root of the first derivation of Function for the Init parameter (for instance, the exp-fractal above uses -1 while the cos-fractal uses 0 as Init value).

Custom values in the sequence

Now, it is possible to use not only a and b but to enter any expression for r in the sequence. To simulate the c parameter of “Ljapunow Fractals”, use “-a” or “-b”, depending on the previous element. You can also use other expressions that return a real value for r. In the following image, I use the sequence [a,a,a,a, 1/z, b,b,b,b,1/z] (z is the current value of the sequence):

Blog Lyapunov Recurrent

All this has a price though – the more custom parameters,  the more chaotic the border of the fractal becomes.

Import Lyapunov Favorites

To import this new Lyapunov fractal program, follow this link to my public google drive repository and download the text file onto your Android Device. In Fractview, head to Favorites, select “Import” and in Downloads choose the text file that you just downloaded.


Karl

P.S.: Fractview now has more than 5000 users, thank you so much for your interest and I am glad that so many enjoy this app. I am currently actively implementing a new version of the backing programming language and I hope to provide an update within the next 1 or 2 months. Cheers!

Posted in Fractals, Uncategorized | Tagged | Leave a comment

Merry Xmas and a Happy New Year

Hello, dearest Fractview user,

I wish you a merry christmas, and thank you all for the rising numbers in users, improving reviews and all these lovely images on Facebook, Instragram, DeviantArt and many more. In case you don’t have a christmas tree, I attach two fractals that use a (simple) christmas tree as an orbit trap. Although the version using the mandelbrot set is not that spectacular (until you light it, but that is only allowed on christmas eve 😉 ), there are amazing julia sets. See my favorite phoenix set for yourself:

xmas phoenix.png

Switch on lights to obtain an amazing 3d effect.

I hope you can enjoy your holidays with your loved ones. For the new year, there are some amazing updates pending (no color cycling yet, but how about orbit traps in lyapunov fractals?).

Cheers,

Karl

Posted in Fractals | Leave a comment

Fractview Release of 3.2.2, DeviantArt-Group and perspectives

So, I released version 3.2.2 some days ago, and I hope that you enjoy the increased stability, the tutorial and the import-export function of favorites. Again, here is a link to some of my exports. You can download it onto your phone and then import it in Favorites.

These are actually my favorite images that I generated with Fractview so far that also are calculated in a reasonable amount of time. And speaking of favorite images, Matthew, who helped a lot with feedback during the release of Version 3.2.2, started a Fractview-group on DeviantArt.

I also removed many feedback messages that I think were mostly annoying (it is good to know that Fractview draws the mandelbrot set in less than 1 second, but I think that the progress bar is enough feedaback).

And some new types: Geometric shapes for the Fold-Program, two variations of the Simonbrot fractal and distance estimation for the mandelbrot set (also in Fold).

About the import/export

Technically, the export format is Json, and Fractview now uses the gson library to export data. So, you can easily manipulate these files and re-import them (the icons take up most of it, it is a PNG-file encoded as Base64). You also can find online Json Editors.

The import/export function works fast and reliable in my experience (takes a few seconds if you import/export 1000 entries). There are no directories or tags to arrange your collection but you can set a common prefix for all selected entries (if you import a new collection, the imported entries are automatically selected) and this way simulate a file structure.

About the tutorial

The tutorial is work in progress and it will be extended in the future. Please help me improving it by providing feedback on typos, grammar mistakes etc… I will add a few more pages in the not-too-distant future, for instance a list of all functions that are supported by Fractview.

About the increased stability and some numbers

First, apologies to all Intel users. I don’t know why Renderscript (the GPU-programming-language used by Android) does not work on Intel phones but I am afraid it is out of my hands. For all others, there are already 1500 installations of the new version and no crash report yet. According to the google play store, there are currently 4556 users. On average there are about 50 new users per month (welcome).

What is next?

Next, I will not work on Fractview for some weeks :D. These last weeks I definitely spent too much time on it. There was a lot of code polishing and the code base of Fractview is now nice and solid for further extensions. So, after a break I will work on new features. This is a list of some ideas that I currently have. It is not complete and not all features will be implemented.

Version 3.3

Minor changes: Fix all crashes that come up until then, add further fractals to the presets.

Then the following improvements:

  • Parameter editor: Yes, it is actually annoying: Tap “Edit”, tap the value, change value, tap ok, tap ok. So, high priority is to integrate the parameters in the main view using some transparent swipeable view. So, tap “Edit”, tap value, tap ok and already see changes in the background. Swipe away edit view.
  • Show wait-dialog when importing/exporting large collections.
  • Allow to copy/paste parameters directly from the context menu.
  • Show a coordinate system: This will be fun, some maths.
  • Allow to export sources and palettes similar to Favorites import/export.
  • Improve Source Editor. If you use the source editor, you have my heart-felt apologies.
  • Allow variable maps in derivations (necessary for generic distance estimation).
  • And, I want a new icon (suggestions are welcome).

Version 3.4

A render-mode for really arbitrary large images that are rendered in some background demon. Maybe even support for videos (but on the other hand, it is still a mobile phone… but who knows…).

Version 3.5

I am currently re-implementing the Meelan compiler. Hence, there will be some improvements for the programs that generate fractals.

  • Better descriptions of parameters
  • Syntax highlighting for the source editor
  • Better support for syntax errors.
  • Classes
  • More possiblilties to merge fractals.
  • It should be possible to create some kind of fractal-toolbox – for example use fold and orbit traps and combine it with lyapunov fractals.
  • Dragging parameters on-screen
  • Maybe a split-screen approach to view Julia sets next to mandelbrot sets.

Version 3.9

Preparation for version 4

  • Change the drawing procedure to automatically use super-sampling and depth information (3D).

Version 4

Allow do change colors and lights by using drag-and-drop gestures. This would be sooo cool and I hope that Fractview will reach this point within a year or so.

Lots of dreams, but we will see where the journey is taking us. For now I am very happy that Fractview gives joy to so many people.

And there is no picture here. Huh. So, here is a green one. Remember when I used geometric shapes in the Fold Program? In this picture I use the z-value as one point on the line that I use for the shape. This leads to very nice curvey images. You will find this image also in my favorite 16.fractview1479425740.png

Posted in Uncategorized | Leave a comment

Release candidate for 3.2.2 – Quickstart Tutorial and some of my favorites

In the next days I will publicly publish version 3.2.2 of Fractview. This version will bring improvements on the precision of functions (still 32 bit but the number range is now much higher), the export function for favorites and a tutorial. Since copy/paste of the tutorial into wordpress and keep it up-to-date is a lot of work, please check it out on github. Please tell me about typos and suggestions.

There were some improvements on handling multiple imports/exports. I thought of adding a tag-system or directory structure, but in the end, I just allow to export/edit multiple entries based on common prefixes. This is good enough to simulate a small directory structure while still being not too over-complicated.

And in order to test it, here are my personal favorites, a nice selection of 16 fractals that I collected over the last years. Some of them you will also find on deviantArt.

Collection of 16 of my favorites

Download this text file (it is a Json file, icons are in PNG format, encoded as Base64), then select “Import collection” from favorites.

The new version is very stable on my phone, so I call it “Release candidate”. There might be some additional fractal types but it is definitely feature complete.

And if you missed the link above:

Link to the quickstart tutorial

And, some people asked whether I accept dontations, yes, I do, just follow this link.

— Karl

Posted in Fractals, Updates | Leave a comment

Update, new Beta-Version 3.2.2

EDIT: For some people the updated app crashes right after start (this is something that Intel users unfortunately always experienced). This is caused by renderscript and it is already fixed with the next update. I did not find the bug (it works on my phone ‘unfortunately’) but I had to deactivate the increased precision of some functions  😦

I just released a new beta version. The new big thing is the tutorial. You find instructions on how to use the app there. I will release the other articles also in the blog soon and hope that you provide some reviews on them.

Another maybe not so big thing (but much bigger for others) is the new Export/Import function in the favorites. First, you can select multiple items in the Favorites view.

Screenshot_20170803-103523.png

It works very similar to other android apps like Google Photo.

By selecting “Export” in the menu, a text file is shared to a location of your desire. Using “import” you can reimport this text file or import collections from others.

Technical stuff: The format I use is json (in detail I use the gson library), hence it is easy to edit. But careful, faulty entries are silently ignored during import (here is some space for improvement).

What else? I managed to increase the precision of the sqrt function and therefore also the rad function [EDIT: Due to crashes on some devices this feature was deactivated]. Other functions are still restricted to single precision but at least, exp and log now return valid results for double values. This is in particular important for exp. For a large bailout a function containing exp will soon create transparent artifacts that mean that the calculation returned an invalid value (like infinity). Now, exp works for much larger values (left is before, right is after):demo_new_exp.png

This is btw the fold preset with the function is “(exp z – E z) p” and a mandelinit of 1 (first derivation of function is “(exp z – E) p” and this is 0 for z = 1).

There are two/three new fractal types and simpler functions for the perpendicular types. The new “generic lambda” preset is the lambda fractal but it uses the “max_power” parameter in mandelinit and function. It is a lovely fractal. The other ones are the two Simonbrot variations that give rise to amazing julia sets. Thanks for the hint about them.

Internally, there were lots of changes, code polishing to increase the over-all stability, some dialogs changed a bit. For the final release there will be some corrections/improvements on the tutorial and also on the descriptions in the Demo/Preset pane but apart from that the app should be quite stable.

I hope you enjoy the update,

— Karl

P.S.: I just played around with this exp-fractal above and you should definitely take a look at its islands. The following image looks like it comes right out of Mandelbrot’s vegetable garden:exp zoom.png

And since the beta version has this lovely import function, you can test it and import this image.

Posted in Updates | Leave a comment