A toy for playing around with color bars with interpolating colors. Currently also prints rgba colors in sass  syntax (or at least I think it was sass)
import colorsys
# calculate color bars with interpolated color steps
size(1000,1000)
Variable([
    dict(name="steps", ui="Slider", args=dict(value=4, minValue=3, maxValue=15)),
    dict(name="hue", ui="Slider", args=dict(value=0.85, minValue=0, maxValue=1)),
    dict(name="saturation", ui="Slider", args=dict(value=0.6, minValue=0, maxValue=1)),
    dict(name="dark_top", ui="Slider", args=dict(value=.85, minValue=0, maxValue=1)),
    dict(name="dark_bottom", ui="Slider", args=dict(value=.15, minValue=0, maxValue=1)),
    dict(name="offset", ui="Slider", args=dict(value=.33, minValue=-.5, maxValue=.5)),
    ], globals())
steps = int(steps)
a = colorsys.hsv_to_rgb(hue%1, saturation, dark_bottom)
b = colorsys.hsv_to_rgb((hue+offset)%1, saturation, dark_top)
def ip(a,b,f):
    return a+f*(b-a)
h = height()/(steps+1)
fontSize(min(29, .5*h))
for i in range(steps+1):
    f = i/steps
    c = (ip(a[0],b[0],f), ip(a[1],b[1],f), ip(a[2],b[2],f))
    v = tuple([int(v*255) for v in c])
    fill(*c)
    rect(0, 0, width(), h)
    fill(1,1,1)
    t = "$color%d: rgba%s; /*%3.3f%%*/" %(i, str(v), f*100)
    text(t, (100, .33*h))
    translate(0, h)
    print(t)
saveImage("calculateColorScale.png")
