found this script in my collection of playful experiments:
I won’t spoil it with a picture, try for yourself:
import rhinoscriptsyntax as rs
def setOnFire(curves):
rs.EnableRedraw(False)
for curve in curves:
domain = rs.CurveDomain(curve)
length =rs.CurveLength(curve)
start=domain[0]
end = domain[1]
range=end-start
i=int(length/10)
for y in xrange(1,40):
for x in xrange(0,i):
interval = [start+range/i*x,start+range/i*(x+.5)]
seg = rs.TrimCurve(curve, interval, False)
rs.RebuildCurve(seg,3,4)
points=rs.CurvePoints(seg)
pts = rs.MoveObjects([points[1],points[2]],[0,0,.25*y])
bow = rs.AddInterpCurve(points)
rs.ObjectColor(bow,[255-255/y,6*y,255-6*y])
rs.DeleteObjects(pts)
rs.EnableRedraw(True)
def getCurves():
curves = rs.GetObjects("select curves to set on fire", 4, True)
if curves:
setOnFire(curves)
getCurves()