There is provided a computing engine (10) for use in simulating a complex system (20), controlling the complex system (20), or a combination of simulating and controlling the complex system (20), wherein the computing engine (10) includes a data processing arrangement (40) that is operable to execute one or more program instructions. The computing engine (10) includes a plurality of computational modules (50) that are operable to exchange data therebetween via a data exchange arrangement (60). The computational modules (50) are operable to execute one or more computational functions therein on data received at the computational modules (50) and to generate corresponding output data (R). The computational modules (50) are operable to receive, for input data to their one or more computational functions, at least one of: user input values, sensed data from the complex system (20). The computational modules (50) are operable to output their corresponding output data (R) for at least one of: user presentation, for