![]() |
WarpTwin
Documentation for WarpTwin models and classes.
|
Hello, and welcome to WarpTwin! The following documentation details (nearly) everything you need to know about interacting with the software. If you are new to WarpTwin, 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 documentation is organized as follows:
The newly retrained WarpAssist is an instance of Claude trained on WarpTwin code and documentation designed to assist users with scripting questions. It's the best way to get an instantaneous answer.
The WarpTwin User's guide provides detailed explanations on how WarpTwin works with long form descriptions on how to handle specific use cases, such as building custom models.
On GitHub at: https://github.com/attx-engineering/modelspace-users-guide/blob/main/ModelSpace%20User's%20Guide.pdf
The WarpWare YouTube channel contains tutorials, documentation, and interesting analysis. It's a great resource for newcomers.
Got videos you'd like to see? Email help@.nosp@m.warp.nosp@m.ware..nosp@m.co and we'll add them to the curriculum! Most GUI tutorials are found here.
The WarpWare Stack Overflow is the single most useful resource for receiving help.
Questions asked on the Stack Overflow are routed directly to WarpWare engineers' emails, so posting here is as good as emailing us.
If your question has not been answered, please strip proprietary information and post it there.
This helps build a community knowledge base.
The WarpWare Stack Overflow is shared among WarpWare partners.
Do not post proprietary data or information — remove it before posting.
WarpWare provides a direct help email: help@.nosp@m.warp.nosp@m.ware..nosp@m.co You can reach out at any time, and the WarpWare team will assist in any way we can.
The following models are provided "out of the box" in WarpTwin. Links are provided to the actual header file text, which is a fantastic guide on model use. See the user's guide for more information on how to interpret models. Don't see something you want? Let us know and we will be happy to add it to the build plan.
| Model Name | Description |
|---|---|
| DeadReckon.h | GNC App for performing the propagation step of an EKF when an IMU is available to report the |
| GPSUpdate.h | GNC App for performing the GPS measurement update step of an EKF when a GPS receiver is |
| LedBlinker.h | LED Blinker example app |
| MagUpdate.h | GNC App for performing the magnetometer measurement update step of an EKF when a 3-axis |
| PdAttitudeControl.h | Simple PD attitude controller |
| TwoAxisPointingGuidance.h | Two-axis constrained pointing guidance method guidance |
| app_apids.h |
| Model Name | Description |
|---|---|
| CR3BPDynamicsModel.h | Simplified dynamics model representing motion in the circular restricted 3 body problem |
| FlatPlateDragModel.h | Simplified atmospheric drag model which produces a drag force opposite the wind relative velocity |
| ImpulseModel.h | Impulse Model |
| ReactionWheelModel.h | Reaction Wheel Model |
| Servo.h | Model to simulate a servo's motion |
| SimpleThrusterModel.h | Simple thruster model |
| TimedImpulsiveBurnModel.h | Model which applies a fixed impulse to a vehicle at a set sim or UTC time |
| TorqueCoilModel.h | Torque Coil Model |
| Model Name | Description |
|---|---|
| CustomPlanet.h | Custom planet consisting of inertial and rotating frame which can be configured with custom rotation rate |
| Spacecraft.h | Spacecraft Model |
| SpicePlanet.h | High fidelity planet model using the JPL cspice framework under the hood for ultra accurate states |
| Model Name | Description |
|---|---|
| RadioModel.h | Model of spacecraft radio including losses and gains with comm links and power draw |
| SimpleComAnalysisModel.h | Simulated model of spacecraft communications including losses and gains with comm links |
| Model Name | Description |
|---|---|
| AsphericalGravityModel.h | Aspherical gravity model with J2 and J3 effects |
| CompositeWindModel.h | Composite wind model |
| DipoleMagneticFieldModel.h | Simplified magnetic field model which treats Earth as a dipole magnet |
| GravityGradientModel.h | Gravity Gradient Model |
| MSISAtmosphereModel.h | High fidelity atmosphere model utilizing the NRL MSIS implementation |
| OccultationModel.h | Occultation model using spherical representations of objects |
| PointMassGravityModel.h | Point mass gravity model |
| SimpleDisturbanceWindModel.h | Simple disturbance wind model |
| SimpleMeanWindModel.h | Simple mean wind model |
| SolarRadiationPressureModel.h | Solar Radiation Pressure Model |
| SphericalHarmonicsGravityModel.h | Spherical Harmonics Model |
| TabularAtmosphereModel.h | Tabular atmosphere model |
| WorldMagneticFieldModel.h | Spherical Harmonics Model |
| Model Name | Description |
|---|---|
| LogEvent.h | Class to execute logging |
| SimTerminationEvent.h | Class to trigger termination in scheduler |
| Model Name | Description |
|---|---|
| ProximityMonitor.h | |
| RateMonitor.h | Monitor to trigger at a particular rate |
| TimeTriggerMonitor.h | Monitor to trigger at a particular rate |
| Model Name | Description |
|---|---|
| PowerLoad.h | Model of a power load |
| SimpleBatterySystem.h | Simplified model of vehicle battery system which estimates battery capacity considering power input, draw |
| SolarPanelModel.h | Solar panel model |
| SolarPanelPowerModel.h | Solar panel power model |
| Model Name | Description |
|---|---|
| Accelerometer.h | Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values |
| EarthObservationModel.h | Simple Earth Observation Model |
| GPS.h | Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values |
| GroundStationSensor.h | Wrapper for ground station model which perturbs range and range rate for navigation purposes |
| Gyroscope.h | Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values |
| IMU.h | Model of IMU on vehicle which accounts for noise, bias, and drift |
| Magnetometer.h | Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values |
| PressureSensor.h | Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values |
| SimpleCamera.h | Simple Camera Model |
| StarTracker.h | Model of spacecraft star tracker |
| SunSensor.h | Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values |
| Model Name | Description |
|---|---|
| AerodynamicsStateModel.h | Aerodynamics State Model |
| FrameStateSensorModel.h | Model for sensing the relative state between two frames in WarpTwin |
| GroundStationModel.h | Simple ground station model |
| LlaDeticStateInit.h | Model to produce position/velocity vector from a set of detic latitude, longitude, altitude coordinates |
| LvcStateSensorModel.h | LVC State Sensor Model |
| OrbitalElementsSensorModel.h | Model for sensing the instantaneous orbital elements of a vehicle given its position and velocity |
| OrbitalElementsStateInit.h | Model to produce position/velocity vector from orbital elements |
| PlanetRelativeStatesModel.h | Model for determining the latitude, longitude, altitude state of a vehicle relative to an oblate planet |
| RangeAzElSensorModel.h | Model to calculate range, range rate, azimuth, and elevation given a frame state output |
| SpacecraftLinkModel.h | Simple spacecraft-to-spacecraft link model |
| Model Name | Description |
|---|---|
| BiasNoiseModel.h | Bias and noise model |
| DirectionalAdaptiveGuidance.h | Weighted Directional Adaptive Guidance for Low Thrust Maneuvering |
| EffectiveSolarAreaModel.h | Effective Solar Area model |
| ExternalInterfaceModel.h | Synchronize all shared memory to external |
| LvlhFrameManagerModel.h | LVLV Frame Manager Model |
| MarkovUncertaintyModel.h | Markov Uncertainty Model |
| PidTranslationalControl.h | Simple PID controller header file |
| SimTableScheduleModel.h | Model of simulated table schedule for flight software emulation |
| SixDOFDynamicsModel.h | Function to recursively loop through frames and set |
| TabularThrustModel.h | Tabular thrust model |
The following examples are provided as base cases which can be adapted for your organization's use. The actual python scripts are linked, and text can be copied and run in your development environment without modification.
| Example Name | Description |
|---|---|
| script.py | Spacecraft Constellation Tutorial ------------------------------— This example shows how to create a constellation of spacecraft in WarpTwin and visualize them using the visuals model. Author: Alex Reynolds |
| script.py | ===================================================== ! FIRST READ CustomSpacecraft.py he following python script is designed to perform an energy budget analysis of your mission to help inform power based design decisions. This script will run a monte carlo analysis with a provided power configuration, and inform the team if the configuration works. In this simulation, it is assumed that the power draw of all the components running in a given mission mode has already been determined. At every time step, the power draw is perturbed by a percentage the follows a Gaussian distribution with determined mean and standard deviation. This script accounts for eclipse zones and the fact that the spacecraft will eclipse itself. We also model each mission mode accurately (though under ideal conditions). There is a tumble in safe mode and we are perfectly nadir pointing in nominal and experiment mode. This script also accounts for the power induced by downlinking. The script accurately models a ground station with a 10 degree elevation mask and will start a downlink every time the ground station is not masked. ! To actually run this script see custom_deliverables_bash.sh Author James Tabony james.nosp@m..tab.nosp@m.ony@a.nosp@m.ttx..nosp@m.tech : 10/31/25 ===================================================== |
| script.py | Simple Point Mass Gravity Tutorial -------------------------------— This script illustrates a simple example with a spacecraft orbiting under the influence of point mass gravity. The script illustrates how models and frames function together in WarpTwin and are created, connected, and run. It does not make use of any wrapper models (such as the Spacecraft or Planet) to fully illustrate how each component of the simulation works together. It is not the "recommended" way to build simulation scripts because of its complexity, however, it is a very good example case for folks looking to build their own simulation from the ground up. An equivalent example is provided in C++ at: cpp/scripts/examples/earth_orbit_no_spacecraft_model/script.cpp This script can be used effectively as a means of translating between the C++ and Python versions of how to build things. Author: Alex Reynolds alex..nosp@m.reyn.nosp@m.olds@.nosp@m.attx.nosp@m..tech |
| script.py | Electric Propulsion Transfer GTO-->GEO -----------------------------------— This script demonstrates a simple analysis with spacecraft transfer from GTO to GEO. |
| script.py | Electric Propulsion Transfer GTO-->GEO -----------------------------------— This script demonstrates a simple analysis with spacecraft transfer from LEO to GEO using the WarpTwin Lambert solver to achieve the transfer. |
| script.py | Monte Carlo Tutorial -----------------— This script illustrates a simple example with a single spacecraft orbiting the Earth with dispersed orbit values. It disperses semimajor axis and local time of the ascending node (LTAN) to generate sun synchronous orbits. Author: Alex Reynolds |
| script.py | Advanced Space Trajectory Planning -------------------------------— This script serves as a baseline for planning an Earth-Moon Halo orbit for the Advanced Space Capstone mission. Author: Alex Reynolds |
| script.py | Rendezvous and WarpLink Connection Tutorial ----------------------------------------— This script serves three purposes: 1) To demonstrate two spacecraft performing proximity operations in Low Earth Orbit 2) To demonstrate basic GN&C and Flight Software scheduling in WarpTwin 3) To demonstrate connecting WarpOS to WarpLink while running the sim in real time mode TO RUN: - By default, this script runs in faster-than-realtime mode. Simply run script.py and the sim will run to completion with visuals - When running the sim in realtime mode: python3 script.py –real-time=true The simulation will operate in real-time, allowing users to view its output in WarpLink and operate it as if a spacecraft were on orbit Author: Alex Reynolds |
| script.py | Simple Comms Study --------------------— This script demonstrates how to set up a simple data transfer simulation. It initializes a spacecraft, two ground stations, and simulates data transfer between the spacecraft and the ground stations over a specified time period. Author: Daniel Krobath |
| script.py | Simple Point Mass Gravity Spacecraft Tutorial -------------------------------— This is an example code that uses the Spacecraft construct and propagates a spacecraft orbit for 5400 seconds. It also logs the simulation time, spacecraft position, and spacecraft velocity to a csv file. Author: Alex Jackson |
| script.py | Simple LivePlot tutorial ----------------------— This is an example code that uses the Spacecraft construct and propagates a spacecraft orbit for 100 seconds. It liveplots the spacecraft orbit in 2D. Author: Alex Reynolds |
| script.py | Simple LivePlot tutorial ----------------------— This is an example code that uses the Spacecraft construct and propagates a spacecraft orbit for 100 seconds. It liveplots the spacecraft orbit in 2D. Author: Alex Reynolds |
| script.py | Simple Visuals Tutorial --------------------— This script demonstrates using the built-in high quality simulation visuals model. It builds a standard simulation with a single spacecraft and ground station, adds them to visuals, and runs the simulation. Author: Alex Reynolds |