| overview | What is Catacomb? How does it work? why was it written? This section also describes what it can and cannot do and what it may be able to do soon. |
| getting started | Step-by-step tutorials on how to set up models from scratch. |
| data structures | Besides the elementary data types and arrays of such types, Catacomb uses a fairly restricted set of objects. This restriction makes it much easier to write a generic user interface, and has the added benefit of forcing the programmer to think hard about the structure of a model before writing it. |
| class models | These are the core problem domains that Catacomb knows about. The fields, subcomponents and associated calculations are described here. For examples of instance models made from these classes see the instance models pages. |
| standard user interface components | How to manipulate and construct models. The components are meant to behave in a fairly intuitive fashion, so you should be able to use them without reading this in detail. But some of them, particularly the graphs and sliders, also have more subtle behaviors that you might not find by accident. |
| model specific components | In addition to the standard user interface components, some class models have their own user interface which may be used instead of or in addition to the default. Normally these provide more intuitive, usually graphical, access to the parameters. |
| File formats | The file format used by Catacomb is the same as the structure definition and variable declaration syntax of Yorick, a fast interpreted language with a c-like syntax designed for scientific computing. Models can also be saved as static string array declarations in Java source files for loading in applets over the Web. |
| Scripting | Since it is written in Java, Catacomb objects can be instantiated and methods called from JPython which provides a powerful scripting facility and also an alternative object storage mechanism. |
| Writing model objects | A class model should extend the class catacomb.CcmbObject. It needs to declare its own variables and include a method for computing its behavior, but nothing else is required. Catacomb can do the rest - wrapping up the variables, constructing a user interface and displaying the results, so you can write basic models with a minimal knowledge of Java, and certainly no knowledge of GUI programming. This section describes how to write new class models for the default interface and how to write custom interfaces to provide more intuitive access to parameters. |