Hermes has been developed over several decades. It began as
a UCSD Pascal program running on a Terak
computer in a office in
Calwell Hall at Cornell University, overlooking the quad of the College of Agriculture.
(It was the nicest office I ever had, on the second floor, just above the door.)
The program has reincarnated several times since then,
sequentially in a IBM PC, a Symbolics Lisp Machine,
and a Macintosh, both with its original OS, and OS X, where it now happily resides.
For historic reasons, the current incarnation is
divided into three parts.
The eponymous application is the model editor. There is a small set of predefined classes, each of which
performs a role in the simulation by applying a function to a set of inputs and
producing a set of outputs. Connecting outputs and inputs between components
creates a network which can be executed as a simulation. One of the classes packages
a set of components together, so that the model becomes a hierarchical tree, reducing
the apparent complexity.
Once the model is defined, it can be
executed using Crocus. The execution
is governed by an XML file, and Crocus began as little more than a editor specialized to
create these files in the proper format. The execution engine itself (called Mercury) is written as
a faceless Objective-C program, which can be hosted on other platforms besides the Mac,
taking its parameters from the same XML file produced by Crocus. Crocus also has some ability to create
graphs from simulated data.
After a simulation is run, its results can be stored in a lightweight database called
Igor. Igor is also a simple word processor, so that simulations and their result
streams can be easily annotated. Igor can also send data to pro Fit, which will produce
plots and return them to Igor, where they can be added to any annotation.
The downloads page offers several tutorial screencasts.