Aerie is a software framework for modeling spacecraft. Its main features include:
- A Java-based mission modeling library
- A discrete-event simulator
- An embedded TypeScript DSL for defining and executing scheduling goals
- An embedded TypeScript DSL for defining and executing constraints
- An embedded TypeScript DSL for defining and executing activity command expansions
- An embedded TypeScript DSL for defining sequences
- A GraphQL API
- A web-based client application
To get started using Aerie for the first time please do our fast track tutorial on our documentation website.
- Join us on the NASA-AMMOS Slack (#aerie-users)
- Contact [email protected]
- Join the Aerie Users group to stay up to date on news, releases, and our project roadmap.
.
├── .github # GitHub metadata
├── constraints # Java library for constraint checking
├── contrib # Java convenience classes for mission models
├── db-tests # Database unit tests
├── deployment # Deployment artifacts and documentation
├── docker # Additional Dockerfiles for Aerie-specific images
├── docs # Documentation
├── e2e-tests # End-to-end tests
├── examples # Example mission models
├── gradle # Gradle Wrapper
├── load-tests # Load testing code and configuration
├── merlin-driver # Java library for discrete-event simulation
├── merlin-framework # Java library for mission modeling
├── merlin-framework-junit # Extension of JUnit to unit test mission models
├── merlin-framework-processor # Java annotation processor for mission models
├── merlin-sdk # Java interface between mission models and the merlin-driver
├── merlin-server # Service for planning and simulation
├── merlin-worker # Worker for executing simulations
├── parsing-utilities # Java classes for JSON serialization and deserialization
├── permissions # Java library for authorizing endpoint requests
├── scheduler-driver # Java library for goal-oriented scheduling
├── scheduler-server # Service for scheduling
├── scheduler-worker # Worker for executing scheduling goals
├── sequencing-server # Service for sequence generation and management
└── third-party # External Java dependencies that are not obtained from Maven
Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing. If you are a developer you can get started quickly by reading the developer documentation.
The scripts and documentation in this project are released under the MIT License.