naive implementation of a character controller using SDFs to represent the map. internally, it is now possible to query distances from multiple points at once. it also calculates the surface normal using central differences, which isn't the fastest method, but whatever UPDATE: movement now uses two separate passes for handling collision, one for the x and y movement components. this does require multiple broadcasts to the map sprite to handle both components, but whatever. WASD to move the player SDF functions from Inigo Quilez transparent rectangle filler by @SpinningCube all other code by me, @falkimore