I came across exactly this issue recently when I was starting to write a
simulator. It has essentially 3 parts.
in reply to How realistic is separation of computation from it's display?
- Computation - calculation of changes for each iteration
- Setup & control - input data on what is being modelled and drive the simluation
- Graphics - Representation of data
I was particularly looking for the ability to strip out/replace either
the computation (to allow a different model to be simulated),
or a different Graphics package (in case the original isn't
high performance enough).
I spent a long time deciding what graphical system to use, and settled on
Gtk+ for the display and
for the visual UI building.
The computation model was written as a separate module.
This combination allowed almost complete separation between
the computation, the control and the grpahics, with just
a few object references passed between the modules, allowing
easy replacement of one of the modules.
I plan to publicise the code when it is a bit more advanced.