Hi! The collision and physics is all done in an invisible flat 2d world (like the original mario). The actual tiles and sprites are then wrapped onto a circle -- it could be done in a vertex shader but we just do that transformation on the cpu. The tiles need to be deformed otherwise there are gaps.