((group "Fractals" (expression "Example-01" "bailout = user_slider("bailout", 1, 64);\nmaxiter = user_slider("max.iter", 64, 2048);\n\nmesc = user_image ("accumulation_map");\n\nmxmin = user_slider("Map_X_Min", -5, 5);\nmxmax = user_slider("Map_X_Max", -5, 5);\nmymin = user_slider("Map_Y_Min", -5, 5);\nmymax = user_slider("Map_Y_Max", -5, 5);\n\nc = ri:[lerp(x/X, user_slider("Img_X_Min", -0.5, 1.0),\nuser_slider("Img_X_Max", -0.5, 1.0)),\nlerp(y/Y, user_slider("Img_Y_Min", -0.75, 0.75),\nuser_slider("Img_Y_Max", -0.75, 0.75)) + 0.75];\n\nscalex = X / (mxmax - mxmin);\nscaley = Y / (mymax - mymin);\n\nz = c;\naccum = 0;\niter = 0;\n\nwhile ((accum < bailout) && (iter < maxiter)) do\nz = (z^2) + c;\naccum = accum + gray(origVal(xy:[scalex * z[0], scaley * z[1]], mesc));\niter = iter + 1;\nend;\n\ngradient (((iter/maxiter)^0.2)%1.0)") (expression "Example-02" "c = ri:[lerp(x/X, user_slider("T_min_X", -0.5, 1.0),\n-user_slider("T_max_X", -1.0, 0.5)),\nlerp(y/Y, user_slider("T_min_Y", -0.75, 0.75),\n-user_slider("T_max_Y", -0.75, 0.75))+0.75];\n\nminx = user_slider("M_min_X", -5, 5);\nmaxx = -user_slider("M_max_X", -5, 5);\nminy = user_slider("M_min_Y", -5, 5);\nmaxy = -user_slider("M_max_Y", -5, 5);\n\nthreshold = user_slider("Threshold", 1, 64);\nmaxcount = user_slider("Max.Iter", 64, 2048);\n\nxscale = X / (maxx - minx);\nyscale = Y / (maxy - miny);\n\nz = ri:[0,0];\n\naccum = 0;\ncount = 0;\n\nang = 360 * t;\nrmat = m2x2:[cos(ang), -sin(ang), sin(ang), cos(ang)];\n\nwhile ((accum < threshold) && (count < maxcount)) do\nz=(z^2) + c;\n\naccum = accum + gray(origVal((xy:[xscale * z[0],\nyscale * z[1]]) * rmat,\nuser_image("Accumulation Map")));\n\ncount = count + 1;\nend;\n\ngradient ((16*count/maxcount)%1.0)") (expression "Example-03" "c = ri:[lerp(x/X, user_slider("T_min_X", -0.5, 1.0),\n-user_slider("T_max_X", -1.0, 0.5)),\nlerp(y/Y, user_slider("T_min_Y", -0.75, 0.75),\n-user_slider("T_max_Y", -0.75, 0.75))+0.75];\n\nminx = user_slider("M_min_X", -2, 2);\nmaxx = -user_slider("M_max_X", -2, 2);\nminy = user_slider("M_min_Y", -2, 2);\nmaxy = -user_slider("M_max_Y", -2, 2);\n\nthreshold = user_slider("Threshold", 2, 64);\nmaxcount = user_slider("Max.Iter", 64, 2048);\n\nxscale = X / (maxx - minx);\nyscale = Y / (maxy - miny);\n\nz = ri:[0,0];\n\naccum = 0;\ncount = 0;\n\nang = 360 * t;\nrmat = m2x2:[cos(ang), -sin(ang), sin(ang), cos(ang)];\n\nwhile ((abs(z) < threshold) && (count < maxcount)) do\nz = (z^2) + c;\nz = z * (gray(origVal((xy:[xscale * z[0], yscale * z[1]])*rmat))\n+ user_slider("mult_offset",0.5,1));\ncount = count + 1;\nend;\n\ngradient (((4*count/maxcount)%1.0)^0.25)") (expression "Example-04" "c = ri:[lerp(x/X, user_slider("T_min_X", -0.5, 1.0),\n-user_slider("T_max_X", -1.0, 0.5)),\nlerp(y/Y, user_slider("T_min_Y", -0.75, 0.75),\n-user_slider("T_max_Y", -0.75, 0.75))+0.75];\n\nminx = user_slider("M_min_X", -4, 4);\nmaxx = -user_slider("M_max_X", -4, 4);\nminy = user_slider("M_min_Y", -4, 4);\nmaxy = -user_slider("M_max_Y", -4, 4);\n\nthreshold = user_slider("Threshold", 2, 64);\nmaxcount = user_slider("Max.Iter", 64, 2048);\n\nxscale = X / (maxx - minx);\nyscale = Y / (maxy - miny);\n\nz = ri:[0,0];\n\naccum = 0;\ncount = 0;\n\nang = 360 * t;\nrmat = m2x2:[cos(ang), -sin(ang), sin(ang), cos(ang)];\n\nwhile ((abs(z) < threshold) && (count < maxcount)) do\npow = gray(origVal((xy:[xscale * z[0], yscale * z[1]])*rmat))\n+ user_slider("Power Offset",0.5,2);\nz = (z^pow) + c;\ncount = count + 1;\nend;\n\ngradient (((4*count/maxcount)%1.0)^0.25)") (expression "Example-05" " bailout = user_slider("bailout", 2, 64);\nmaxiter = user_slider("max.iter", 64, 2048);\n\nxgrad = user_image("x_gradient");\nygrad = user_image("y_gradient");\ngslope = 2*user_slider("gradient_slope", 0, 8);\nang = t*360;\ncosang = cos(ang);\nsinang = sin(ang);\ngsx = cosang*gslope;\ngsy = sinang*gslope;\nrmat = m2x2:[cosang, -sinang, sinang, cosang];\n\nmxmin = user_slider("map_x_min", -2, 2);\nmxmax = -user_slider("map_x_max", -2, 2);\nmymin = user_slider("map_y_min", -2, 2);\nmymax = -user_slider("map_y_max", -2, 2);\n\nc = ri:[lerp(x/X, user_slider("img_x_min", -0.5, 1.0),\n-user_slider("img_x_max", -1.0, 0.5)),\nlerp(y/Y, user_slider("img_y_min", -0.75, 0.75),\n-user_slider("img_y_max", -0.75, 0.75)) + 0.75];\n\nscalex = X / (mxmax - mxmin);\nscaley = Y / (mymax - mymin);\n\nz = c;\niter = 0.0;\n\nwhile (abs(z) < bailout && (iter < maxiter)) do\nz = (z*z) + c;\nzp = xy:[scalex * z[0], scaley * z[1]];\nz = ri:[z[0] + gsx*(gray(origVal(zp, xgrad)-0.5)),\nz[1] + gsy*(gray(origVal(zp, ygrad)-0.5))];\niter = iter + 1;\nend;\n\nif (iter == maxiter) then\nrgba:[0,0,0,1];\nelse\ngradient ((16*iter/maxiter+t)%1.0);\nend") (expression "Example-06" "maxiter = user_slider("Maximum Iterations", 64, 2048);\nbailout = user_slider("Accumulation Bailout", 2, 64);\nmesc = user_image("Accumulation Map");\n\nmpow = user_image("Power Map");\nopow = user_slider("Power Offset", 0.5, 2.0);\n\nmrad = user_image("Radius Map");\norad = user_slider("Radius Offset", 0.5, 1.0);\n\nmxmin = user_slider("Map X Min", -5, 5);\nmxmax = -user_slider("Map X Max", -5, 5);\nmymin = user_slider("Map Y Min", -5, 5);\nmymax = -user_slider("Map Y Max", -5, 5);\n\nscalex = X / (mxmax - mxmin);\nscaley = Y / (mymax - mymin);\n\nc = ri:[lerp(x/X, user_slider("Img X Min", -0.5, 1.0),\n-user_slider("Img X Max", -0.5, 1.0)),\nlerp(y/Y, user_slider("Img Y Min", -0.75, 0.75),\n-user_slider("Img Y Max", -0.75, 0.75)) + 0.75];\n\nang = t*360;\nrmat = m2x2:[cos(ang), -sin(ang), sin(ang), cos(ang)];\n\nz = c;\niter = 0.0;\naccum = 0.0;\n\nwhile ((accum < bailout) && (iter < maxiter)) do\npow = gray(origVal((xy:[scalex * z[0], scaley * z[1]])*rmat, mpow)) + opow;\nz = (z^pow) + c;\nzp = xy:[scalex * z[0], scaley * z[1]] * rmat;\nz = z * (gray(origVal(zp, mrad)) + orad);\naccum = accum + gray(origVal(zp, mesc));\niter = iter + 1;\nend;\n\nif (iter == maxiter) then\nrgba:[0,0,0,1];\nelse\ngradient((((32*iter/maxiter)^0.5) + t)%1.0);\nend"))