Why is this setTimeout here?  BalloonViewModel.update should be called as part of the render loop, so you shouldn't need any sort of timer; or I'm missing something.