Guided tour

In developing Simile, we have been guided first and foremost by our vision of what it is possible to achieve — what computer modelling within the research community could be like, given the right tools.

In particular, Simile has been developed in response to a wide range of serious problems with the current state of simulation modelling in the areas of earth, environmental and life science research. These problems result in the duplication of efforts between different research groups, and in a widespread perception of the failure of modelling to deliver on its promises as part of the scientific process.

Our approach is based on the principle of declarative modelling : that a model should be seen as being primarily a specification rather than as a piece of computer programming. Adoption of this principle makes many things possible that are simply not possible with the conventional, programming-based approach.

In Simile, we have implemented a number of key features to bring our vision to reality. Although we are still some way off achieving all the potential benefits of the declarative modeling approach, Simile does already address the problems we have identified with current modelling practice.

One key aspect is that we have achieved considerable generality in the types of models that can be constructed with a small number of model-design elements. These have a graphical representation in the model diagram, but also relate to the declarative specification of the model design.

One particular model-design element that gives Simile much of its power is the submodel. This enables the modeller to represent multiple objects, and to handle plug-and-play modularity.

Simile’s set of model-design elements make it possible for a wide range of modelling approaches, normally considered to be quite different types of model, to be supported within a single modelling environment. For example, one model may contain components that variously have characteristics of differential-equation, matrix-algebra, cellular-automaton and object-based models, all integrated in a single model.