Forward
*Forward* is where the lineage starts. Long before I was building robotics or the **Powder of Life** framework, I was obsessed with the idea that complex behavior is actually kind of a fluke—an emergent byproduct of simple, analog-style relationships. I was looking at thinkers like Braitenberg and Vannevar Bush and wondering if I could strip away the "black box" of modern programming to find something more honest.
The setup is a stark, 1-bit world: a pure white screen with a large black rectangle acting as a ground. Black cubes spawn off-screen and roll toward the left. There is no high-level AI directing them; they are simply driven by a relentless momentum toward an inevitable ledge.
I wanted to see how much "soul" I could get out of a simple physics loop. I recorded a library of my own vocalizations—mutterings and murmurs—and wired the playback speed directly to the cubes' rotational velocity. As they roll, they mutter to themselves. When they hit the edge and plummet into the void, the rotation speeds up and their voices become higher-pitched and distressed. It’s not "simulated" emotion; it’s just the sound of the math getting faster.
I chose the high-contrast black and white because I wanted to kill the "trippy visual" distraction. I wanted people to deal with the behavior. You see these cubes piling up two or three high, climbing over their "colleagues" to keep moving toward a goal they don’t understand, completely unaware of the cliff that’s coming.
This was the first time I used what I called a "sensor driver network." It proved to me that you could create a "living" sculpture just by wiring the right inputs to the right outputs. It’s a meditative, slightly dark cycle that reminds us that even our own complex lives might just be a series of simple, reactive loops layered on top of each other. If we don’t understand behavior at this simplistic level, we’re going to be totally screwed once we start dealing with more complex systems like AI.
You can run the live game-engine here.
(Note: it can take a while to load)