NaN check
No Error
In the textbox is a language known as FEL. FEL is short for "Fractal Engine Language" And is basically JS, but with these changes:
  1. ComplexNumbers exist. These are the CORE of FEL. On a complex number, you can use various methods:
    • .add(real,imag) : Adds a real and imaginary component to the ComplexNumber.*
    • .subtract(real,imag) : Subtracts a real and imaginary component from the ComplexNumber.*
    • .multiply(real,imag) : Multiplies the ComplexNumber by another ComplexNumber.*
    • .divide(real,imag) : Divides the ComplexNumber by another ComplexNumber.*
    • .powerTo(real,imag) : Raises the ComplexNumber to the power of another ComplexNumber.*
    • .abs() : Returns the magnitude of the ComplexNumber.
    • .theta() : Returns the angle of the ComplexNumber.
    • .conjugate() : Returns the ComplexNumber with a flipped imaginary.
    You can make a constant ComplexNumber with constant(real,imag)*. You can chain operations on a ComplexNumber, and store various intermediate values beforehand.
    You can acess the real and imaginary components uaing .real and .imag. Example: 'Z.real'.
    * If an imaginary component is not defined, it defaults to 0.

  2. The return value is the next iteration of Z! It's how Mandelbrot-like fractals work.
    C is the position of the pixel. It ranges from -2.5-2i to +1.5+2i.(REAL -2.5 to +1.5, IMAGINARY -2 to +2).

    Z is set to C initially, and is then iterated by Your FEL formula. If at any point it's magnitude escapes 4, it's colored based on when it does. If it doesn't escape within your iteration count, it's colored white.
The default code "return Z.powerTo(2).add(C.real,C.imag)" is an Implementation of z2+C, where Z is squared and then added to C, and the result is the next iteration of Z. This is the Mandelbrot set fractal's formula.