Curves on fire - a totally useless script

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()
2 Likes