I think the circCoords is a bit overkill its creating an circular x, y coordinate while looping over the width and height of the page. You are drawing a lot of ovals radius = 100 translate(width() *.5, height() *.5) inSteps = 1 # inSteps = 15 for angle in range(0, 360, inSteps): factor = angle / 360 * 2 if factor > 1: factor = 2 - factor x = cos(radians(angle)) * radius y = sin(radians(angle)) * radius fill(factor, 0, 1) oval(x - 5, y - 5, 10, 10)