News: Did you know ? you can use LaTex inside Postings on fractalforums.com!
 
*
Welcome, Guest. Please login or register. November 01, 2014, 02:40:41 AM


Login with username, password and session length



Pages: [1]   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: Anyone know about other plugins available?  (Read 2534 times)
0 Members and 1 Guest are viewing this topic.
simon.snake
Fractal Phenom
******
Posts: 494


Experienced Fractal eXtreme plugin creator!


simon.fez SimonSideBurns
« on: February 24, 2012, 07:53:15 PM »

Hi

I've been looking around for other plugins for Fractal eXtreme without much success.

I have heard mentioned in another post about a Sierpinski triangle plugin, and I noticed on the Cygnus Software website that a plugin called igeometry.dll is available, but it simply didn't load when I tried it in my plugin folder.  I wonder if the problem might be that it was only a 32 bit file and I'm using the 64-bit version of the software?

The only other plugin I have heard about is the original Burning Ship one and the one that has replaced it, which are both linked to on this forum.

I can't believe that there are only these few plugins available for such a fast and flexible piece of software, and I wonder if this is simply due to the limited number of high precision arithmetic functions available, as naturally this would exclude many incompatible formulas from being available?

Thoughts appreciated.

Simon
Logged

MOTEL BRAND = Anagram of MANDELBROT

Can anyone do any better?
panzerboy
Fractal Lover
**
Posts: 209


« Reply #1 on: February 24, 2012, 11:20:58 PM »

I'd say the biggest barrier is needing to program in Visual C++.
The free express edition doesn't cut it because it lacks support for 64 bit and MFC.
MFC is the set of classes that makes it easier to develop Windows than using the Windows API directly.
It's now superseded by CLR (.Net).
You can get Express to compile MFC but its buggy as all, my first version of the plugin would crash Fractal Extreme when the last instance of a fractal created by my plugin was closed.
Some problem with the cleanup, garbage collection perhaps.
So I've downloaded the developer preview of Full Visual C++, it will work for another couple of months.
A simple recompile with that fixed the previous misfeatures.
Buying Visual Studio at USD 799 isn't an option for me right now.

The other thing is that Fractal Extreme is very much optimised to do Mandelbrot type fractals.
When you program the plugin you provide a function that returns the iteration count for a pair of coordinates (complex real and imaginary).
So Buddabrots or any other non-escape time fractals would be problematic.
To use the fast arbitrary precision arithmetic your limited to multiplication, addition, subtraction no division or trig functions available.
So there's limitations on the possible escape-time fractals too.

Now don't get me wrong, I love Fractal Extreme. Its SPEED for deep zooms is unmatched.
The only thing I've found that's faster is FastFractal256 a CUDA renderer, but it looks just awful and I suspect limited to 256bit arithmetic depth.
But sooner or later someone is going to do a nice OpenCL deep renderer and FX's days of being the fastest will be gone.
Logged
stardust4ever
Fractal Lover
**
Posts: 248



« Reply #2 on: February 28, 2012, 01:48:47 AM »

If I may make a special request, I'd like to see a Cubic version of the Burning Ship plugin released before your copy of Visual Studio C++ expires. I have explored the cubic version of this fractal to some degree with Ultrafractal 5 Express (which by the way my copy does not do animation - problem with UF5 is it's too slow for deep zoom animations anyway). HPDZ did a wonderful video exploring the region:
<a href="http://www.youtube.com/v/0SNXOKL-KPo&rel=1&fs=1&hd=1" target="_blank">http://www.youtube.com/v/0SNXOKL-KPo&rel=1&fs=1&hd=1</a>
I don't know much about coding in any language other than the severely antiquated QBASIC (I took a programming class one summer as a kid in the early 90s) and I have also wrote programs on Texas Instruments graphing calculators TI83+ and TI89/92/Voyage 200 (laugh if you want; but I'm old school). I downloaded the Bloodshed C++ compiler from Sourceforge so that I can at least view the source code. There's so many files and I don't even know what the difference is between .h and .cpp

I found the Burning Ship fractal code; I noticed you simply subtracted C for the Burning Ship and Buffalos
Quote
      case FT_BurningShip:
         for (/**/; count < MaxIters && zrsqr + zisqr < OverFlowPoint; count++)
         {
            zi = abs(zr * zi) * 2.0 - JuliaI;
            zr = zrsqr - zisqr - JuliaR;
            zisqr = zi * zi;
            zrsqr = zr * zr;
         }
         break;
Based on my understanding of complex algebra,
(X+Y)^3 = X^3 + 3X^2*Y + 3XY^2 + Y^3
so (Zr+Zi(i))^3 = Zr^3 + 3Zr^2*Zi(i) + 3ZrZi^2(i^2) + Zi^3*(i^3)
since i^2 = -1 and i^3 = -i
complex Z^3 = (Zr^3 - 3Zr*Zi^2) + (-Zi^3 + 3Zr^2*Zi)i
So the code for the cubic Burning Ship should look like this:
Quote
      case FT_BurningShipCubic:
         for (/**/; count < MaxIters && zrsqr + zisqr < OverFlowPoint; count++)
         {
            zi = abs(((zrsqr * 3.0) - zisqr) * zi) + JuliaI;
            zr = (zrsqr - (zisqr * 3.0)) * zr + JuliaR;
            zisqr = zi * zi;
            zrsqr = zr * zr;
         }
         break;
At least I think that's correct. I wasn't sure if C++ properly followed the rules for order of operations, so I included an extra set of parentheses just in case.
« Last Edit: February 28, 2012, 05:21:42 AM by stardust4ever » Logged
stardust4ever
Fractal Lover
**
Posts: 248



« Reply #3 on: February 28, 2012, 02:24:20 AM »

My appologies for the double post. Panzerboy, if you feel like I'm spamming Fractal Extreme Plugin requests, please let me know and I'll stop posting about new formulas. In the other thread, I had mentioned briefly the desire to explore the Perpendicular Mandelbrot set, which is a vertical slice of the 2nd order mandelbulb. Here's a zoomed in view of a minibrot that I found within the fractal which I rendered in UF5:

There exists both trig and polynomial variants of the 3D Mandelbulb fractal, which use an arcane form of triplex algebra.

I had a look for the mandlbulb and the formula I found has square roots and atan functions.
I recall there were two different formulas for the 3D Mandelbulbs. One formula version used trig functions, and the other version used polynomials. The poly functions were much faster for the lower orders than the trig functions (especially 2nd order), but due to the complexity of the higher order polynomial, the trig functions became much faster for bulbs higher than order 8. I'm trying to find some old posts about it here in fractalforums which I remembered reading a long time ago, but the search function is practically broken. I know the polynomial functions did not use trig, but they may have still incorporated a variable "r" where r = sqrt(x^2+y^2+z^2) which would still be problematic. I can't find it, but there is a post somewhere on fractalforums which lists the polynomial equivalents of mandelbulbs for orders 2 through 8. If I can find that post, I can just reduce the set x,y,z by setting y=0 and then reducing the equation to x and z using basic algebra, but I know for a fact there is a polynomial version of the equation which does not use trig functions.
Well, it seems the people over at UF have already done the math homework for me. I copy/pasted the Ultrafractal Code for the Perpendicular Mandelbrot from UF5 and I have good news: While polynomial formula for the 3D Mandelbulb (in terms of x,y,z) does utilize the square-root function, the Pythagorean-like formula r=sqrt(y^2+z^2) (or something similar to that effect) cancels itself out when the original y axis is eliminated, leaving sqrt(z^2) which simplifies to abs(z). That is good news, because the trig and square roots have been entirely eliminated from the equation. Here is the UF5 code. It's pretty basic, so the formula should render fast if ported over to Fractal Extreme:

Quote
PerpendicularMSet {
;This produces slice of the second order Mandelbulb directly perpendicular to the regular Mandelbrot set.
init:
 Cx=Real(#pixel+@Perturbation)
 Cy=Imag(#pixel+@Perturbation)
 x=0
 y=0
loop:
 xTemp=x^2 - y^2 + Cx
 y=-2*y*Abs(x) + Cy
 x=xTemp
 z=x+y*1i
bailout:
 |x+y*(1i)|<=@Bailout
default:
 center=(-0.5,0)
 title="Perpendicular Mandelbrot"
 float param Bailout
  default=4
 endparam
switch:
 type="PerpendicularJulia"
 Start=#pixel
}
Good luck! afro
« Last Edit: February 28, 2012, 05:24:29 AM by stardust4ever » Logged
Pages: [1]   Go Down
  Print  
 
Jump to:  


Related Topics
Subject Started by Replies Views Last post
Fractal Extreme Plugins on Sourceforge Plugins panzerboy 2 872 Last post March 16, 2012, 08:19:22 PM
by stardust4ever
Not sure if it's possible to make other plugins Plugins simon.snake 3 344 Last post February 27, 2013, 09:10:33 AM
by panzerboy
Various plugins created over the last week Plugins simon.snake 9 454 Last post June 19, 2013, 08:09:40 PM
by simon.snake
Not saying my plugins are slow, but... Plugins simon.snake 0 235 Last post July 29, 2013, 11:28:36 PM
by simon.snake

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2013, Simple Machines

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