// TODO: does maxSteps 1 do anything? static RGB varyColor(RGB rgb, int maxSteps default 25) { float max = maxSteps/255f; int s = random(3); if (s == 0) return new RGB(vary0to1(rgb.r, max), rgb.g, rgb.b); else if (s == 1) return new RGB(rgb.r, vary0to1(rgb.g, max), rgb.b); else return new RGB(rgb.r, rgb.g, vary0to1(rgb.b, max)); } static Color varyColor(Color color, int maxSteps default 25) { ret toColor(varyColor(RGB(color), maxSteps); }