Obsidian uses a uniform interface for all its forward models. First, a call to generateCache must be made in order to precompute data that are frequently used by the forward models (such as sensitivity matrices).
Then, calling forwardModel runs the actual forward model on given world model parameters.
Obsidian implements the following forward models: