I’ve had a first look at the specifications for Wolfram Research‘s new SystemModeler suite of tools. When I first heard about it, I was quite excited: a firm of Wolfram’s stature getting into the simulation business could be a great thing. And goodness knows we need better, more accessible simulation tools. I should point out that I haven’t yet used their tools directly, and so my opinion of it is solely on their architectural approach, not on the features of the tools themselves. In other words, take this with more than a grain of salt.
SystemModeler is based on Modelica, which, according to its Wikipedia entry, is “an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-oriented subcomponents”. In other words, Modelica follows in a long line of simulation tools oriented towards modeling processes. I spent time with STELLA, an early Mac OS-based process simulation tool, many years ago.
The strength and weakness of process simulation is that it’s good at, well, simulating processes. If you’re modeling an electrical circuit, an oil pipeline, or an assembly line, process simulation is an excellent choice. But the most interesting and complex domains in the world today — open-ended domains that so often include human behavior — aren’t necessarily amenable to being expressed as processes per se.
The most interesting and complex domains in the world today aren’t necessarily amenable to being expressed as processes.
When I think of modeling domains such as vehicular (and other modes) of traffic, the socioeconomic and political systems of unstable countries, the movement of people through a crowded public space, or the physiology and behavior of even the simplest of creatures, what I think of is not attempting to express these domains as collections of processes, but rather as assemblages of layered free-form simulations: sometimes hierarchical, sometimes overlapping, often haphazardly connecting, interacting with each other at a variety of levels. Effectively simulating these domains will require a new generation of simulation tools. Actually, multiple generations.