Polynomial attractorWritten by Paul BourkeSeptember 2020
I rediscovered the original article by J.C.Sprott (Sprott, J. C. "Automatic Generation of Strange Attractors." Comput. & Graphics 17, 325332, 1993c) that was one of the inspirations for my fractal explorations. The images in that publication are rather simplistic, not a complaint but a fact of graphics in that era. I didn't readily find other example and the ones on Wolfram Mathworld were equally uninspiring. So I decided to produce some myself using my 2D histogram method along with a collection of colour maps. The attractors are based upon the equations below. y_{n+1} = a_{6} + a_{7}x_{n} + a_{8}x_{n}^{2} + a_{9}x_{n}y_{n} + a_{10}y_{n} + a_{11}y_{n}^{2}
GLXOESFTTPSV
What is this "GLXOESFTTPSV"? A nice innovation in the paper was to identify the attractors by their series a_{0}... a_{11}. This was done by choosing values for each between 1.2 to 1.2 in steps of 0.1 and mapping those to uppercase letter A through to Y. S, GLXOESFTTPSV represents a_{0} = 0.6, a_{1} = 0.1, a_{2} = 1.1, a_{3} = 0.2, a_{4} = 0.8, a_{5} = 0.6, a_{6} = 0.7, a_{7} = 0.7, a_{8} = 0.7, a_{9} = 0.3, a_{10} = 0.6, a_{11} = 0.9. MCRBIPOPHTBN
VBWNBDELYHUL
FIRCDERRPVLD
QFFVSLMJJCCR
LUFBBFISGJYS
EJYDREGLYQPV
HIYIWHOKNVCG
MSSSRRPADDSO
OIHVGHAHGYRK
RALLTIOBDULT
WJJFXGXHTRPG
Extension to 3DThe paper extends the notion to polynomials of 3 variables (x,y,z), this results in 30 parameters for a general 2 degree polynomial. This is written here as follows, noting the convention is different to that used in a subsquent republising of the paper. y_{n+1} = a_{10} + a_{11}x_{n} + a_{12}y_{n} + a_{13}z_{n} + a_{14}x_{n}^{2} + a_{15}y_{n}^{2} + a_{16}z_{n}^{2} + a_{17}x_{n}y_{n} + a_{18}x_{n}z_{n} + a_{19}y_{n}z_{n} z_{n+1} = a_{20} + a_{21}x_{n} + a_{22}y_{n} + a_{23}z_{n} + a_{24}x_{n}^{2} + a_{25}y_{n}^{2} + a_{26}z_{n}^{2} + a_{27}x_{n}y_{n} + a_{28}x_{n}z_{n} + a_{29}y_{n}z_{n}
While the previous papers presented 2D projections onto a coordinate plane, here I populate a volume as a histogram and then render that volumetrically using ray casting. The volumes used in the examples here are 1000x1000x1000 voxels. YouTube
YouTube
YouTube
YouTube
YouTube
YouTube
YouTube
