---- example-01 bailout = user_slider("bailout", 1, 64); maxiter = user_slider("max.iter", 64, 2048); mesc = user_image ("accumulation_map"); mxmin = user_slider("Map_X_Min", -5, 5); mxmax = user_slider("Map_X_Max", -5, 5); mymin = user_slider("Map_Y_Min", -5, 5); mymax = user_slider("Map_Y_Max", -5, 5); c = ri:[lerp(x/X, user_slider("Img_X_Min", -0.5, 1.0), user_slider("Img_X_Max", -0.5, 1.0)), lerp(y/Y, user_slider("Img_Y_Min", -0.75, 0.75), user_slider("Img_Y_Max", -0.75, 0.75)) + 0.75]; scalex = X / (mxmax - mxmin); scaley = Y / (mymax - mymin); z = c; accum = 0; iter = 0; while ((accum < bailout) && (iter < maxiter)) do z = (z^2) + c; accum = accum + gray(origVal(xy:[scalex * z[0], scaley * z[1]], mesc)); iter = iter + 1; end; gradient (((iter/maxiter)^0.2)%1.0) ---- example-02 c = ri:[lerp(x/X, user_slider("T_min_X", -0.5, 1.0), -user_slider("T_max_X", -1.0, 0.5)), lerp(y/Y, user_slider("T_min_Y", -0.75, 0.75), -user_slider("T_max_Y", -0.75, 0.75))+0.75]; minx = user_slider("M_min_X", -5, 5); maxx = -user_slider("M_max_X", -5, 5); miny = user_slider("M_min_Y", -5, 5); maxy = -user_slider("M_max_Y", -5, 5); threshold = user_slider("Threshold", 1, 64); maxcount = user_slider("Max.Iter", 64, 2048); xscale = X / (maxx - minx); yscale = Y / (maxy - miny); z = ri:[0,0]; accum = 0; count = 0; ang = 360 * t; rmat = m2x2:[cos(ang), -sin(ang), sin(ang), cos(ang)]; while ((accum < threshold) && (count < maxcount)) do z=(z^2) + c; accum = accum + gray(origVal((xy:[xscale * z[0], yscale * z[1]]) * rmat, user_image("Accumulation Map"))); count = count + 1; end; gradient ((16*count/maxcount)%1.0) ---- example-03 c = ri:[lerp(x/X, user_slider("T_min_X", -0.5, 1.0), -user_slider("T_max_X", -1.0, 0.5)), lerp(y/Y, user_slider("T_min_Y", -0.75, 0.75), -user_slider("T_max_Y", -0.75, 0.75))+0.75]; minx = user_slider("M_min_X", -2, 2); maxx = -user_slider("M_max_X", -2, 2); miny = user_slider("M_min_Y", -2, 2); maxy = -user_slider("M_max_Y", -2, 2); threshold = user_slider("Threshold", 2, 64); maxcount = user_slider("Max.Iter", 64, 2048); xscale = X / (maxx - minx); yscale = Y / (maxy - miny); z = ri:[0,0]; accum = 0; count = 0; ang = 360 * t; rmat = m2x2:[cos(ang), -sin(ang), sin(ang), cos(ang)]; while ((abs(z) < threshold) && (count < maxcount)) do z = (z^2) + c; z = z * (gray(origVal((xy:[xscale * z[0], yscale * z[1]])*rmat)) + user_slider("mult_offset",0.5,1)); count = count + 1; end; gradient (((4*count/maxcount)%1.0)^0.25) ---- example-04 c = ri:[lerp(x/X, user_slider("T_min_X", -0.5, 1.0), -user_slider("T_max_X", -1.0, 0.5)), lerp(y/Y, user_slider("T_min_Y", -0.75, 0.75), -user_slider("T_max_Y", -0.75, 0.75))+0.75]; minx = user_slider("M_min_X", -4, 4); maxx = -user_slider("M_max_X", -4, 4); miny = user_slider("M_min_Y", -4, 4); maxy = -user_slider("M_max_Y", -4, 4); threshold = user_slider("Threshold", 2, 64); maxcount = user_slider("Max.Iter", 64, 2048); xscale = X / (maxx - minx); yscale = Y / (maxy - miny); z = ri:[0,0]; accum = 0; count = 0; ang = 360 * t; rmat = m2x2:[cos(ang), -sin(ang), sin(ang), cos(ang)]; while ((abs(z) < threshold) && (count < maxcount)) do pow = gray(origVal((xy:[xscale * z[0], yscale * z[1]])*rmat)) + user_slider("Power Offset",0.5,2); z = (z^pow) + c; count = count + 1; end; gradient (((4*count/maxcount)%1.0)^0.25) ---- example-05 bailout = user_slider("bailout", 2, 64); maxiter = user_slider("max.iter", 64, 2048); xgrad = user_image("x_gradient"); ygrad = user_image("y_gradient"); gslope = 2*user_slider("gradient_slope", 0, 8); ang = t*360; cosang = cos(ang); sinang = sin(ang); gsx = cosang*gslope; gsy = sinang*gslope; rmat = m2x2:[cosang, -sinang, sinang, cosang]; mxmin = user_slider("map_x_min", -2, 2); mxmax = -user_slider("map_x_max", -2, 2); mymin = user_slider("map_y_min", -2, 2); mymax = -user_slider("map_y_max", -2, 2); c = ri:[lerp(x/X, user_slider("img_x_min", -0.5, 1.0), -user_slider("img_x_max", -1.0, 0.5)), lerp(y/Y, user_slider("img_y_min", -0.75, 0.75), -user_slider("img_y_max", -0.75, 0.75)) + 0.75]; scalex = X / (mxmax - mxmin); scaley = Y / (mymax - mymin); z = c; iter = 0.0; while (abs(z) < bailout && (iter < maxiter)) do z = (z*z) + c; zp = xy:[scalex * z[0], scaley * z[1]]; z = ri:[z[0] + gsx*(gray(origVal(zp, xgrad)-0.5)), z[1] + gsy*(gray(origVal(zp, ygrad)-0.5))]; iter = iter + 1; end; if (iter == maxiter) then rgba:[0,0,0,1]; else gradient ((16*iter/maxiter+t)%1.0); end ---- example-06 maxiter = user_slider("Maximum Iterations", 64, 2048); bailout = user_slider("Accumulation Bailout", 2, 64); mesc = user_image("Accumulation Map"); mpow = user_image("Power Map"); opow = user_slider("Power Offset", 0.5, 2.0); mrad = user_image("Radius Map"); orad = user_slider("Radius Offset", 0.5, 1.0); mxmin = user_slider("Map X Min", -5, 5); mxmax = -user_slider("Map X Max", -5, 5); mymin = user_slider("Map Y Min", -5, 5); mymax = -user_slider("Map Y Max", -5, 5); scalex = X / (mxmax - mxmin); scaley = Y / (mymax - mymin); c = ri:[lerp(x/X, user_slider("Img X Min", -0.5, 1.0), -user_slider("Img X Max", -0.5, 1.0)), lerp(y/Y, user_slider("Img Y Min", -0.75, 0.75), -user_slider("Img Y Max", -0.75, 0.75)) + 0.75]; ang = t*360; rmat = m2x2:[cos(ang), -sin(ang), sin(ang), cos(ang)]; z = c; iter = 0.0; accum = 0.0; while ((accum < bailout) && (iter < maxiter)) do pow = gray(origVal((xy:[scalex * z[0], scaley * z[1]])*rmat, mpow)) + opow; z = (z^pow) + c; zp = xy:[scalex * z[0], scaley * z[1]] * rmat; z = z * (gray(origVal(zp, mrad)) + orad); accum = accum + gray(origVal(zp, mesc)); iter = iter + 1; end; if (iter == maxiter) then rgba:[0,0,0,1]; else gradient((((32*iter/maxiter)^0.5) + t)%1.0); end