ModelSpace Documentation

Hello, and welcome to ModelSpace! The following documentation details (nearly) everything you need to know about interacting with the software. If you are new to ModelSpace, we highly recommend taking the time to read through the docs before you get started. The high-level understanding they provide will save you a lot of trouble on your journey.

The following docs are broken down into three separate categories:

  • Help & Info, which includes release notes as well as helpful links and resources

  • How To’s, which includes quick reference guides on how to interact with the ModelSpace environment

  • Tutorials and Examples, which includes a number of helpful example cases detailing how to build a simulation

The docs are designed to work hand in hand with instructional ModelSpace YouTube videos, the link to which is found in the Help & Info section.

We also have an AI assistant (ATTX Assist), trained on our documentation that can easily help answer questions and with building your simulation.

Help & Info

Release Notes

You are using the version of ModelSpace indicated by the top entry in this list. Release notes, which include known limitations of this version of ModelSpace, can be found in reverse chronological order here:

ATTX Academy

The ATTX YouTube channel has detailed tutorials and documentation, in addition to additional fun information and analysis. It is an incredibly helpful resource for newcomers to ATTX and ModelSpace. Got videos you’d like to see? Email help@attx.tech and we’ll add them to the curriculum!

ATTX YouTube

ModelSpace Doxygen

The ModelSpace doxygen, which includes detailed notes on how to interact with almost every component of ModelSpace derived directly from the C++ code, can be found here:

ModelSpace Doxygen

Stack Overflow

The ATTX Stack Overflow is the single most useful resource for answering questions and receiving help. It is actively monitored by ATTX engineers for quick responses. It is also shared across the ATTX community, which helps to build a collective knowledge base. Checking to see if your question has already been asked is the recommended first step for any issues. If it hasn’t, we request that you strip proprietary information from your problem and post it there. That way, it may be useful to other engineers who encounter the same question.

https://stackoverflowteams.com/c/attx/questions

NOTE: The ATTX stack overflow is shared by the ATTX community. It is your team’s responsibility to ensure you do not post ANY proprietary information or data to the ATTX Stack Overflow. Doing so could potentially expose your information to other ATTX partners. All proprietary information should be stripped from questions prior to posting on the ATTX Stack Overflow. Documentation The ATTX documentation is an extensive source of information on how to use ModelSpace. It is designed to be a handy reference for both new and experienced developers. The docs contain everything from low-level code documentation, to high-level descriptions of utilities and models, to tutorials that walk your team through setting up, building, and performing analysis in ModelSpace scripts.*

Help Desk

ATTX also provides a help email address, which can be used anytime. Simply email help@attxengineering.com and the ATTX team will help solve your problem in any way we can. Of course, feel free to email individual engineers on the ATTX team directly as well. We sincerely want to see your project succeed. Please do not hesitate to ask for help any time you need it.

How To’s

Where do I find…?

The ModelSpace repository is set up to allow partners to work in a scalable, organized way on projects which could be very simple or very complex. The following quick guide details how to find code quickly and effectively.

OVERALL STRUCTURE - Code is broken out into C++ and Python directories, which can be found at the top level of the modelspace and modelspace-release projects, respectively. The information found in each is as follows:

C++

  • The cpp/scripts directory contains C++ based scripts developed from ModelSpace and custom models

  • The cpp/src directory contains models, utilities, and more

  • the cpp/test directory contains unit tests for all C++ developed in src

Python

  • The python/scripts directory contains Python-based scripts developed from ModelSpace and custom models

ModelSpace

Every project developed by ATTX partners has a modelspace/ directory in it. The modelspace/ directory is a released version of ModelSpace provided by ATTX on a regular cadence. This directory has the exact same structure as described above — that is, it has python and cpp directories which contain scripts and models developed by ATTX.

NOTE: To use any source code from ModelSpace, including everything in the "How do I use" section, simply #include "ModelSpace.h"

  • Where can I find the code for ATTX models and utilities? ATTX provides header files which are excellent guides on how to interact with models. Source code can be found in modelspace/cpp/src and in modelspace/clockwerk/src.

  • Where can I find some good examples? ATTX provides example scripts. Thise can be found in modelspace/python/scripts/tutorials. Each of these is a great example of how to build a simulation in the ModelSpace framework.

  • Where can I find examples for working with models/code directly? ATTX extensively unit tests its code and provides those tests to our partners. The tests are a great exercise in how to use the models. They are found in modelspace/cpp/test.

Tutorials and Examples

Building Blocks

The following table includes all of the tutorials available in ModelSpace so far. Some tutorials are simply code examples, while others come with descriptions and more to describe building the simulation. Where notes from other first time users are available, those are provided as well.

Description Example Code Documentation First Time User Notes

Simple example using the provided spacecraft class to create a basic orbit simulation

C++: modelspace/cpp/scripts/tutorials/simple_gravity_spacecraft/script.cpp Python: modelspace/python/scripts/tutorials/simple_gravity_spacecraft/script.py

Spacecraft Class Tutorial

Alex Jackson Notes

Simple example building a basic orbit simulation without the spacecraft class

C++: modelspace/cpp/scripts/tutorials/simple_gravity/script.cpp Python: modelspace/python/scripts/tutorials/simple_gravity/script.py

Simple Orbit Propagation Tutorial

Simple example building a communications budget in Python

Python: modelspace/python/scripts/tutorials/communications/script.py

Alex Jackson Notes

Simple example using LivePlot with a basic orbit simulation

Python: modelspace/python/scripts/tutorials/liveplot/script.py

Complex example performing proximity operations in the CW frame with two spacecraft

Python: modelspace/python/scripts/tutorials/rendezvous/script.py