Each entry in assets.space is a reusable spacecraft definition. Collections decide which teams receive instances of that definition.
Defining the top level
"assets": {
"space": [
{
"id": "SC_001",
"name": "Pathfinder",
"orbit": {},
"physics": {},
"visualization": {},
"controller": {},
"components": []
}
],
"collections": []
}id must be unique and stable. Collections, neutral assets, docking, and events can refer to it. name is the user-facing spacecraft name.
The runtime asset identifier shown in Operator is derived from the scenario definition and is not the same value as id.
Configuring an orbit
"orbit": {
"planet": "Earth",
"values": [7000.0, 0.0, 51.6, 0.0, 0.0, 0.0],
"offset": [0, 0, 0, 0, 0, 0.001]
}values uses:
- semi-major axis in kilometers
- eccentricity
- inclination in degrees
- right ascension of ascending node in degrees
- argument of periapsis in degrees
- true anomaly in degrees
offset uses the same order and units. It is useful when several constructed copies should not start at exactly the same orbital position.
Supported primary bodies include Earth, Moon, and Mars.
Configuring physics
"physics": {
"override_mass": true,
"mass": 100.0,
"center_of_mass": [0, 0, 0],
"inertia_tensor": [
[10, 0, 0],
[0, 10, 0],
[0, 0, 10]
],
"attitude": [0, 0, 0],
"attitude_rate": [0, 0, 0]
}When override_mass is false or omitted, component masses contribute to the spacecraft mass. Use an override only when the total mass properties are known.
Attitude is in degrees. Attitude rate is in degrees per second.
Configuring visualization
"visualization": {
"mesh": "None",
"scale": 1.0,
"offset": [0, 0, 0],
"reflectivity": 0.5,
"hide": false
}Mesh and scale affect rendering. hide: true removes the craft from normal visual discovery while it continues to simulate. Use hidden craft only when the exercise design requires it.
Configuring the controller
"controller": {
"safe_fraction": 0.1,
"capture_tax": 0.001,
"downlink_tax": 0.001,
"ping_interval": 20.0,
"reset_interval": 300.0,
"jamming_multiplier": 1.0,
"enable_rpo_software": false,
"enable_intercept": false
}| Field | Purpose |
|---|---|
safe_fraction | Battery threshold for safe behavior |
capture_tax | Energy fraction charged for capture |
downlink_tax | Energy fraction charged for downlink |
ping_interval | Automatic ping interval in simulation seconds |
reset_interval | Offline interval following a reset |
jamming_multiplier | Scales jammer effect |
enable_rpo_software | Enables rendezvous and proximity operations software |
enable_intercept | Enables uplink interception records |
Rendezvous software still needs appropriate actuators and docking components. A boolean flag cannot replace the hardware.
Next, add component definitions.