 
   return
 
+renderUndoButton = (ctx) ->
+  ics = inner_control_size
+  ctx.beginPath()
+  ctx.arc(0,0,ics*.3, -Math.PI/8, Math.PI/8, true)
+
+  arrowEnd =
+    x: Math.cos(-Math.PI/8)*ics*.3
+    y:-Math.sin(-Math.PI/8)*ics*.3
+  innerArrow =
+    x: arrowEnd.x + Math.cos(Math.PI*(1-1/8+.125))*ics*.3*.5
+    y: arrowEnd.y - Math.sin(Math.PI*(1-1/8+.125))*ics*.3*.5
+  outerArrow =
+    x: arrowEnd.x + Math.cos(Math.PI*(-1/8-.3))*ics*.3*.5
+    y: arrowEnd.y - Math.sin(Math.PI*(-1/8-.3))*ics*.3*.5
+
+  ctx.lineTo(innerArrow.x, innerArrow.y)
+  ctx.moveTo(arrowEnd.x, arrowEnd.y)
+  ctx.lineTo(outerArrow.x, outerArrow.y)
+
+  ctx.stroke()
+  return
 
 # TODO: these should handle the passage of time? or maybe that is up to
 # stepLevelSimulation?


  level_state.animate(t)
  level_state.render(level_ctx, prog_ctx)
  
  if !stop
    requestAnimationFrame(render)

  @mode = levelMode.PLAYING
  @last_t = Date.now()/1000
  @animation_mode = levelAnimMode.READY
  delete @move_control

  return

