tick, then render. called separately from harness