Yes, the 2D grid level is rendered as a texture and mapped onto several simple 2×1 strip meshes (made with Blender), and the shader bends each strip into the ring and applies the twist. Player movement and keys/doors logic run on the 2D layer, and the result is re-rendered to the texture every frame.