NASA-AMMOS/aerie
A software framework for modeling spacecraft.
PlanDev 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
Aerie -> PlanDev Rebrand
This product was formerly known as Aerie and is now named PlanDev. While we've updated most documentation and external references, some legacy mentions of the old product name may remain as we complete the transition.
What to know:
- The planning product, including modeling, simulation, scheduling and constraint-checking, is now named PlanDev
- The sequencing product, including the sequence editor, workspaces, and actions, is now named SeqDev
- All features and functionality remain the same
- Currently, repository names, package names and other internal code references will retain their existing names, and deployment/migration procedures have not changed
- In a future release, our repository and/or package names may change. If so, this will be communicated to users via release notes and normal communication channels
For the latest documentation, visit: PlanDev Documentation
Getting Started
To get started using PlanDev for the first time please do our fast track tutorial on our documentation website.
Need Help?
- Join us on the NASA-AMMOS Slack (#plandev-users)
- Contact plandev-support@googlegroups.com
News and Updates
- Join the PlanDev Users group to stay up to date on news, releases, and our project roadmap.
Directory Structure
.
├── .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 PlanDev-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 MavenWant to help?
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.
License
The scripts and documentation in this project are released under the MIT License.