During the design of Simulacron, our simulation framework, we decided to implement the simulation logic in discrete modules as opposed to a single, monolithic program. In addition to enforcing separation of interests, this design allows us to mix-and-match different modules together depending on requirements.
Information on each of our major modules, both current and in-development, can be found in the pages linked below.