I am experiencing the same issue. When I first launch Drawbot and run the script, it works fine. If I try to run it a second time Drawbot freezes (but it saves the gif anyways).
This is the script:
font_name = 'MalvaVariable-Italic'
min_var = listFontVariations(font_name)['wght']['minValue']
max_var = listFontVariations(font_name)['wght']['maxValue']
w, h = 980, 490
texto = 'Animating in Drawbot!'
steps = len(texto)
step_size = (max_var - min_var) / (steps-1)
lines = 5
font_size = w/12
step_rad = 2*pi / steps
frames = 30
total_duration = 2 # in seconds
frame_duration = total_duration / frames
for frame in range(frames):
newPage(w, h)
frameDuration(frame_duration)
fill(25/255, 29/255, 59/255)
rect(0,0,w,h)
y = (h - (lines * font_size)) / 2
y += w/50
frame_start = (2*pi) * frame/frames
for l in range(lines):
step_start = frame_start - (pi * (l / (lines -1)))
txt = FormattedString()
txt.fill(235/255, 0/255, 89/255)
txt.font(font_name)
txt.fontSize(font_size)
txt.lineHeight(font_size)
txt.openTypeFeatures(ss01=True)
for i in range(steps):
inst_step = pi * (i / (steps -1))
curr_step = (cos(step_start - inst_step) + 1) / 2
curr_step /= 1
curr_value = min_var + curr_step * (max_var - min_var)
txt.append(
texto[i],
fontVariations=dict(wght=curr_value)
)
textWidth, textHeight = textSize(txt)
text(txt, ((w-textWidth)/2, y))
y += font_size
saveImage('output.gif')