Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => Amazing Box, Amazing Surf and variations => Topic started by: CozyG on August 07, 2017, 12:29:29 PM




Title: 2D Mandelbox: Separating radius of inversion from max radius
Post by: CozyG on August 07, 2017, 12:29:29 PM
For a standard 2D or 3D Mandelbox, the radius of the sphere of inversion (InvRadius) and the maximum distance a point can be from the inversion origin in order for the conditional inversion to be applied (MaxRadius) are equivalent. I've been experimenting with separating these, so in pseudocode the conditional inversion becomes:

Code:
if (point.length < MinRadius)
     point *= constant
else if (point.length < MaxRadius)
     point *= InvRadius^2 / point.length^2

Here's a few images where the only parameter being changed is MaxRadius relative to constant InvRadius. For param visualization:
     InvRadius ==> yellow
     MaxRadius ==> green
     MinRadus ==> red

MaxRadius = InvRadius
(http://www.genomancer.org/wp-content/uploads/2017/08/Mandelbox2D_MaxRadius_equals_InvRadius-1.00025.jpg)

MaxRadius < InvRadius
(http://www.genomancer.org/wp-content/uploads/2017/08/Mandelbox2D_MaxRadius_less_than_InvRadius-2.00025.jpg)

MaxRadius > InvRadius
(http://www.genomancer.org/wp-content/uploads/2017/08/Mandelbox2D_MaxRadius_greater_than_InvRadius-1.00025.jpg)

For MaxRadius < InvRadius this results in a ring region between MaxRadius and InvRadius circles where points under iteration do not get inverted (compared to MaxRadius = InvRadius)

For MaxRadius > InvRadius this results in a ring region between MaxRadius and InvRadius where points under iteration get inverted inward (rather than outward as in standard Mandelbox conditional sphere inversion)

Has this been tried before? I looked through a number of Mandelbox/AmazingBox formulas and didn't find anything similar, but with so many different variants in different programs I could have easily missed a pre-existing version of this.

I've tried this idea for the 3D Mandelbox as well, but results are murky. I think in 3D this causes what are referred to as cuts? Or tears? Which makes sense in terms of discontinuities in the conditional inversion when MaxRadius != InvRadius. Thinking I should try an AmazingSurface version next.

Fragmentarium frag files for 2D version are atttached, and include three-way param visualization overlay.

 


Title: Re: 2D Mandelbox: Separating radius of inversion from max radius
Post by: Alef on August 22, 2017, 04:22:41 PM
I think spherefold realy is two folds, fold around the sphere and the sphere inversion between 1 and Min_R. Maybe they could be seperated. I got 3D box of sphere inversion between R_SI and R_min but I didn't do spherefold.

Try this:
Instead of z=z+c
do
z=z+c/scale
There must be something. So this changes the outcome. Not shure about mathematical basis but I think scaleing interferes with + C. In Mandelbulb3D z vector is initialised with voxel coordinates not 0.


Title: Re: 2D Mandelbox: Separating radius of inversion from max radius
Post by: mclarekin on August 23, 2017, 02:53:55 AM
Quote
I think spherefold realy is two folds

Thats how I look at it too. A standard sphere_fold has two conditional functions,  (and you can have more.)

Quote
z=z+c/scale

In all Mandlebulber standard formula that uses "+ c ",   we use  z = z + c * vec3(Cscale), if the Cscale is omitted the possibilities are less infinite.

In fragmentarium  I use p3 = p3 + cJ + c3;  where cJ is Julia  and  c3 = c * vec3(Cscale),