Logo by tomot - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Follow us on Twitter
 
*
Welcome, Guest. Please login or register. January 16, 2019, 04:03:15 AM


Login with username, password and session length


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


Pages: [1] 2   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: New Version/Reimplementation of Fractview  (Read 1751 times)
Description: Fractview new version
0 Members and 1 Guest are viewing this topic.
searles
Alien
***
Posts: 22



« on: December 03, 2015, 12:38:59 PM »

Hello, I implemented 2 years ago Fractview, and now I completely reimplemented it from scratch. The new version requires Android 5 (due to the use of GPU-Acceleration), is slimmer but at the same time way more powerful and faster. The old version of FractView is now FractViewLite, the new one should have gotten rid of all these nasty crashes that required reinstall. It still has a nice bookmark system, allows sharing images but also allows to copy the fractal to the clipboard and share it with others.

The program now uses a programming language and a virtual machine (using Renderscript which does its calculations on the CPU), hence there are a lot of possibilities, from orbit traps to Lyapunov-fractals (see attachment).

On the Google-Play homepage you will find links with additional information. Here is the link: https://play.google.com/store/apps/details?id=at.searles.fractview&hl=en

And of course, the whole thing is still open source and Ad-Free since this is all about the joy of fractals and the beauty of mathematics wink

Cheers, Karl


* lyapunov.jpg (113.94 KB, 1024x500 - viewed 374 times.)
Logged
Chillheimer
Global Moderator
Fractal Schemer
******
Posts: 972


Just another fractal being floating by..


chilli.chillheimer chillheimer
WWW
« Reply #1 on: December 03, 2015, 06:20:25 PM »

it looks really nice and pinch zooming/turning feels good! and I love your free&joy of fractals approach!

but I have no idea how to get beautiful pictures like you posted here or in the playstore, all i get is the standard mandelbrot set
Logged

--- Fractals - add some Chaos to your life and put the world in order. ---
searles
Alien
***
Posts: 22



« Reply #2 on: December 04, 2015, 12:20:43 PM »

In the next major version step I will add nice presets. You get these pictures by modifying the program in the Program-menu. What you do is as follows:

Go to the Program-menu and delete everything there.

Then paste the following code that will generate the picture that I posted (you find coordinates in [3.4, 4.0] × [2.5, 3.4])

Code:
var x int;
var y int;
var color int;

extern breakbound real = 1e9;
extern maxdepth int = 100;
var lyaexp realf = 0;
var i = 0;

func step(r) {
   z = r * z * (1 - z);
   lyaexp = lyaexp + log abs r (1 - 2z);
   next(i, maxdepth) and abs lyaexp < breakbound // returns a boolean
}

func fullstep(a, b) {
   step b and step b and step b and step b and step b and step b
   and step a and step a and step a and step a and step a and step a
}

var z real = 0.5;

extern pospal palette = [[#000, #a40, #fca, #fff]];
extern negpal palette = [[#000, #ccf, #88f]];

union c cplx;
var a real; var b real;

c = map(x, y);
var i = 0;
while fullstep(a, b);

lyaexp = lyaexp / i;

color = lab2int (if lyaexp < 0
 then negpal (4 log (1 + log (1 - lyaexp)))
 else pospal (6 lyaexp))
Logged
searles
Alien
***
Posts: 22



« Reply #3 on: December 04, 2015, 12:34:51 PM »

Now, from my phone, if you use "copy" you can copy the fractal. The following is really nice

Code:
scale 0.04366290828827071:0.035604162859637425 -0.035604162859637425:0.04366290828827071 0.16822888372571776:-0.254779458308629
program "

var x int;
var y int;
var color int;

extern alpha cplx = 1:0;
extern beta cplx = 2:0;
extern gamma cplx = 1:0;
extern delta cplx = -2:0;

// faster to put them into variables.
//  by default would be cplx.
var aa cplxf = alpha;
var bb cplxf = beta;
var cc cplxf = gamma;
var dd cplxf = delta;

func init(c) {
  (-cc * dd / (aa * bb))^(1/(bb - dd))
}

func fun(z, zz, c) {
 // interesting variation is to insert abs/conj
 // before power (==> burning-ship-alikes)
 c * (aa * z^bb + cc * z^dd)
}

extern maxdepth int = 120;
extern bailout real = 64;
extern epsilon real = 1e-9;
extern bailoutpalette palette = [[#000, #0a0, #acf, #804, #fe8]];
extern lakepalette palette = [[#a00, #ff4, #fff, #004]];

// power is only for cplxf
var c cplxf = map(x, y);
var z cplxf = init c;
var zz cplxf = 0;

var i = 0;
var power = max(re bb, re dd);

func smoothlen() {
 lab2int bailoutpalette log(i + smooth(z, bailout, power))
}

func lastarc() {
 lab2int lakepalette arcnorm z
}

while {
 var t = z;
 z = fun(z, zz, c);
 zz = t;

 not radrange(z, zz, bailout, epsilon,
         color = smoothlen(), color = lastarc())
     and (
             next(i, maxdepth)
         or
             { color = lastarc() ; false })
};"
ints {
}
reals {
bailout 1000000.0
}
cplxs {
delta -2.0:1.0
}
colors {
}
palettes {
bailoutpalette [[#000000, #e8ecff, #880044, #ffee88]]
lakepalette [[#ffffff, #000044]]
}

Copy this Text and use "paste" in the Programm.


* 2015-12-04.jpg (164.49 KB, 1196x720 - viewed 327 times.)
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #4 on: December 04, 2015, 12:36:45 PM »

Does not launch - black screen. cry
On a Nexus 7 (2013)
 A Beer Cup hoping for a fix
Logged

No sweat, guardian of wisdom!
searles
Alien
***
Posts: 22



« Reply #5 on: December 04, 2015, 12:44:16 PM »

I observed that right after install the program takes a long time to start up (I am not sure why yet, but it is only after the first start after a fresh install). I just reinstalled and it took 44 seconds. Will definitely be under investigation, but after the first start it runs smoothly and starts much faster.
(just to clarify, it is a blank screen, but not a crash?)
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #6 on: December 04, 2015, 01:02:04 PM »

Ah ok! It works now after some wait okay! A Beer Cup
Logged

No sweat, guardian of wisdom!
searles
Alien
***
Posts: 22



« Reply #7 on: December 04, 2015, 01:17:35 PM »

About the slow start up after install, it is as I suspected the Android system that has to do some internal work at the first startup (I use Renderscript and the fractal script is a large file that takes some time to compile after installation). I will investigate, maybe showing a splash screen if start-up takes more than 5 seconds.

Also, I added four presets for those who don't want to fiddle with copying and pasting. If you know of any fractals that should definitely be in there, post here, I will add them to the presets as well. You can reach presets via the "Program"-menu.

Cheers
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #8 on: December 04, 2015, 04:54:49 PM »

Quick question: possible to transcript this? It was a very popular formula.

Code:
// 'Ducks' fractal by Samuel Monnier
// (Implementation by Syntopia)
// See http://www.algorithmic-worlds.net/blog/blog.php?Post=20110227
vec2 formula(vec2 z, vec2 c) {
    return cLog(vec2(z.x,abs(z.y)))+c;
}
Logged

No sweat, guardian of wisdom!
searles
Alien
***
Posts: 22



« Reply #9 on: December 04, 2015, 09:33:43 PM »

Yes, is. Will put it into presets with the next update.

Code:

func init(c) { 0 }

func labs(a) {
   if im(a) > 0 then a else conj a
}

func fun(z, zz, c) {
  log(labs z + c);
}

var x int;
var y int;
var color int;

extern maxdepth int = 120;
extern bailout real = 64;
extern epsilon real = 1e-9;
extern lakepalette palette = [[#000, #0a0, #fb8, #fff]];

var c cplxf = map(x, y);
var z cplxf = init c;
var zz cplxf;

var i = 0;

func lastarc() {
    lab2int lakepalette (4 * arcnorm z)
}

while {
   var t = z;
   z = fun(z, zz, c);
   zz = t;
   not diffless(z, zz, epsilon)
      and next(i, maxdepth)
   or { color = lastarc() ; false }
};
Logged
searles
Alien
***
Posts: 22



« Reply #10 on: December 04, 2015, 09:35:53 PM »

And here is a zoom into this one.


* 2015-12-04-2.jpg (183.51 KB, 800x486 - viewed 318 times.)
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #11 on: December 04, 2015, 11:55:45 PM »

The biggest interest of the formula is the j mode really! But very nice cheesy

This is Fractint's Barnsley 1 but it is (also) nice in julia mode only. That I am unable to use wink
Fractint base formulas:
http://www.nahee.com/spanky/www/fractint/fractal_types.html
Code:
func init(c) { 0 }

func bar(a) {
   if re(a) > 0 then a-1 else a+1;
}

func fun(z, zz, c) {
  bar(z) * c;
}

var x int;
var y int;
var color int;

extern maxdepth int = 120;
extern bailout real = 64;
extern epsilon real = 1e-9;
extern lakepalette palette = [[#000, #0a0, #fb8, #fff]];

var c cplxf = map(x, y);
var z cplxf = init c;
var zz cplxf;

var i = 0;

func lastarc() {
    lab2int lakepalette (4 * arcnorm z)
}

while {
   var t = z;
   z = fun(z, zz, c);
   zz = t;
   not diffless(z, zz, epsilon)
      and next(i, maxdepth)
   or { color = lastarc() ; false }
};

Also a Nova fractal. It looks nice even better than the original (less distortion)... Did not found the original formula for uf.

Code:
func init(c) { 1 }

func fun(z, zz, c) {
  z - (z*z*z-1)/(3*z*z) + c
}

var x int;
var y int;
var color int;

extern maxdepth int = 120;
extern bailout real = 64;
extern epsilon real = 1e-9;
extern lakepalette palette = [[#000, #0a0, #fb8, #fff]];

var c cplxf = map(x, y);
var z cplxf = init c;
var zz cplxf;

var i = 0;

func lastarc() {
    lab2int lakepalette (4 * arcnorm z)
}

while {
   var t = z;
   z = fun(z, zz, c);
   zz = t;
   not diffless(z, zz, epsilon)
      and next(i, maxdepth)
   or { color = lastarc() ; false }
};
« Last Edit: December 05, 2015, 08:30:09 PM by DarkBeam » Logged

No sweat, guardian of wisdom!
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #12 on: December 05, 2015, 11:46:47 AM »

For some reason it forbids me to save the images (permission denied). Btw a Nova minibrot;

The generalized does not work. (Why?)
Code:
func init(c) { 1 }
extern zpow real = 3;


func fun(z, zz, c) {
  z - (z^(zpow)-1)/(zpow*(z^(zpow-1))) + c
}
« Last Edit: December 05, 2015, 08:38:45 PM by DarkBeam » Logged

No sweat, guardian of wisdom!
searles
Alien
***
Posts: 22



« Reply #13 on: December 08, 2015, 10:28:24 PM »

Hm, that is interesting. If you use Android 6 or some extension to control the rights of an app, obviously you need to grant the "Write files"-permissions. Do you get an exception with a crash? I noticed a bug when you store images with higher height than width (a stupid bug), this one is fixed in the next update (should be online in the next hours) that also fixes some more needle stings.

EDIT: And about the generalized version: Try to store the result in a variable:
Code:
func fun(z, zz, c) {
    var tmp = z - (z^(zpow)-1)/(zpow*(z^(zpow-1))) + c ;
    tmp
}

The reason is that the type system is not that fancy and it does not handle the conversion of single-precision cplx numbers (that are used by the general power-operation) to double-precision ones.

This will be fixed with the next major version (which will be around february).
« Last Edit: December 08, 2015, 10:38:43 PM by searles » Logged
searles
Alien
***
Posts: 22



« Reply #14 on: February 24, 2016, 11:32:11 AM »

I published an update that brings a lot of major improvements and many new presets.
<a href="https://www.youtube.com/v/cxb7aN7zpyo&rel=1&fs=1&hd=1" target="_blank">https://www.youtube.com/v/cxb7aN7zpyo&rel=1&fs=1&hd=1</a>

Find more videos here:
https://www.youtube.com/channel/UCvl2XV_WsfwHLpr0NSDtNcg

Now, start-up is much faster, the program reduced in size (we are down to 0,54 MB!) and the backing programming language improved  a lot. Though, you would not need it (unless you want to) because you can easily edit everything directly from the parameter's menu.

The thing I like the most (apart the use of 2d color palettes) is the way to select julia sets from the mandelbrot set. You can simply center the point to obtain the parameter. For assistance, you can select an option to show a grid.

Apart from that there are a lot new presets. One (slowcomputationally intense but amazingly pretty) preset is the magnetic pendulum (see eg the german Wikipedia https://de.wikipedia.org/wiki/Magnetisches_Pendel), but there is also one preset to simply view complex functions using the color-wheel coloration (see https://en.wikipedia.org/wiki/Color_wheel_graphs_of_complex_functions)

You can find more on the app on google play
https://play.google.com/store/apps/details?id=at.searles.fractview

And attached, one julia set of the duck fractal

EDIT: And, if you like the program, a positive review is welcome. Feature requests are also accepted here.


* nice duck.jpg (238.71 KB, 512x512 - viewed 261 times.)
« Last Edit: February 24, 2016, 01:52:02 PM by searles » Logged
Pages: [1] 2   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
FractView Smartphones / Mobile Devices « 1 2 » searles 29 5776 Last post June 10, 2014, 12:36:02 PM
by DarkBeam
Version 1.3.4 is available Mandel Machine Botond Kósa 0 483 Last post November 06, 2014, 05:31:00 PM
by Botond Kósa
Version 1.3.5 is available Mandel Machine Botond Kósa 9 773 Last post November 14, 2014, 11:24:47 AM
by Botond Kósa
Version 1.3.6 is available Mandel Machine Botond Kósa 3 550 Last post November 16, 2014, 05:34:19 PM
by SeryZone
Version 1.3.7 is available Mandel Machine « 1 2 » Botond Kósa 15 711 Last post November 26, 2014, 10:09:46 PM
by SeryZone

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.131 seconds with 28 queries. (Pretty URLs adds 0.014s, 2q)