For Contributors
Overview of Contributor Resources
You, your business, or your organization can get involved in the GMAT project in numerous ways. We use an open source model and welcome new contributors to the project, either as users providing feedback about the features of the system, or developers interested in contributing to the implementation of the system. If you're interested in the project and want to get involved, thank you! This page contains some ideas that will get you started.
Exploring GMAT
Are you interested in mission design?
- See our Mathematical Specification in PDF form. The LaTeX code is available in our SourceForge repository.
- Check out our project forums. There's usually some discussion going on that may interest you.
Do you like software development?
Our public source code is located on SourceForge's SVN servers:
https://svn.code.sf.net/p/gmat/code
. Check out thetrunk
directory for the current development code.- We have a public bug tracker. There are plenty of open bugs that many users would love to see fixed, ranging from those that require 5 minutes of effort up to ones that require intensive engineering knowledge.
- Check out our development blog for updates about GMAT development issues, including tutorials on how to build the code and how to write custom plugins.
Do you enjoy space and open source?
Check out our project forums. There's usually some discussion going on that may interest you.
- Try some of the sample missions in our Mission Library. You may be inspired to create your own!
Current Development Launch Pad
If you are interested in current development activities by the core GMAT team see our Current Development Dashboard. This page contains the following information:
- Goals for current work
- High level spec locations
- Specs/Docs for major feature area development
Contributing to User Documentation
GMAT has a comprehensive User's Guide available in pdf, html, and Windows help formats.  The User's Guide is written in XML and published using DocBook. All files required to write and build Users Guide are located in our SourceForge repository. You can contribute to the user's guide in many ways including
- Writing new tutorials
- Reviewing and editing pages
- Migrating data from engineering specs to the User's Guide.
For more information see Writing User Documentation.
Contributing to Testing
GMAT is a complex system used to support operational spacecraft. We have extensive policies and procedures for testing GMAT. We have over 10,000 regression tests run nightly or weekly to ensure system quality including script-based and GUI-based testing. You can contribute to testing in many ways including
- Use GMAT to solve real world problems
- Compare GMAT to your own routines or other tools.
- Explore and document the reasons for failing tests cases
- Run regression tests
For more information see the Testing launchpad.
Contributing to Development
You can add new features to GMAT and see those features adopted by the community. Our process for contributing code to GMAT is covered in the Governance pages.  You don't need to be an expert in C++ to contribute to GMAT functionality. You can
- Write engineering specs
- Write prototypes (we rely heavily on MATLAB prototypes)
- Review requirements and design documents
- Fix bugs
- Improve existing features
- Add a new features
For more information see the Development launchpad.
Projects/Ideas
See the Projects list for contribution ideas.