{"openapi":"3.1.0","info":{"title":"RocketPy Infinity-API","description":"<p style='font-size: 18px;'>RocketPy Infinity-API is a RESTful Open API for RocketPy, a rocket flight simulator.</p><br/><button style='background-color: #4CAF50; color: white; border: none; padding: 10px 20px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; cursor: pointer;'><a href='https://api.rocketpy.org/docs' style='color: white; text-decoration: none;'>Swagger UI</a></button><br/><button style='background-color: #008CBA; color: white; border: none; padding: 10px 20px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; cursor: pointer;'><a href='https://api.rocketpy.org/redoc' style='color: white; text-decoration: none;'>ReDoc</a></button><p>Create, manage, and simulate rocket flights, environments, rockets, and motors.</p><p>Please report any bugs at <a href='https://github.com/RocketPy-Team/infinity-api/issues/new/choose' style='text-decoration: none; color: #008CBA;'>GitHub Issues</a></p>","version":"3.0.0","x-logo":{"url":"https://raw.githubusercontent.com/RocketPy-Team/RocketPy/master/docs/static/RocketPy_Logo_black.png"}},"paths":{"/flights/":{"post":{"tags":["FLIGHT"],"summary":"Create Flight","description":"Creates a new flight\n\n## Args\n``` models.Flight JSON ```","operationId":"create_flight_flights__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightModel"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightCreated"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/from-references":{"post":{"tags":["FLIGHT"],"summary":"Create Flight From References","description":"Creates a flight using existing rocket and environment references.\n\n## Args\n```\n    environment_id: str\n    rocket_id: str\n    flight: Flight-only fields JSON\n```","operationId":"create_flight_from_references_flights_from_references_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightWithReferencesRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightCreated"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/{flight_id}":{"get":{"tags":["FLIGHT"],"summary":"Read Flight","description":"Reads an existing flight\n\n## Args\n``` flight_id: str ```","operationId":"read_flight_flights__flight_id__get","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightRetrieved"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}},"put":{"tags":["FLIGHT"],"summary":"Update Flight","description":"Updates an existing flight\n\n## Args\n```\n    flight_id: str\n    flight: models.flight JSON\n```","operationId":"update_flight_flights__flight_id__put","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightModel"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["FLIGHT"],"summary":"Delete Flight","description":"Deletes an existing flight\n\n## Args\n``` flight_id: str ```","operationId":"delete_flight_flights__flight_id__delete","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/{flight_id}/from-references":{"put":{"tags":["FLIGHT"],"summary":"Update Flight From References","description":"Updates a flight using existing rocket and environment references.\n\n## Args\n```\n    flight_id: str\n    environment_id: str\n    rocket_id: str\n    flight: Flight-only fields JSON\n```","operationId":"update_flight_from_references_flights__flight_id__from_references_put","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightWithReferencesRequest"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/{flight_id}/rocketpy":{"get":{"tags":["FLIGHT"],"summary":"Get Rocketpy Flight Rpy","description":"Export a rocketpy Flight as a portable ``.rpy`` JSON file.\n\nThe ``.rpy`` format is architecture-, OS-, and\nPython-version-agnostic.\n\n## Args\n``` flight_id: str ```","operationId":"get_rocketpy_flight_rpy_flights__flight_id__rocketpy_get","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"responses":{"200":{"description":"Portable .rpy JSON file download","content":{"application/json":{}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/upload":{"post":{"tags":["FLIGHT"],"summary":"Import Flight From Rpy","description":"Upload a ``.rpy`` JSON file containing a RocketPy Flight.\n\nThe file is deserialized and decomposed into its\nconstituent objects (Environment, Motor, Rocket, Flight).\nEach object is persisted as a normal JSON model and the\ncorresponding IDs are returned.  Maximum upload size is 10 MB.\n\n## Args\n``` file: .rpy JSON upload ```","operationId":"import_flight_from_rpy_flights_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_flight_from_rpy_flights_upload_post"}}},"required":true},"responses":{"201":{"description":"Flight imported from .rpy file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightImported"}}}},"404":{"description":"Not found"},"422":{"description":"Invalid .rpy file"},"500":{"description":"Internal Server Error"},"413":{"description":"Uploaded .rpy file exceeds size limit"}}}},"/flights/{flight_id}/notebook":{"get":{"tags":["FLIGHT"],"summary":"Get Flight Notebook","description":"Export a flight as a Jupyter notebook (.ipynb).\n\nThe notebook loads the flight's ``.rpy`` file and calls\n``flight.all_info()`` for interactive exploration.\n\n## Args\n``` flight_id: str ```","operationId":"get_flight_notebook_flights__flight_id__notebook_get","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"responses":{"200":{"description":"Jupyter notebook file download","content":{"application/x-ipynb+json":{}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/{flight_id}/environment":{"put":{"tags":["FLIGHT"],"summary":"Update Flight Environment","description":"Updates flight environment\n\n## Args\n```\n    flight_id: Flight ID\n    environment: env object as JSON\n```","operationId":"update_flight_environment_flights__flight_id__environment_put","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentModel"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/{flight_id}/rocket":{"put":{"tags":["FLIGHT"],"summary":"Update Flight Rocket","description":"Updates flight rocket.\n\n## Args\n```\n    flight_id: Flight ID\n    rocket: RocketModel object as JSON\n```","operationId":"update_flight_rocket_flights__flight_id__rocket_put","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketModel"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/{flight_id}/kml":{"get":{"tags":["FLIGHT"],"summary":"Get Flight Kml","description":"Export a flight trajectory as a KML file for Google Earth.\n\n## Args\n``` flight_id: str ```","operationId":"get_flight_kml_flights__flight_id__kml_get","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"responses":{"200":{"description":"KML trajectory file download","content":{"application/vnd.google-earth.kml+xml":{}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/flights/{flight_id}/simulate":{"get":{"tags":["FLIGHT"],"summary":"Get Flight Simulation","description":"Simulates a flight\n\n## Args\n``` flight_id: Flight ID ```","operationId":"get_flight_simulation_flights__flight_id__simulate_get","parameters":[{"name":"flight_id","in":"path","required":true,"schema":{"type":"string","title":"Flight Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlightSimulation"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/environments/":{"post":{"tags":["ENVIRONMENT"],"summary":"Create Environment","description":"Creates a new environment\n\n## Args\n``` models.Environment JSON ```","operationId":"create_environment_environments__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentModel"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentCreated"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/environments/{environment_id}":{"get":{"tags":["ENVIRONMENT"],"summary":"Read Environment","description":"Reads an existing environment\n\n## Args\n``` environment_id: str ```","operationId":"read_environment_environments__environment_id__get","parameters":[{"name":"environment_id","in":"path","required":true,"schema":{"type":"string","title":"Environment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentRetrieved"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}},"put":{"tags":["ENVIRONMENT"],"summary":"Update Environment","description":"Updates an existing environment\n\n## Args\n```\n    environment_id: str\n    environment: models.Environment JSON\n```","operationId":"update_environment_environments__environment_id__put","parameters":[{"name":"environment_id","in":"path","required":true,"schema":{"type":"string","title":"Environment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentModel"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["ENVIRONMENT"],"summary":"Delete Environment","description":"Deletes an existing environment\n\n## Args\n``` environment_id: str ```","operationId":"delete_environment_environments__environment_id__delete","parameters":[{"name":"environment_id","in":"path","required":true,"schema":{"type":"string","title":"Environment Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/environments/{environment_id}/rocketpy":{"get":{"tags":["ENVIRONMENT"],"summary":"Get Rocketpy Environment Binary","description":"Loads rocketpy.environment as a dill binary.\nCurrently only amd64 architecture is supported.\n\n## Args\n``` environment_id: str ```","operationId":"get_rocketpy_environment_binary_environments__environment_id__rocketpy_get","parameters":[{"name":"environment_id","in":"path","required":true,"schema":{"type":"string","title":"Environment Id"}}],"responses":{"200":{"description":"Binary file download","content":{"application/octet-stream":{}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/environments/{environment_id}/simulate":{"get":{"tags":["ENVIRONMENT"],"summary":"Get Environment Simulation","description":"Simulates an environment\n\n## Args\n``` environment_id: Environment ID```","operationId":"get_environment_simulation_environments__environment_id__simulate_get","parameters":[{"name":"environment_id","in":"path","required":true,"schema":{"type":"string","title":"Environment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentSimulation"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/motors/":{"post":{"tags":["MOTOR"],"summary":"Create Motor","description":"Creates a new motor\n\n## Args\n``` models.Motor JSON ```\n\nFor liquid/hybrid motors the `tanks` field supports three geometry\nkinds via the `geometry_kind` discriminator and a scalar-or-sampled\nfluid `density`:\n\n```\n{\n  \"motor_kind\": \"LIQUID\",\n  ...\n  \"tanks\": [{\n    \"geometry\": {\n      \"geometry_kind\": \"cylindrical\",    // or \"spherical\", \"custom\"\n      \"radius\": 0.1, \"height\": 0.5\n    },\n    \"liquid\": {\n      \"name\": \"LOX\",\n      \"density\": [[90.0, 1141.0], [120.0, 1091.0]]   // or scalar\n    },\n    \"gas\": {\"name\": \"N2\", \"density\": 1.2},\n    \"tank_kind\": \"LEVEL\",\n    \"liquid_height\": 0.25,\n    ...\n  }]\n}\n```","operationId":"create_motor_motors__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotorModel"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotorCreated"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/motors/{motor_id}":{"get":{"tags":["MOTOR"],"summary":"Read Motor","description":"Reads an existing motor\n\n## Args\n``` motor_id: str ```","operationId":"read_motor_motors__motor_id__get","parameters":[{"name":"motor_id","in":"path","required":true,"schema":{"type":"string","title":"Motor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotorRetrieved"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}},"put":{"tags":["MOTOR"],"summary":"Update Motor","description":"Updates an existing motor\n\n## Args\n```\n    motor_id: str\n    motor: models.motor JSON\n```","operationId":"update_motor_motors__motor_id__put","parameters":[{"name":"motor_id","in":"path","required":true,"schema":{"type":"string","title":"Motor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotorModel"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["MOTOR"],"summary":"Delete Motor","description":"Deletes an existing motor\n\n## Args\n``` motor_id: str ```","operationId":"delete_motor_motors__motor_id__delete","parameters":[{"name":"motor_id","in":"path","required":true,"schema":{"type":"string","title":"Motor Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/motors/{motor_id}/rocketpy":{"get":{"tags":["MOTOR"],"summary":"Get Rocketpy Motor Binary","description":"Loads rocketpy.motor as a dill binary.\nCurrently only amd64 architecture is supported.\n\n## Args\n``` motor_id: str ```","operationId":"get_rocketpy_motor_binary_motors__motor_id__rocketpy_get","parameters":[{"name":"motor_id","in":"path","required":true,"schema":{"type":"string","title":"Motor Id"}}],"responses":{"200":{"description":"Binary file download","content":{"application/octet-stream":{}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/motors/{motor_id}/simulate":{"get":{"tags":["MOTOR"],"summary":"Get Motor Simulation","description":"Simulates a motor\n\n## Args\n``` motor_id: Motor ID ```","operationId":"get_motor_simulation_motors__motor_id__simulate_get","parameters":[{"name":"motor_id","in":"path","required":true,"schema":{"type":"string","title":"Motor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotorSimulation"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/motors/{motor_id}/drawing-geometry":{"get":{"tags":["MOTOR"],"summary":"Get Motor Drawing Geometry","description":"Returns motor-only drawing geometry so a frontend can render the\nmotor in isolation. The payload mirrors what the motor portion of\n`rocketpy.Rocket.draw()` would produce, but at the motor's own\ncoordinate origin rather than embedded inside a rocket.\n\nUse `GET /rockets/{rocket_id}/drawing-geometry` instead when the\nmotor should be shown inside a complete rocket.\n\n## Args\n``` motor_id: Motor ID ```","operationId":"get_motor_drawing_geometry_motors__motor_id__drawing_geometry_get","parameters":[{"name":"motor_id","in":"path","required":true,"schema":{"type":"string","title":"Motor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotorDrawingGeometryView"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/rockets/":{"post":{"tags":["ROCKET"],"summary":"Create Rocket","description":"Creates a new rocket\n\n## Args\n``` models.Rocket JSON ```","operationId":"create_rocket_rockets__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketModel"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketCreated"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/rockets/from-motor-reference":{"post":{"tags":["ROCKET"],"summary":"Create Rocket From Motor Reference","description":"Creates a rocket using an existing motor reference.\n\n## Args\n```\n    motor_id: str\n    rocket: Rocket-only fields JSON\n```","operationId":"create_rocket_from_motor_reference_rockets_from_motor_reference_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketWithMotorReferenceRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketCreated"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/rockets/{rocket_id}":{"get":{"tags":["ROCKET"],"summary":"Read Rocket","description":"Reads an existing rocket\n\n## Args\n``` rocket_id: str ```","operationId":"read_rocket_rockets__rocket_id__get","parameters":[{"name":"rocket_id","in":"path","required":true,"schema":{"type":"string","title":"Rocket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketRetrieved"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}},"put":{"tags":["ROCKET"],"summary":"Update Rocket","description":"Updates an existing rocket\n\n## Args\n```\n    rocket_id: str\n    rocket: models.rocket JSON\n```","operationId":"update_rocket_rockets__rocket_id__put","parameters":[{"name":"rocket_id","in":"path","required":true,"schema":{"type":"string","title":"Rocket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketModel"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}},"delete":{"tags":["ROCKET"],"summary":"Delete Rocket","description":"Deletes an existing rocket\n\n## Args\n``` rocket_id: str ```","operationId":"delete_rocket_rockets__rocket_id__delete","parameters":[{"name":"rocket_id","in":"path","required":true,"schema":{"type":"string","title":"Rocket Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/rockets/{rocket_id}/from-motor-reference":{"put":{"tags":["ROCKET"],"summary":"Update Rocket From Motor Reference","description":"Updates a rocket using an existing motor reference.\n\n## Args\n```\n    rocket_id: str\n    motor_id: str\n    rocket: Rocket-only fields JSON\n```","operationId":"update_rocket_from_motor_reference_rockets__rocket_id__from_motor_reference_put","parameters":[{"name":"rocket_id","in":"path","required":true,"schema":{"type":"string","title":"Rocket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketWithMotorReferenceRequest"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/rockets/{rocket_id}/rocketpy":{"get":{"tags":["ROCKET"],"summary":"Get Rocketpy Rocket Binary","description":"Loads rocketpy.rocket as a dill binary.\nCurrently only amd64 architecture is supported.\n\n## Args\n``` rocket_id: str ```","operationId":"get_rocketpy_rocket_binary_rockets__rocket_id__rocketpy_get","parameters":[{"name":"rocket_id","in":"path","required":true,"schema":{"type":"string","title":"Rocket Id"}}],"responses":{"200":{"description":"Binary file download","content":{"application/octet-stream":{}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/rockets/{rocket_id}/simulate":{"get":{"tags":["ROCKET"],"summary":"Simulate Rocket","description":"Simulates a rocket\n\n## Args\n``` rocket_id: Rocket ID ```","operationId":"simulate_rocket_rockets__rocket_id__simulate_get","parameters":[{"name":"rocket_id","in":"path","required":true,"schema":{"type":"string","title":"Rocket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketSimulation"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}},"/rockets/{rocket_id}/drawing-geometry":{"get":{"tags":["ROCKET"],"summary":"Get Rocket Drawing Geometry","description":"Returns structured drawing geometry for the rocket so that a frontend\ncan redraw exactly what rocketpy.Rocket.draw() would render.\n\nResponse contains shape coordinate arrays for each aerodynamic surface,\ntube segments, motor polygons (nozzle, chamber, grains, tanks, outline),\nrail-button positions, CG/CP at t=0, sensors, and overall drawing bounds.\n\n## Args\n``` rocket_id: Rocket ID ```","operationId":"get_rocket_drawing_geometry_rockets__rocket_id__drawing_geometry_get","parameters":[{"name":"rocket_id","in":"path","required":true,"schema":{"type":"string","title":"Rocket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RocketDrawingGeometry"}}}},"404":{"description":"Not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"Body_import_flight_from_rpy_flights_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_import_flight_from_rpy_flights_upload_post"},"CustomTankGeometry":{"properties":{"geometry_kind":{"type":"string","const":"custom","title":"Geometry Kind","default":"custom"},"geometry":{"items":{"prefixItems":[{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Geometry"}},"type":"object","required":["geometry"],"title":"CustomTankGeometry"},"CylindricalTankGeometry":{"properties":{"geometry_kind":{"type":"string","const":"cylindrical","title":"Geometry Kind","default":"cylindrical"},"radius":{"type":"number","title":"Radius"},"height":{"type":"number","title":"Height"},"spherical_caps":{"type":"boolean","title":"Spherical Caps","default":false}},"type":"object","required":["radius","height"],"title":"CylindricalTankGeometry"},"DrawingBounds":{"properties":{"x_min":{"type":"number","title":"X Min"},"x_max":{"type":"number","title":"X Max"},"y_min":{"type":"number","title":"Y Min"},"y_max":{"type":"number","title":"Y Max"}},"type":"object","required":["x_min","x_max","y_min","y_max"],"title":"DrawingBounds"},"EnvironmentCreated":{"properties":{"message":{"type":"string","title":"Message","default":"Environment successfully created"},"environment_id":{"type":"string","title":"Environment Id"}},"type":"object","required":["environment_id"],"title":"EnvironmentCreated"},"EnvironmentModel":{"properties":{"latitude":{"type":"number","title":"Latitude"},"longitude":{"type":"number","title":"Longitude"},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation","default":0.0},"pressure":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Pressure"},"temperature":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Temperature"},"wind_u":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Wind U"},"wind_v":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Wind V"},"atmospheric_model_type":{"type":"string","enum":["standard_atmosphere","custom_atmosphere","wyoming_sounding","forecast","reanalysis","ensemble"],"title":"Atmospheric Model Type","default":"standard_atmosphere"},"atmospheric_model_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Atmospheric Model File"},"date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date"}},"type":"object","required":["latitude","longitude"],"title":"EnvironmentModel"},"EnvironmentRetrieved":{"properties":{"message":{"type":"string","title":"Message","default":"Environment successfully retrieved"},"environment":{"$ref":"#/components/schemas/EnvironmentView"}},"type":"object","required":["environment"],"title":"EnvironmentRetrieved"},"EnvironmentSimulation":{"properties":{"message":{"type":"string","title":"Message","default":"Environment successfully simulated"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation","default":1},"atmospheric_model_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Atmospheric Model Type"},"air_gas_constant":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Air Gas Constant"},"standard_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Standard G"},"earth_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Earth Radius"},"datum":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datum"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"initial_utm_zone":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Initial Utm Zone"},"initial_utm_letter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Utm Letter"},"initial_north":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial North"},"initial_east":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial East"},"initial_hemisphere":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Hemisphere"},"initial_ew":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Ew"},"max_expected_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Expected Height"},"date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date"},"local_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Local Date"},"datetime_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Datetime Date"},"ellipsoid":{"anyOf":[{},{"type":"null"}],"title":"Ellipsoid"},"barometric_height":{"anyOf":[{},{"type":"null"}],"title":"Barometric Height"},"barometric_height_ISA":{"anyOf":[{},{"type":"null"}],"title":"Barometric Height Isa"},"pressure":{"anyOf":[{},{"type":"null"}],"title":"Pressure"},"pressure_ISA":{"anyOf":[{},{"type":"null"}],"title":"Pressure Isa"},"temperature":{"anyOf":[{},{"type":"null"}],"title":"Temperature"},"temperature_ISA":{"anyOf":[{},{"type":"null"}],"title":"Temperature Isa"},"density":{"anyOf":[{},{"type":"null"}],"title":"Density"},"speed_of_sound":{"anyOf":[{},{"type":"null"}],"title":"Speed Of Sound"},"dynamic_viscosity":{"anyOf":[{},{"type":"null"}],"title":"Dynamic Viscosity"},"gravity":{"anyOf":[{},{"type":"null"}],"title":"Gravity"},"somigliana_gravity":{"anyOf":[{},{"type":"null"}],"title":"Somigliana Gravity"},"wind_speed":{"anyOf":[{},{"type":"null"}],"title":"Wind Speed"},"wind_direction":{"anyOf":[{},{"type":"null"}],"title":"Wind Direction"},"wind_heading":{"anyOf":[{},{"type":"null"}],"title":"Wind Heading"},"wind_velocity_x":{"anyOf":[{},{"type":"null"}],"title":"Wind Velocity X"},"wind_velocity_y":{"anyOf":[{},{"type":"null"}],"title":"Wind Velocity Y"},"calculate_earth_radius":{"anyOf":[{},{"type":"null"}],"title":"Calculate Earth Radius"},"decimal_degrees_to_arc_seconds":{"anyOf":[{},{"type":"null"}],"title":"Decimal Degrees To Arc Seconds"},"geodesic_to_utm":{"anyOf":[{},{"type":"null"}],"title":"Geodesic To Utm"},"utm_to_geodesic":{"anyOf":[{},{"type":"null"}],"title":"Utm To Geodesic"}},"additionalProperties":true,"type":"object","title":"EnvironmentSimulation","description":"Environment simulation view that handles dynamically\nencoded RocketPy Environment attributes.\n\nUses the new rocketpy_encoder which may return\ndifferent attributes based on the actual RocketPy Environment object.\nThe model allows extra fields to accommodate\nany new attributes that might be encoded."},"EnvironmentView":{"properties":{"latitude":{"type":"number","title":"Latitude"},"longitude":{"type":"number","title":"Longitude"},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation","default":0.0},"pressure":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Pressure"},"temperature":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Temperature"},"wind_u":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Wind U"},"wind_v":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Wind V"},"atmospheric_model_type":{"type":"string","enum":["standard_atmosphere","custom_atmosphere","wyoming_sounding","forecast","reanalysis","ensemble"],"title":"Atmospheric Model Type","default":"standard_atmosphere"},"atmospheric_model_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Atmospheric Model File"},"date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date"},"environment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment Id"}},"type":"object","required":["latitude","longitude"],"title":"EnvironmentView"},"FinOutline":{"properties":{"x":{"items":{"type":"number"},"type":"array","title":"X"},"y":{"items":{"type":"number"},"type":"array","title":"Y"}},"type":"object","required":["x","y"],"title":"FinOutline"},"Fins":{"properties":{"fins_kind":{"type":"string","enum":["trapezoidal","elliptical"],"title":"Fins Kind"},"name":{"type":"string","title":"Name"},"n":{"type":"integer","title":"N"},"root_chord":{"type":"number","title":"Root Chord"},"span":{"type":"number","title":"Span"},"position":{"type":"number","title":"Position"},"tip_chord":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tip Chord"},"cant_angle":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cant Angle"},"rocket_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rocket Radius"},"airfoil":{"anyOf":[{"prefixItems":[{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"string","enum":["radians","degrees"]}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Airfoil"},"sweep_length":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sweep Length"},"sweep_angle":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sweep Angle"}},"type":"object","required":["fins_kind","name","n","root_chord","span","position"],"title":"Fins"},"FinsGeometry":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"kind":{"type":"string","title":"Kind"},"n":{"type":"integer","title":"N"},"cant_angle_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cant Angle Deg"},"position":{"type":"number","title":"Position"},"outlines":{"items":{"$ref":"#/components/schemas/FinOutline"},"type":"array","title":"Outlines"}},"type":"object","required":["kind","n","position","outlines"],"title":"FinsGeometry"},"FlightCreated":{"properties":{"message":{"type":"string","title":"Message","default":"Flight successfully created"},"flight_id":{"type":"string","title":"Flight Id"}},"type":"object","required":["flight_id"],"title":"FlightCreated"},"FlightImported":{"properties":{"message":{"type":"string","title":"Message","default":"Flight successfully imported from .rpy file"},"flight_id":{"type":"string","title":"Flight Id"},"rocket_id":{"type":"string","title":"Rocket Id"},"motor_id":{"type":"string","title":"Motor Id"},"environment_id":{"type":"string","title":"Environment Id"}},"type":"object","required":["flight_id","rocket_id","motor_id","environment_id"],"title":"FlightImported"},"FlightModel":{"properties":{"name":{"type":"string","title":"Name","default":"flight"},"environment":{"$ref":"#/components/schemas/EnvironmentModel"},"rocket":{"$ref":"#/components/schemas/RocketModel"},"rail_length":{"type":"number","title":"Rail Length","default":1},"time_overshoot":{"type":"boolean","title":"Time Overshoot","default":true},"terminate_on_apogee":{"type":"boolean","title":"Terminate On Apogee","default":false},"equations_of_motion":{"type":"string","enum":["standard","solid_propulsion"],"title":"Equations Of Motion","default":"standard"},"inclination":{"type":"number","title":"Inclination","default":90.0},"heading":{"type":"number","title":"Heading","default":0.0},"max_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Time"},"max_time_step":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Time Step"},"min_time_step":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Time Step"},"rtol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rtol"},"atol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Atol"},"verbose":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verbose"}},"type":"object","required":["environment","rocket"],"title":"FlightModel"},"FlightPartialModel":{"properties":{"name":{"type":"string","title":"Name","default":"flight"},"rail_length":{"type":"number","title":"Rail Length","default":1},"time_overshoot":{"type":"boolean","title":"Time Overshoot","default":true},"terminate_on_apogee":{"type":"boolean","title":"Terminate On Apogee","default":false},"equations_of_motion":{"type":"string","enum":["standard","solid_propulsion"],"title":"Equations Of Motion","default":"standard"},"inclination":{"type":"number","title":"Inclination","default":90.0},"heading":{"type":"number","title":"Heading","default":0.0},"max_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Time"},"max_time_step":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Time Step"},"min_time_step":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Time Step"},"rtol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rtol"},"atol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Atol"},"verbose":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verbose"}},"type":"object","title":"FlightPartialModel","description":"Flight attributes required when rocket/environment are referenced."},"FlightRetrieved":{"properties":{"message":{"type":"string","title":"Message","default":"Flight successfully retrieved"},"flight":{"$ref":"#/components/schemas/FlightView"}},"type":"object","required":["flight"],"title":"FlightRetrieved"},"FlightSimulation":{"properties":{"message":{"type":"string","title":"Message","default":"Flight successfully simulated"},"rail_length":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rail Length"},"inclination":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Inclination"},"heading":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Heading"},"terminate_on_apogee":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Terminate On Apogee"},"initial_solution":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Initial Solution"},"rocket":{"anyOf":[{"$ref":"#/components/schemas/RocketSimulation"},{"type":"null"}]},"env":{"anyOf":[{"$ref":"#/components/schemas/EnvironmentSimulation"},{"type":"null"}]},"latitude":{"anyOf":[{},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{},{"type":"null"}],"title":"Longitude"},"altitude":{"anyOf":[{},{"type":"null"}],"title":"Altitude"},"x":{"anyOf":[{},{"type":"null"}],"title":"X"},"y":{"anyOf":[{},{"type":"null"}],"title":"Y"},"z":{"anyOf":[{},{"type":"null"}],"title":"Z"},"vx":{"anyOf":[{},{"type":"null"}],"title":"Vx"},"vy":{"anyOf":[{},{"type":"null"}],"title":"Vy"},"vz":{"anyOf":[{},{"type":"null"}],"title":"Vz"},"speed":{"anyOf":[{},{"type":"null"}],"title":"Speed"},"max_speed":{"anyOf":[{},{"type":"null"}],"title":"Max Speed"},"max_speed_time":{"anyOf":[{},{"type":"null"}],"title":"Max Speed Time"},"apogee":{"anyOf":[{},{"type":"null"}],"title":"Apogee"},"apogee_time":{"anyOf":[{},{"type":"null"}],"title":"Apogee Time"},"apogee_x":{"anyOf":[{},{"type":"null"}],"title":"Apogee X"},"apogee_y":{"anyOf":[{},{"type":"null"}],"title":"Apogee Y"},"apogee_freestream_speed":{"anyOf":[{},{"type":"null"}],"title":"Apogee Freestream Speed"},"x_impact":{"anyOf":[{},{"type":"null"}],"title":"X Impact"},"y_impact":{"anyOf":[{},{"type":"null"}],"title":"Y Impact"},"z_impact":{"anyOf":[{},{"type":"null"}],"title":"Z Impact"},"impact_velocity":{"anyOf":[{},{"type":"null"}],"title":"Impact Velocity"},"acceleration":{"anyOf":[{},{"type":"null"}],"title":"Acceleration"},"max_acceleration":{"anyOf":[{},{"type":"null"}],"title":"Max Acceleration"},"max_acceleration_time":{"anyOf":[{},{"type":"null"}],"title":"Max Acceleration Time"},"aerodynamic_drag":{"anyOf":[{},{"type":"null"}],"title":"Aerodynamic Drag"},"aerodynamic_lift":{"anyOf":[{},{"type":"null"}],"title":"Aerodynamic Lift"},"max_acceleration_power_on":{"anyOf":[{},{"type":"null"}],"title":"Max Acceleration Power On"},"max_acceleration_power_on_time":{"anyOf":[{},{"type":"null"}],"title":"Max Acceleration Power On Time"},"max_acceleration_power_off":{"anyOf":[{},{"type":"null"}],"title":"Max Acceleration Power Off"},"max_acceleration_power_off_time":{"anyOf":[{},{"type":"null"}],"title":"Max Acceleration Power Off Time"},"mach_number":{"anyOf":[{},{"type":"null"}],"title":"Mach Number"},"max_mach_number":{"anyOf":[{},{"type":"null"}],"title":"Max Mach Number"},"max_mach_number_time":{"anyOf":[{},{"type":"null"}],"title":"Max Mach Number Time"},"angle_of_attack":{"anyOf":[{},{"type":"null"}],"title":"Angle Of Attack"},"dynamic_pressure":{"anyOf":[{},{"type":"null"}],"title":"Dynamic Pressure"},"max_dynamic_pressure":{"anyOf":[{},{"type":"null"}],"title":"Max Dynamic Pressure"},"max_dynamic_pressure_time":{"anyOf":[{},{"type":"null"}],"title":"Max Dynamic Pressure Time"},"reynolds_number":{"anyOf":[{},{"type":"null"}],"title":"Reynolds Number"},"max_reynolds_number":{"anyOf":[{},{"type":"null"}],"title":"Max Reynolds Number"},"max_reynolds_number_time":{"anyOf":[{},{"type":"null"}],"title":"Max Reynolds Number Time"},"time":{"anyOf":[{},{"type":"null"}],"title":"Time"},"solution":{"anyOf":[{},{"type":"null"}],"title":"Solution"},"t_final":{"anyOf":[{},{"type":"null"}],"title":"T Final"},"max_time":{"anyOf":[{},{"type":"null"}],"title":"Max Time"},"max_time_step":{"anyOf":[{},{"type":"null"}],"title":"Max Time Step"},"min_time_step":{"anyOf":[{},{"type":"null"}],"title":"Min Time Step"},"rtol":{"anyOf":[{},{"type":"null"}],"title":"Rtol"},"atol":{"anyOf":[{},{"type":"null"}],"title":"Atol"},"time_overshoot":{"anyOf":[{},{"type":"null"}],"title":"Time Overshoot"},"out_of_rail_time":{"anyOf":[{},{"type":"null"}],"title":"Out Of Rail Time"},"out_of_rail_time_index":{"anyOf":[{},{"type":"null"}],"title":"Out Of Rail Time Index"},"out_of_rail_velocity":{"anyOf":[{},{"type":"null"}],"title":"Out Of Rail Velocity"},"out_of_rail_stability_margin":{"anyOf":[{},{"type":"null"}],"title":"Out Of Rail Stability Margin"},"initial_stability_margin":{"anyOf":[{},{"type":"null"}],"title":"Initial Stability Margin"},"max_stability_margin":{"anyOf":[{},{"type":"null"}],"title":"Max Stability Margin"},"max_stability_margin_time":{"anyOf":[{},{"type":"null"}],"title":"Max Stability Margin Time"},"min_stability_margin":{"anyOf":[{},{"type":"null"}],"title":"Min Stability Margin"},"min_stability_margin_time":{"anyOf":[{},{"type":"null"}],"title":"Min Stability Margin Time"},"angular_position":{"anyOf":[{},{"type":"null"}],"title":"Angular Position"},"attitude_angle":{"anyOf":[{},{"type":"null"}],"title":"Attitude Angle"},"attitude_vector_x":{"anyOf":[{},{"type":"null"}],"title":"Attitude Vector X"},"attitude_vector_y":{"anyOf":[{},{"type":"null"}],"title":"Attitude Vector Y"},"attitude_vector_z":{"anyOf":[{},{"type":"null"}],"title":"Attitude Vector Z"},"trajectory":{"anyOf":[{},{"type":"null"}],"title":"Trajectory"},"velocity":{"anyOf":[{},{"type":"null"}],"title":"Velocity"},"acceleration_power_on":{"anyOf":[{},{"type":"null"}],"title":"Acceleration Power On"},"acceleration_power_off":{"anyOf":[{},{"type":"null"}],"title":"Acceleration Power Off"},"stream_velocity":{"anyOf":[{},{"type":"null"}],"title":"Stream Velocity"},"free_stream_speed":{"anyOf":[{},{"type":"null"}],"title":"Free Stream Speed"},"total_pressure":{"anyOf":[{},{"type":"null"}],"title":"Total Pressure"},"rail_button_normal_force":{"anyOf":[{},{"type":"null"}],"title":"Rail Button Normal Force"},"max_rail_button_normal_force":{"anyOf":[{},{"type":"null"}],"title":"Max Rail Button Normal Force"},"rail_button_shear_force":{"anyOf":[{},{"type":"null"}],"title":"Rail Button Shear Force"},"max_rail_button_shear_force":{"anyOf":[{},{"type":"null"}],"title":"Max Rail Button Shear Force"},"max_rail_button1_normal_force":{"anyOf":[{},{"type":"null"}],"title":"Max Rail Button1 Normal Force"},"max_rail_button1_shear_force":{"anyOf":[{},{"type":"null"}],"title":"Max Rail Button1 Shear Force"},"max_rail_button2_normal_force":{"anyOf":[{},{"type":"null"}],"title":"Max Rail Button2 Normal Force"},"max_rail_button2_shear_force":{"anyOf":[{},{"type":"null"}],"title":"Max Rail Button2 Shear Force"},"rotational_energy":{"anyOf":[{},{"type":"null"}],"title":"Rotational Energy"},"translational_energy":{"anyOf":[{},{"type":"null"}],"title":"Translational Energy"},"kinetic_energy":{"anyOf":[{},{"type":"null"}],"title":"Kinetic Energy"},"potential_energy":{"anyOf":[{},{"type":"null"}],"title":"Potential Energy"},"total_energy":{"anyOf":[{},{"type":"null"}],"title":"Total Energy"},"thrust_power":{"anyOf":[{},{"type":"null"}],"title":"Thrust Power"},"drag_power":{"anyOf":[{},{"type":"null"}],"title":"Drag Power"},"drift":{"anyOf":[{},{"type":"null"}],"title":"Drift"},"frontal_surface_wind":{"anyOf":[{},{"type":"null"}],"title":"Frontal Surface Wind"},"lateral_surface_wind":{"anyOf":[{},{"type":"null"}],"title":"Lateral Surface Wind"}},"type":"object","title":"FlightSimulation","description":"Flight simulation view that handles dynamically encoded RocketPy Flight attributes.\n\nInherits from both RocketSimulation and EnvironmentSimulation, and adds flight-specific\nattributes. Uses the new rocketpy_encoder which may return different attributes based\non the actual RocketPy Flight object. The model allows extra fields to accommodate\nany new attributes that might be encoded."},"FlightView":{"properties":{"name":{"type":"string","title":"Name","default":"flight"},"environment":{"$ref":"#/components/schemas/EnvironmentModel"},"rocket":{"$ref":"#/components/schemas/RocketView"},"rail_length":{"type":"number","title":"Rail Length","default":1},"time_overshoot":{"type":"boolean","title":"Time Overshoot","default":true},"terminate_on_apogee":{"type":"boolean","title":"Terminate On Apogee","default":false},"equations_of_motion":{"type":"string","enum":["standard","solid_propulsion"],"title":"Equations Of Motion","default":"standard"},"inclination":{"type":"number","title":"Inclination","default":90.0},"heading":{"type":"number","title":"Heading","default":0.0},"max_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Time"},"max_time_step":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Time Step"},"min_time_step":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Time Step"},"rtol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rtol"},"atol":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Atol"},"verbose":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verbose"},"flight_id":{"type":"string","title":"Flight Id"}},"type":"object","required":["environment","rocket","flight_id"],"title":"FlightView"},"FlightWithReferencesRequest":{"properties":{"environment_id":{"type":"string","title":"Environment Id"},"rocket_id":{"type":"string","title":"Rocket Id"},"flight":{"$ref":"#/components/schemas/FlightPartialModel"}},"type":"object","required":["environment_id","rocket_id","flight"],"title":"FlightWithReferencesRequest","description":"Payload for creating or updating flights via component references."},"MotorCreated":{"properties":{"message":{"type":"string","title":"Message","default":"Motor successfully created"},"motor_id":{"type":"string","title":"Motor Id"}},"type":"object","required":["motor_id"],"title":"MotorCreated"},"MotorDrawingGeometry":{"properties":{"type":{"type":"string","enum":["solid","hybrid","liquid","empty","generic"],"title":"Type"},"position":{"type":"number","title":"Position"},"nozzle_position":{"type":"number","title":"Nozzle Position"},"grains_center_of_mass_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grains Center Of Mass Position"},"patches":{"items":{"$ref":"#/components/schemas/MotorPatch"},"type":"array","title":"Patches"}},"type":"object","required":["type","position","nozzle_position","patches"],"title":"MotorDrawingGeometry"},"MotorDrawingGeometryView":{"properties":{"message":{"type":"string","title":"Message","default":"Motor drawing geometry retrieved"},"motor":{"$ref":"#/components/schemas/MotorDrawingGeometry"},"coordinate_system_orientation":{"type":"string","title":"Coordinate System Orientation"},"bounds":{"$ref":"#/components/schemas/DrawingBounds"}},"type":"object","required":["motor","coordinate_system_orientation","bounds"],"title":"MotorDrawingGeometryView","description":"Motor-only drawing-geometry response.\n\nReturns exactly the subset of the rocket drawing payload that belongs\nto the motor — the patches rocketpy's ``Rocket.draw()`` would feed to\nmatplotlib for this motor, plus a tight bounding box. When the client\nneeds the motor embedded in a full rocket render it should call\n``GET /rockets/{rocket_id}/drawing-geometry`` instead."},"MotorKinds":{"type":"string","enum":["HYBRID","SOLID","GENERIC","LIQUID"],"title":"MotorKinds"},"MotorModel":{"properties":{"thrust_source":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Thrust Source"},"burn_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Burn Time"},"nozzle_radius":{"type":"number","title":"Nozzle Radius"},"dry_mass":{"type":"number","title":"Dry Mass"},"dry_inertia":{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3,"title":"Dry Inertia","default":[0,0,0]},"center_of_dry_mass_position":{"type":"number","title":"Center Of Dry Mass Position"},"motor_kind":{"$ref":"#/components/schemas/MotorKinds"},"chamber_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Chamber Radius"},"chamber_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Chamber Height"},"chamber_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Chamber Position"},"propellant_initial_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Propellant Initial Mass"},"nozzle_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nozzle Position"},"tanks":{"anyOf":[{"items":{"$ref":"#/components/schemas/MotorTank"},"type":"array"},{"type":"null"}],"title":"Tanks"},"grain_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grain Number"},"grain_density":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Density"},"grain_outer_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Outer Radius"},"grain_initial_inner_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Initial Inner Radius"},"grain_initial_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Initial Height"},"grains_center_of_mass_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grains Center Of Mass Position"},"grain_separation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Separation"},"throat_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Throat Radius"},"interpolation_method":{"type":"string","enum":["linear","spline","akima","polynomial","shepard","rbf"],"title":"Interpolation Method","default":"linear"},"coordinate_system_orientation":{"type":"string","enum":["nozzle_to_combustion_chamber","combustion_chamber_to_nozzle"],"title":"Coordinate System Orientation","default":"nozzle_to_combustion_chamber"},"reshape_thrust_curve":{"anyOf":[{"type":"boolean"},{"items":{},"type":"array"}],"title":"Reshape Thrust Curve","default":false}},"type":"object","required":["thrust_source","nozzle_radius","dry_mass","center_of_dry_mass_position","motor_kind"],"title":"MotorModel"},"MotorPatch":{"properties":{"role":{"type":"string","enum":["nozzle","chamber","grain","tank","outline"],"title":"Role"},"x":{"items":{"type":"number"},"type":"array","title":"X"},"y":{"items":{"type":"number"},"type":"array","title":"Y"}},"type":"object","required":["role","x","y"],"title":"MotorPatch"},"MotorRetrieved":{"properties":{"message":{"type":"string","title":"Message","default":"Motor successfully retrieved"},"motor":{"$ref":"#/components/schemas/MotorView"}},"type":"object","required":["motor"],"title":"MotorRetrieved"},"MotorSimulation":{"properties":{"message":{"type":"string","title":"Message","default":"Motor successfully simulated"},"burn_start_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Burn Start Time"},"burn_out_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Burn Out Time"},"dry_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dry Mass"},"dry_inertia":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dry Inertia"},"center_of_dry_mass_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Center Of Dry Mass Position"},"grains_center_of_mass_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grains Center Of Mass Position"},"grain_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grain Number"},"grain_density":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Density"},"grain_outer_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Outer Radius"},"grain_initial_inner_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Initial Inner Radius"},"grain_initial_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Initial Height"},"nozzle_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nozzle Radius"},"throat_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Throat Radius"},"nozzle_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nozzle Position"},"coordinate_system_orientation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coordinate System Orientation"},"motor_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Motor Kind"},"interpolate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Interpolate"},"Kn":{"anyOf":[{},{"type":"null"}],"title":"Kn"},"I_11":{"anyOf":[{},{"type":"null"}],"title":"I 11"},"I_12":{"anyOf":[{},{"type":"null"}],"title":"I 12"},"I_13":{"anyOf":[{},{"type":"null"}],"title":"I 13"},"I_22":{"anyOf":[{},{"type":"null"}],"title":"I 22"},"I_23":{"anyOf":[{},{"type":"null"}],"title":"I 23"},"I_33":{"anyOf":[{},{"type":"null"}],"title":"I 33"},"burn_area":{"anyOf":[{},{"type":"null"}],"title":"Burn Area"},"burn_rate":{"anyOf":[{},{"type":"null"}],"title":"Burn Rate"},"burn_time":{"anyOf":[{},{"type":"null"}],"title":"Burn Time"},"center_of_mass":{"anyOf":[{},{"type":"null"}],"title":"Center Of Mass"},"center_of_propellant_mass":{"anyOf":[{},{"type":"null"}],"title":"Center Of Propellant Mass"},"exhaust_velocity":{"anyOf":[{},{"type":"null"}],"title":"Exhaust Velocity"},"grain_height":{"anyOf":[{},{"type":"null"}],"title":"Grain Height"},"grain_volume":{"anyOf":[{},{"type":"null"}],"title":"Grain Volume"},"grain_inner_radius":{"anyOf":[{},{"type":"null"}],"title":"Grain Inner Radius"},"mass_flow_rate":{"anyOf":[{},{"type":"null"}],"title":"Mass Flow Rate"},"propellant_I_11":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 11"},"propellant_I_12":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 12"},"propellant_I_13":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 13"},"propellant_I_22":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 22"},"propellant_I_23":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 23"},"propellant_I_33":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 33"},"propellant_mass":{"anyOf":[{},{"type":"null"}],"title":"Propellant Mass"},"reshape_thrust_curve":{"anyOf":[{},{"type":"null"}],"title":"Reshape Thrust Curve"},"total_mass":{"anyOf":[{},{"type":"null"}],"title":"Total Mass"},"total_mass_flow_rate":{"anyOf":[{},{"type":"null"}],"title":"Total Mass Flow Rate"},"thrust":{"anyOf":[{},{"type":"null"}],"title":"Thrust"}},"additionalProperties":true,"type":"object","title":"MotorSimulation","description":"Motor simulation view that handles dynamically\nencoded RocketPy Motor attributes.\n\nUses the new rocketpy_encoder which may return\ndifferent attributes based on the actual RocketPy Motor object.\nThe model allows extra fields to accommodate any\nnew attributes that might be encoded."},"MotorTank":{"properties":{"geometry":{"oneOf":[{"$ref":"#/components/schemas/CustomTankGeometry"},{"$ref":"#/components/schemas/CylindricalTankGeometry"},{"$ref":"#/components/schemas/SphericalTankGeometry"}],"title":"Geometry","discriminator":{"propertyName":"geometry_kind","mapping":{"custom":"#/components/schemas/CustomTankGeometry","cylindrical":"#/components/schemas/CylindricalTankGeometry","spherical":"#/components/schemas/SphericalTankGeometry"}}},"gas":{"$ref":"#/components/schemas/TankFluids"},"liquid":{"$ref":"#/components/schemas/TankFluids"},"flux_time":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2,"title":"Flux Time"},"position":{"type":"number","title":"Position"},"discretize":{"type":"integer","title":"Discretize","default":100},"liquid_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liquid Height"},"liquid_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liquid Mass"},"gas_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gas Mass"},"gas_mass_flow_rate_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gas Mass Flow Rate In"},"gas_mass_flow_rate_out":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gas Mass Flow Rate Out"},"liquid_mass_flow_rate_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liquid Mass Flow Rate In"},"liquid_mass_flow_rate_out":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Liquid Mass Flow Rate Out"},"initial_liquid_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Liquid Mass"},"initial_gas_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Gas Mass"},"ullage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ullage"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"tank_kind":{"$ref":"#/components/schemas/TankKinds","default":"MASS_FLOW"}},"type":"object","required":["geometry","gas","liquid","flux_time","position"],"title":"MotorTank"},"MotorView":{"properties":{"thrust_source":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Thrust Source"},"burn_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Burn Time"},"nozzle_radius":{"type":"number","title":"Nozzle Radius"},"dry_mass":{"type":"number","title":"Dry Mass"},"dry_inertia":{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3,"title":"Dry Inertia","default":[0,0,0]},"center_of_dry_mass_position":{"type":"number","title":"Center Of Dry Mass Position"},"motor_kind":{"$ref":"#/components/schemas/MotorKinds"},"chamber_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Chamber Radius"},"chamber_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Chamber Height"},"chamber_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Chamber Position"},"propellant_initial_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Propellant Initial Mass"},"nozzle_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nozzle Position"},"tanks":{"anyOf":[{"items":{"$ref":"#/components/schemas/MotorTank"},"type":"array"},{"type":"null"}],"title":"Tanks"},"grain_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grain Number"},"grain_density":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Density"},"grain_outer_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Outer Radius"},"grain_initial_inner_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Initial Inner Radius"},"grain_initial_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Initial Height"},"grains_center_of_mass_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grains Center Of Mass Position"},"grain_separation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Separation"},"throat_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Throat Radius"},"interpolation_method":{"type":"string","enum":["linear","spline","akima","polynomial","shepard","rbf"],"title":"Interpolation Method","default":"linear"},"coordinate_system_orientation":{"type":"string","enum":["nozzle_to_combustion_chamber","combustion_chamber_to_nozzle"],"title":"Coordinate System Orientation","default":"nozzle_to_combustion_chamber"},"reshape_thrust_curve":{"anyOf":[{"type":"boolean"},{"items":{},"type":"array"}],"title":"Reshape Thrust Curve","default":false},"motor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Motor Id"}},"type":"object","required":["thrust_source","nozzle_radius","dry_mass","center_of_dry_mass_position","motor_kind"],"title":"MotorView"},"NoseCone":{"properties":{"name":{"type":"string","title":"Name"},"length":{"type":"number","title":"Length"},"kind":{"type":"string","title":"Kind"},"position":{"type":"number","title":"Position"},"base_radius":{"type":"number","title":"Base Radius"},"rocket_radius":{"type":"number","title":"Rocket Radius"}},"type":"object","required":["name","length","kind","position","base_radius","rocket_radius"],"title":"NoseCone"},"NoseConeGeometry":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"position":{"type":"number","title":"Position"},"x":{"items":{"type":"number"},"type":"array","title":"X"},"y":{"items":{"type":"number"},"type":"array","title":"Y"}},"type":"object","required":["position","x","y"],"title":"NoseConeGeometry"},"Parachute":{"properties":{"name":{"type":"string","title":"Name"},"cd_s":{"type":"number","minimum":0.0,"title":"Cd S","description":"Must be non-negative"},"sampling_rate":{"type":"number","exclusiveMinimum":0.0,"title":"Sampling Rate","description":"Must be positive"},"lag":{"type":"number","minimum":0.0,"title":"Lag","description":"Must be non-negative"},"trigger":{"anyOf":[{"type":"string"},{"type":"number"}],"title":"Trigger"},"noise":{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3,"title":"Noise"}},"type":"object","required":["name","cd_s","sampling_rate","lag","trigger","noise"],"title":"Parachute"},"RailButtons":{"properties":{"name":{"type":"string","title":"Name","default":"RailButtons"},"upper_button_position":{"type":"number","title":"Upper Button Position"},"lower_button_position":{"type":"number","title":"Lower Button Position"},"angular_position":{"type":"number","title":"Angular Position"}},"type":"object","required":["upper_button_position","lower_button_position","angular_position"],"title":"RailButtons"},"RailButtonsGeometry":{"properties":{"lower_x":{"type":"number","title":"Lower X"},"upper_x":{"type":"number","title":"Upper X"},"y":{"type":"number","title":"Y"},"angular_position_deg":{"type":"number","title":"Angular Position Deg"}},"type":"object","required":["lower_x","upper_x","y","angular_position_deg"],"title":"RailButtonsGeometry"},"RocketCreated":{"properties":{"message":{"type":"string","title":"Message","default":"Rocket successfully created"},"rocket_id":{"type":"string","title":"Rocket Id"}},"type":"object","required":["rocket_id"],"title":"RocketCreated"},"RocketDrawingGeometry":{"properties":{"message":{"type":"string","title":"Message","default":"Rocket drawing geometry retrieved"},"radius":{"type":"number","title":"Radius"},"csys":{"type":"integer","title":"Csys"},"coordinate_system_orientation":{"type":"string","title":"Coordinate System Orientation"},"nose_cones":{"items":{"$ref":"#/components/schemas/NoseConeGeometry"},"type":"array","title":"Nose Cones","default":[]},"tails":{"items":{"$ref":"#/components/schemas/TailGeometry"},"type":"array","title":"Tails","default":[]},"fins":{"items":{"$ref":"#/components/schemas/FinsGeometry"},"type":"array","title":"Fins","default":[]},"tubes":{"items":{"$ref":"#/components/schemas/TubeGeometry"},"type":"array","title":"Tubes","default":[]},"motor":{"anyOf":[{"$ref":"#/components/schemas/MotorDrawingGeometry"},{"type":"null"}]},"rail_buttons":{"anyOf":[{"$ref":"#/components/schemas/RailButtonsGeometry"},{"type":"null"}]},"center_of_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Center Of Mass"},"cp_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cp Position"},"sensors":{"items":{"$ref":"#/components/schemas/SensorGeometry"},"type":"array","title":"Sensors","default":[]},"bounds":{"$ref":"#/components/schemas/DrawingBounds"}},"type":"object","required":["radius","csys","coordinate_system_orientation","bounds"],"title":"RocketDrawingGeometry","description":"Geometry payload that mirrors what ``rocketpy.Rocket.draw()`` feeds to\nmatplotlib, but as raw coordinate arrays instead of a rendered figure.\nAll x/y values are already in the rocket drawing frame (the csys-applied\naxial direction matches what ``_RocketPlots`` would plot)."},"RocketModel":{"properties":{"motor":{"$ref":"#/components/schemas/MotorModel"},"radius":{"type":"number","title":"Radius"},"mass":{"type":"number","title":"Mass"},"motor_position":{"type":"number","title":"Motor Position"},"center_of_mass_without_motor":{"type":"number","title":"Center Of Mass Without Motor"},"inertia":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3},{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":6,"minItems":6}],"title":"Inertia","default":[0,0,0]},"power_off_drag":{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Power Off Drag","default":[[0,0]]},"power_on_drag":{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Power On Drag","default":[[0,0]]},"coordinate_system_orientation":{"type":"string","enum":["tail_to_nose","nose_to_tail"],"title":"Coordinate System Orientation","default":"tail_to_nose"},"nose":{"$ref":"#/components/schemas/NoseCone"},"fins":{"items":{"$ref":"#/components/schemas/Fins"},"type":"array","title":"Fins"},"parachutes":{"anyOf":[{"items":{"$ref":"#/components/schemas/Parachute"},"type":"array"},{"type":"null"}],"title":"Parachutes"},"rail_buttons":{"anyOf":[{"$ref":"#/components/schemas/RailButtons"},{"type":"null"}]},"tail":{"anyOf":[{"$ref":"#/components/schemas/Tail"},{"type":"null"}]}},"type":"object","required":["motor","radius","mass","motor_position","center_of_mass_without_motor","nose","fins"],"title":"RocketModel"},"RocketPartialModel":{"properties":{"radius":{"type":"number","title":"Radius"},"mass":{"type":"number","title":"Mass"},"motor_position":{"type":"number","title":"Motor Position"},"center_of_mass_without_motor":{"type":"number","title":"Center Of Mass Without Motor"},"inertia":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3},{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":6,"minItems":6}],"title":"Inertia","default":[0,0,0]},"power_off_drag":{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Power Off Drag"},"power_on_drag":{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Power On Drag"},"coordinate_system_orientation":{"type":"string","enum":["tail_to_nose","nose_to_tail"],"title":"Coordinate System Orientation","default":"tail_to_nose"},"nose":{"$ref":"#/components/schemas/NoseCone"},"fins":{"items":{"$ref":"#/components/schemas/Fins"},"type":"array","title":"Fins"},"parachutes":{"anyOf":[{"items":{"$ref":"#/components/schemas/Parachute"},"type":"array"},{"type":"null"}],"title":"Parachutes"},"rail_buttons":{"anyOf":[{"$ref":"#/components/schemas/RailButtons"},{"type":"null"}]},"tail":{"anyOf":[{"$ref":"#/components/schemas/Tail"},{"type":"null"}]}},"type":"object","required":["radius","mass","motor_position","center_of_mass_without_motor","nose","fins"],"title":"RocketPartialModel","description":"Rocket attributes required when a motor is supplied by reference."},"RocketRetrieved":{"properties":{"message":{"type":"string","title":"Message","default":"Rocket successfully retrieved"},"rocket":{"$ref":"#/components/schemas/RocketView"}},"type":"object","required":["rocket"],"title":"RocketRetrieved"},"RocketSimulation":{"properties":{"message":{"type":"string","title":"Message","default":"Rocket successfully simulated"},"burn_start_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Burn Start Time"},"burn_out_time":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Burn Out Time"},"dry_mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dry Mass"},"dry_inertia":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Dry Inertia"},"center_of_dry_mass_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Center Of Dry Mass Position"},"grains_center_of_mass_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grains Center Of Mass Position"},"grain_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Grain Number"},"grain_density":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Density"},"grain_outer_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Outer Radius"},"grain_initial_inner_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Initial Inner Radius"},"grain_initial_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grain Initial Height"},"nozzle_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nozzle Radius"},"throat_radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Throat Radius"},"nozzle_position":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nozzle Position"},"coordinate_system_orientation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coordinate System Orientation"},"motor_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Motor Kind"},"interpolate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Interpolate"},"Kn":{"anyOf":[{},{"type":"null"}],"title":"Kn"},"I_11":{"anyOf":[{},{"type":"null"}],"title":"I 11"},"I_12":{"anyOf":[{},{"type":"null"}],"title":"I 12"},"I_13":{"anyOf":[{},{"type":"null"}],"title":"I 13"},"I_22":{"anyOf":[{},{"type":"null"}],"title":"I 22"},"I_23":{"anyOf":[{},{"type":"null"}],"title":"I 23"},"I_33":{"anyOf":[{},{"type":"null"}],"title":"I 33"},"burn_area":{"anyOf":[{},{"type":"null"}],"title":"Burn Area"},"burn_rate":{"anyOf":[{},{"type":"null"}],"title":"Burn Rate"},"burn_time":{"anyOf":[{},{"type":"null"}],"title":"Burn Time"},"center_of_mass":{"anyOf":[{},{"type":"null"}],"title":"Center Of Mass"},"center_of_propellant_mass":{"anyOf":[{},{"type":"null"}],"title":"Center Of Propellant Mass"},"exhaust_velocity":{"anyOf":[{},{"type":"null"}],"title":"Exhaust Velocity"},"grain_height":{"anyOf":[{},{"type":"null"}],"title":"Grain Height"},"grain_volume":{"anyOf":[{},{"type":"null"}],"title":"Grain Volume"},"grain_inner_radius":{"anyOf":[{},{"type":"null"}],"title":"Grain Inner Radius"},"mass_flow_rate":{"anyOf":[{},{"type":"null"}],"title":"Mass Flow Rate"},"propellant_I_11":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 11"},"propellant_I_12":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 12"},"propellant_I_13":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 13"},"propellant_I_22":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 22"},"propellant_I_23":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 23"},"propellant_I_33":{"anyOf":[{},{"type":"null"}],"title":"Propellant I 33"},"propellant_mass":{"anyOf":[{},{"type":"null"}],"title":"Propellant Mass"},"reshape_thrust_curve":{"anyOf":[{},{"type":"null"}],"title":"Reshape Thrust Curve"},"total_mass":{"anyOf":[{},{"type":"null"}],"title":"Total Mass"},"total_mass_flow_rate":{"anyOf":[{},{"type":"null"}],"title":"Total Mass Flow Rate"},"thrust":{"anyOf":[{},{"type":"null"}],"title":"Thrust"},"radius":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Radius"},"mass":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mass"},"inertia":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3},{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":6,"minItems":6},{"type":"null"}],"title":"Inertia"},"power_off_drag":{"anyOf":[{},{"type":"null"}],"title":"Power Off Drag"},"power_on_drag":{"anyOf":[{},{"type":"null"}],"title":"Power On Drag"},"center_of_mass_without_motor":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Center Of Mass Without Motor"},"parachutes":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Parachutes"},"motor":{"anyOf":[{"$ref":"#/components/schemas/MotorSimulation"},{"type":"null"}]},"I_11_without_motor":{"anyOf":[{},{"type":"null"}],"title":"I 11 Without Motor"},"I_12_without_motor":{"anyOf":[{},{"type":"null"}],"title":"I 12 Without Motor"},"I_13_without_motor":{"anyOf":[{},{"type":"null"}],"title":"I 13 Without Motor"},"I_22_without_motor":{"anyOf":[{},{"type":"null"}],"title":"I 22 Without Motor"},"I_23_without_motor":{"anyOf":[{},{"type":"null"}],"title":"I 23 Without Motor"},"I_33_without_motor":{"anyOf":[{},{"type":"null"}],"title":"I 33 Without Motor"},"check_parachute_trigger":{"anyOf":[{},{"type":"null"}],"title":"Check Parachute Trigger"},"com_to_cdm_function":{"anyOf":[{},{"type":"null"}],"title":"Com To Cdm Function"},"cp_position":{"anyOf":[{},{"type":"null"}],"title":"Cp Position"},"motor_center_of_mass_position":{"anyOf":[{},{"type":"null"}],"title":"Motor Center Of Mass Position"},"nozzle_gyration_tensor":{"anyOf":[{},{"type":"null"}],"title":"Nozzle Gyration Tensor"},"reduced_mass":{"anyOf":[{},{"type":"null"}],"title":"Reduced Mass"},"stability_margin":{"anyOf":[{},{"type":"null"}],"title":"Stability Margin"},"static_margin":{"anyOf":[{},{"type":"null"}],"title":"Static Margin"},"thrust_to_weight":{"anyOf":[{},{"type":"null"}],"title":"Thrust To Weight"},"total_lift_coeff_der":{"anyOf":[{},{"type":"null"}],"title":"Total Lift Coeff Der"}},"additionalProperties":true,"type":"object","title":"RocketSimulation","description":"Rocket simulation view that handles dynamically\nencoded RocketPy Rocket attributes.\n\nInherits from MotorSimulation and adds rocket-specific attributes.\nUses the new rocketpy_encoder which may return different attributes\nbased on the actual RocketPy Rocket object.\n\nThe model allows extra fields to accommodate any new attributes\nthat might be encoded."},"RocketView":{"properties":{"motor":{"$ref":"#/components/schemas/MotorView"},"radius":{"type":"number","title":"Radius"},"mass":{"type":"number","title":"Mass"},"motor_position":{"type":"number","title":"Motor Position"},"center_of_mass_without_motor":{"type":"number","title":"Center Of Mass Without Motor"},"inertia":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3},{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":6,"minItems":6}],"title":"Inertia","default":[0,0,0]},"power_off_drag":{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Power Off Drag","default":[[0,0]]},"power_on_drag":{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Power On Drag","default":[[0,0]]},"coordinate_system_orientation":{"type":"string","enum":["tail_to_nose","nose_to_tail"],"title":"Coordinate System Orientation","default":"tail_to_nose"},"nose":{"$ref":"#/components/schemas/NoseCone"},"fins":{"items":{"$ref":"#/components/schemas/Fins"},"type":"array","title":"Fins"},"parachutes":{"anyOf":[{"items":{"$ref":"#/components/schemas/Parachute"},"type":"array"},{"type":"null"}],"title":"Parachutes"},"rail_buttons":{"anyOf":[{"$ref":"#/components/schemas/RailButtons"},{"type":"null"}]},"tail":{"anyOf":[{"$ref":"#/components/schemas/Tail"},{"type":"null"}]},"rocket_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rocket Id"}},"type":"object","required":["motor","radius","mass","motor_position","center_of_mass_without_motor","nose","fins"],"title":"RocketView"},"RocketWithMotorReferenceRequest":{"properties":{"motor_id":{"type":"string","title":"Motor Id"},"rocket":{"$ref":"#/components/schemas/RocketPartialModel"}},"type":"object","required":["motor_id","rocket"],"title":"RocketWithMotorReferenceRequest","description":"Payload for creating or updating rockets via motor reference."},"SensorGeometry":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"position":{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3,"title":"Position"},"normal":{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3,"title":"Normal"}},"type":"object","required":["position","normal"],"title":"SensorGeometry"},"SphericalTankGeometry":{"properties":{"geometry_kind":{"type":"string","const":"spherical","title":"Geometry Kind","default":"spherical"},"radius":{"type":"number","title":"Radius"}},"type":"object","required":["radius"],"title":"SphericalTankGeometry"},"Tail":{"properties":{"name":{"type":"string","title":"Name"},"top_radius":{"type":"number","title":"Top Radius"},"bottom_radius":{"type":"number","title":"Bottom Radius"},"length":{"type":"number","title":"Length"},"position":{"type":"number","title":"Position"},"radius":{"type":"number","title":"Radius"}},"type":"object","required":["name","top_radius","bottom_radius","length","position","radius"],"title":"Tail"},"TailGeometry":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"position":{"type":"number","title":"Position"},"x":{"items":{"type":"number"},"type":"array","title":"X"},"y":{"items":{"type":"number"},"type":"array","title":"Y"}},"type":"object","required":["position","x","y"],"title":"TailGeometry"},"TankFluids":{"properties":{"name":{"type":"string","title":"Name"},"density":{"anyOf":[{"type":"number"},{"items":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"array"}],"title":"Density"}},"type":"object","required":["name","density"],"title":"TankFluids"},"TankKinds":{"type":"string","enum":["LEVEL","MASS","MASS_FLOW","ULLAGE"],"title":"TankKinds"},"TubeGeometry":{"properties":{"x_start":{"type":"number","title":"X Start"},"x_end":{"type":"number","title":"X End"},"radius":{"type":"number","title":"Radius"}},"type":"object","required":["x_start","x_end","radius"],"title":"TubeGeometry"}}}}