WorldDynamics.jl is a Julia package which aims to provide a modern framework to investigate Integrated Assessment Models (IAMs) of sustainable development benefiting from Julia's ecosystem for scientific computing. Its goal is to allow users to easyly use and adapt different IAMs, from World3 to recent proposals. In this talk, we are going to present the motivations behind the package, its major goals and current functionalities, and prospect our expectations for the following releases.

In the early 1970s, Jay Forrester, a notable and pioneer researcher in several fields, designed the first system dynamics model intended to analyze the complex interactions between high-level subsystems of the world, in order to understand the evolution of a major variable in each subsystem (in particular, the population, the capital investment, the natural resources, the fraction of capital devoted to agriculture, and the pollution level variables). His model, called World2, was published in the 1971 book "World Dynamics" and subsequently evolved into the World3 model, described in the well-known 1972 book "The Limits to Growth" by Meadows et al. Since then, several similar models were developed, such as the quite popular DICE model from the Nobel Prize laureate William Nordhaus, and categorized as Integrated Assessment Models (IAMs), which can be roughly divided into two general classes: policy optimization and policy evaluation models. DICE is a policy optimization model in which, intuitively, we look for a set of parameters (that is, a policy) which maximizes a specific objective variable (or function). On the other hand, the WorldX models (which recently evolved in the Earth4All model) can be considered as policy evaluation models, in which we decide a policy (that is, a set of parameter values) and analyze the behaviour of some major variables (or functions). Benefiting from Julia's ecosystem for scientific computing and referring to this classification, WorldDynamics.jl has been developed to support the construction of policy evaluation IAMs and has already been applied to the reproduction of several historical models.

WorldDynamics.jl leverages the ModelingToolkit.jl ability to compose differential-algebraic systems of equations. Indeed, an IAM is usually structured into several different subsystems whose variable interactions are modelled by differential-algebraic equations. As such, the goal of the model is to understand the evolution of some major variables. WorldDynamics.jl emphasizes this modular structure of IAMs by facilitating the coding of the systems of equations corresponding to the different subsystems and their composition by automatically deriving the connections among them (that is, their shared variables). By doing so, WorldDynamics.jl allows a designer to focus on a specific subsystem without necessarily knowing how another person is developing a different subsystem (interestingly, this seems to be how the well-known World3 model was described and, most likely, developed). Moreover, this approach easily allows the substitution of one system of equations (representing one subsystem) with another system of equations (still representing the same subsystem), provided that it correctly interacts with the other subsystems (intuitively, respecting the required input/output variable interface).

As an open-source package, WorldDynamics.jl also tries to democratize access to distinct models as well as to promote transparency among them. Even if most of the current models are freely available for reproduction, they are usually implemented using proprietary software, which prevents us from verifying precisely their internal operation and, hence, how the models are simulated exactly. By using Julia and its notable packages, WorldDynamics.jl provides a flexible framework that allows the usage of several solvers and integration with different methods with a reduced effort. Its current features include the implementation of the entire Club of Rome series of models with the possibility of easily replicating all the plots of their major variables that appeared in the literature, and changing parameter values and systems of equations in order to evaluate different policies. In conclusion, WorldDynamics.jl allows model construction in a simplified way while enabling the application of modern scientific computing techniques over new and classical models.

In this talk, we are going to present the WorldDynamics.jl package as a whole. We start with the motivations behind its creation followed by a historical display of classic models. Then, we emphasize our main goals and the challenges encountered during the development process (including how we translated equations from the DYNAMO language), explain the modular approach for implementing IAMS, and describe all the currently implemented models. Finally, we conclude the talk by indicating future works and a roadmap for the next releases. The presentation is intended to give the audience a general explanation of WorldDynamics.jl goals and capabilities. Along with this talk, we are also submitting a workshop proposal to interactively demonstrate the functionalities of WorldDynamics.jl with several hands-on examples.