Changed the viewport loop to be async

mmmmmmmmmm CPU