AIMSim is written in the widely used Python programming language. The implementation is modularized and written strictly in an Object-Oriented fashion. The software design is divided orthogonally into backend and frontend segments. The backend includes all the computational functionalities and data structures of the software. The functionalities themselves are arranged into abstractions called Tasks, which are discussed later. The backend also exposes several API (Application Programming Interface) methods to utilize the functionalities of AIMSim programmatically in the same way as a Python package.