• November 12, 2022, 08:10:54 AM

Author Topic:  Influencing Julia  (Read 445 times)

0 Members and 1 Guest are viewing this topic.

Offline C0ryMcG

  • Fractal Furball
  • *
  • Posts: 290
Influencing Julia
« on: June 05, 2021, 06:20:32 AM »
So here's something I found accidentally today, as I was trying to write one thing into my program and got some functions in an incorrect order.

This is a Julia set of the Mandelbrot formula where the pixel location still sets the initial Z, but the C constant is also slightly influenced by the pixel location, too.

This came from me trying to test out inverting the M-set around an arbitrary point, and I didn't realize that I set Z0 to C in order to save a single iteration... so C was inverted, but Z0 was not, and it ended up... strange. So I played with that idea.

Specifically, a target is set to somehwere around -0.8+0.23i, Z is initialized to pixel. Here's the formula that's iterated, in Javascript:
Code: [Select]
  var newC = c;
  newC = cSubtract(newC, targetPos);
  newC={r: newC.r * 0.05, i: newC.i*0.05};
  newC = cAdd(newC, targetPos);

  return cAdd(cSquare(z),newC);



Linkback: https://fractalforums.org/index.php?topic=4249.0

Offline gerson

  • 3e
  • *****
  • Posts: 1054
Re: Influencing Julia
« Reply #1 on: June 06, 2021, 01:11:44 AM »
Very interesting result. Seems a crack behavior or a juliter one (?)

Offline C0ryMcG

  • Fractal Furball
  • *
  • Posts: 290
Re: Influencing Julia
« Reply #2 on: June 06, 2021, 02:32:00 AM »
I can see the resemblance to the Juliter algorithm. Do you have examples of crack behavior?

I've been thinking of this in a different sort of way, maybe more abstract.
Intitalizing Z to the pixel location seems like a good place to start, since it makes a map of starting positions. Then, the choice of a constant (C) decides what Julia set is generated

And then, we alter C in some way for every pixel selected

Most commonly (Very commonly) we alter C by making it equal to the pixel selection. Since Julia sets will shift smoothly as Z0 moves around (ignoring the chaotic parts where that smoothness approaches zero), shifting it to the pixel position makes a smooth shape (the Mandelbrot Set)

So this image that I made in the post above, C is ALMOST constant, but it's being pulled slightly by the pixel positions. When I set the strength of this pull to 100%, I get M-set again.

So I think of this as a very lazy M-set.

Other things I've been playing with are imagining a circle of constant radius, and changing C to hit that circle based on the angle between the origin and the drawn pixel. (a=atan2(y,x); p = {x: cos(a)*r, y: sin(a)*r;})
Similarily, placing C on the M-set main cartioid boundary in a way that a line from the origin to the pixel passes through C. That one is interesting (Pretty chaotic, chaotically pretty)

I'm trying to come up with other functions for altering C smoothly, based on pixel. They end up with fun results.

Offline gerson

  • 3e
  • *****
  • Posts: 1054
Re: Influencing Julia
« Reply #3 on: June 06, 2021, 03:36:25 AM »

Offline C0ryMcG

  • Fractal Furball
  • *
  • Posts: 290
Re: Influencing Julia
« Reply #4 on: June 07, 2021, 12:51:13 AM »
 
read this:
http://www.wack.ch/fame/chat/jo/cracks/crack1.html
Oh, I do remember seeing that now. I suppose the results have a similar behavior, but I think they're pretty different ideas. My system doesn't change the orbits at all, they're prefectly normal julia set orbits. It just changes what constant is used at that particular pixel before iteration begins. Normal Mandelbrot Set can be thought of as the same thing but with a more obvious change of the constant.

Offline gerson

  • 3e
  • *****
  • Posts: 1054
Re: Influencing Julia
« Reply #5 on: June 07, 2021, 01:21:51 AM »
I am not so good with codes, but will be very interesting see the result and codes of yours tests.
Sergio bring Juliter and beautiful images are comming with FFExplorer. Maybe yours expreirences could be implemented in the future.
what is that targetPos? and "r", is it a conditional?

Offline C0ryMcG

  • Fractal Furball
  • *
  • Posts: 290
Re: Influencing Julia
« Reply #6 on: June 07, 2021, 03:14:53 AM »
I am not so good with codes, but will be very interesting see the result and codes of yours tests.
Sergio bring Juliter and beautiful images are comming with FFExplorer. Maybe yours expreirences could be implemented in the future.
what is that targetPos? and "r", is it a conditional?

targetPos is just a variable selected by the user. It's equivalent to the julia seed.
I write my code in Javascript at the moment, and there's no built-in support for complex math, so I use javascript objects and some simple methods that I wrote to do what I need for fractal-making. So when you see {r: value, i: value} I'm just initializing a complex number object.

I had some more renders coming but my computer crashed... too much iterating? I will have some other fun examples soon though, just need to re-render.