Skip to main content

Download and Build the Mission Model Template

Mission models require a couple of standard items for Aerie to process the model once it has been built:

  1. A package-info.java file containing a reference to the top-level mission model class, annotations referencing any activities defined in the model, an annotation referencing a configuration class that can expose configuration parameters that can be varied prior to simulation, and import statements to the Aerie modeling framework to bridge the framework to the model.
  2. The top-level mission model class that defines or delegates the behavior of the system being described in the model. Any quantity or state that you would like to track over the course of the simulation - which we define as a Resource - should be declared and defined in this class or its delegates. The name of the top-level mission class can be anything as long as it matches the reference in package-info.java.

Fortunately, to save you some trouble, we've created a mission model template repository that already has these items included for you along with a gradle build setup that takes care of including the right Aerie dependencies to get your mission model .jar file built hassle-free. In this repository, if you take a look in missionmodel/src/main/java/missionmodel, you'll see the package-info.java file along with the top-level Mission and Configuration classes already defined for you.

On the main page for the mission model template repository, click the "Use this template" button on the top right of the page and select "Create a new repository" to create a new repository for your SSR model. Clone your new repository and follow the instructions in the README.md to setup your environment and test out building a mission model .jar from the model. You'll find the .jar you built within a build/libs directory generated as part of the gradle build.

At this point, we could pull up the Aerie UI and load the .jar file into Aerie as a model, but there is nothing really interesting in the model yet. So before we bring our model into Aerie, let's give it some content.