Progress on this painting system of mine. It now supports different textured brushes, transparent canvases, erasing and working on multiple layers (foreground vs background).
Agent controls NPC and utilizes movement abilities such as double jumps to navigate towards the goal without navmesh or scripted navigation logic. Instead, it relies on raycast / boxcast observations.
I created custom queue-based animation system. It seems promising so far, but I'll have to see how it holds up with more complex behaviors.
Also omnidirectional movement.