Programming environment for editing various of my live apps without restarting them.
on.draw = function()
	-- some hacky stuff outside of LuaML
	if Move then
		draw_move_node_shadow()
	end
	for _,obj in ipairs(Surface) do
		love.graphics.setColor(obj.r or 0, obj.g or 0, obj.b or 0, obj.a or 1)
		if obj.type == 'rectangle' then
			love.graphics.rectangle(obj.drawmode or 'fill', vx(obj.x),vy(obj.y), scale(obj.w),scale(obj.h), scale(obj.rx or 0),scale(obj.ry or obj.rx or 0))
		elseif obj.type == 'line' then
			love.graphics.line(unpack(obj.zdata))
		elseif obj.type == 'circle' then
			love.graphics.circle(obj.drawmode or 'fill', vx(obj.x), vy(obj.y), scale(obj.radius))
		elseif obj.type == 'arc' then
			love.graphics.arc(obj.drawmode or 'line', obj.arctype or 'open', vx(obj.x), vy(obj.y), scale(obj.radius), obj.angle1, obj.angle2, obj.segments)
		elseif obj.type == 'ellipse' then
			love.graphics.ellipse(obj.drawmode or 'fill', vx(obj.x), vy(obj.y), scale(obj.radiusx), scale(obj.radiusy))
		elseif obj.type == 'bezier' then
			love.graphics.line(unpack(obj.zdata))
		elseif obj.type == 'text' then
			if obj.width == nil then
				love.graphics.draw(obj.text, vx(obj.x), vy(obj.y))
			else
				-- hack: toss in a move affordance for every bit of text
				love.graphics.setColor(0.5,0.5,0.5)
				love.graphics.rectangle('fill', vx(obj.x),vy(obj.y-30), scale(obj.w/2-5), scale(20))
				edit.draw(obj.editor, obj.fg, not obj.show_cursor)
				draw_load_time_error(obj)
			end
		end
	end
	if Save_viewport then
		-- special Expose-like 'zoom mode' in progress
		love.graphics.setColor(0,0,0,0.2)
		love.graphics.rectangle('fill', vx(Save_viewport.x), vy(Save_viewport.y),
			scale(App.screen.width/Save_viewport.zoom), scale(App.screen.height/Save_viewport.zoom))
	end
	draw_run_time_error()
	draw_test_failure_indicator()
	draw_ticks()
	if Show_debug then draw_debug() end
	draw_menu_bar()
end