Clarkwood Software & Emergent Behavior

Our Interest in Converting Simple Rules Into Sophisticated Systems

by Bob Clark

originally published January 2008; last updated July 2010

One of the coolest things about the computer age is the ability to explore emergent behavior.

Why does Process Throb use CPU usage for icon size and memory usage for icon velocity?

It might seem more intuitive to have memory-intensive processes show up larger and more CPU-intensive processes move around more quickly; but Process Throb’s emergent behavior is designed to sit in view in a way that a changing environment shows up in an obvious way to someone who’s been watching.

CPU usage is generally a process’s most interesting characteristic. That’s why the most obvious attribute, icon size, is used to reflect CPU usage. Also, for an application that might have a memory leak, testing with a number of Peek-a-Boo users showed that using velocity to show memory usage makes a memory hog very obvious at a glance — look for the process icon flitting around like an overcaffeinated bee.

Indeed, computing, at its Turing-complete roots, could itself be considered a kind of emergent behavior.

Emergent behavior is the phenomenon of how small, simple rules can expand into very sophisticated and interesting high-level behavior. A million tiny pieces of information can become one large picture; this high-level perspective can become much more intuitive to us humans than the million tiny pieces of information which are so well-suited to the number-crunching of our computers.

Board games like checkers, go, and chess are challenging because their simple rules result in complicated and involved strategies; these are also examples of emergent behavior.

The people here at Clarkwood Software are interested in emergent behavior. One of our products, Crittersim, is basically a pure exploration of emergent behavior, and lets you change the parameters of tiny virtual creatures to see how it affects the big-picture population.

Clarkwood Software’s oldest product is Peek-a-Boo, and for the last three years its most distinctive view has been its Process Throb window. Process Throb’s emergent behavior starts with very simple rules about how CPU usage controls the size of each process’s icon, and a mutual “repulsive” force between the icons in the window.

With Peek-a-Boo 2.7.1, a process icon can “try” to move around a little. The magnitude of the velocity is in direct proportion to the memory used by the process... in short, the icons for processes that use a lot of (virtual) memory will move quickly in the Process Throb view.

These simple rules combine to show a very useful pulsing, “breathing” view that lets humans’ brains do what they do best: use our inherent pattern matching to watch for anomalous behavior.

Flowing Pennies, Clarkwood Software’s newest Mac OS X product, is a prime example of how simplifying the “atomic” behavior of the smallest units, transactions, really helps build towards the comprehensibility and sophistication of the whole. Emergent behavior, per se, was not an explicit driving principle of Flowing Pennies; but simplicity was, and it has been rewarding to experience my household finances “pop” into focus using the emergent behavior of Flowing Pennies’ design.