Hmm. The way I like to work is first imagining nothing but shapes and colors in motion, and then trying to figure out how those shapes and colors might be a programming. I worry that trying to build visual representations atop an existing programming (which I've considered many times with, say, Clojure) forces commitments or obligations that you'd otherwise be free from.
Eg: You'll think, Clojure data structures are immutable, so the visuals ought to show functions that take and return immutable data, rather than, the data is a mountainous landscape, singular and rooted solidly in place, that the code ambiently traverses. Sure, you can force a mapping, but it feels more generative to me if you start with the programming part as blankly slated as possible.