Skip to content

Repository files navigation

Infinity-API

Ask DeepWiki

Capabilities

  • Performs rocket simulations and returns simulation data
  • Stores simulation input data in mongo-db

Setup

Windows Users

⚠️Known Issue: uvloop does not support Windows and will fail during pip installation with:

RuntimeError: uvloop does not support Windows at the moment

Recommended Solution: Use Docker (easiest approach)

Development

  • make format
  • make test
  • make clean
  • make build

Starting the server

  • Setup MONGODB_CONNECTION_STRING:
$ touch .env && echo MONGODB_CONNECTION_STRING="$ConnectionString" > .env

Docker

  • run docker compose: docker-compose up --build -d

Standalone

  • Dev: python3 -m uvicorn src:app --reload --port 3000
  • Prod: gunicorn -k uvicorn.workers.UvicornWorker src:app -b 0.0.0.0:3000

MCP Server

  • The MCP bridge is mounted directly on the FastAPI app and is available at /mcp alongside the REST API.
  • No extra process is required: uvicorn src:app serves both the REST routes and the MCP transport.

Project structure

├── README.md # this file
├── requirements.txt
│ ├── lib
│ │ │ ├── api.py # main app
│ │── secrets.py
│ │ │ ├── controllers
│ │ ├── interface.py
│ │ ├── environment.py
│ │ ├── flight.py
│ │ ├── motor.py
│ │ └── rocket.py
│ │ │ ├── services │ │ ├── environment.py
│ │ ├── flight.py
│ │ ├── motor.py
│ │ └── rocket.py
│ │ │ ├── routes │ │ ├── environment.py
│ │ ├── flight.py
│ │ ├── motor.py
│ │ └── rocket.py
│ │ │ ├── repositories
│ │ ├── interface.py
│ │ ├── environment.py
│ │ ├── flight.py
│ │ ├── motor.py
│ │ └── rocket.py
│ │ │ ├── models
│ │ ├── interface.py
│ │ ├── environment.py
│ │ ├── flight.py
│ │ ├── motor.py
│ │ ├── rocket.py
│ │ │ │ │ └── sub
│ │ ├── aerosurfaces.py
│ │ └── tanks.py
│ │ │ └── views
│ ├── interface.py
│ ├── environment.py
│ ├── flight.py
│ ├── motor.py
│ └── rocket.py
│ └── tests

DOCS

API Flowchart

General API workflow. Current available models are: Environment, Flight, Rocket and Motor.

CRUD

sequenceDiagram
participant User
participant API
participant MongoDB
User ->> API: POST /model API ->> MongoDB: Persist API Model as a document
MongoDB -->> API: Model ID
API -->> User: 201 ModelCreated View
User ->> API: GET /model/:id
API ->> MongoDB: Read API Model document
MongoDB -->> API: API Model document
API -->> User: 200 API ModelView
User ->> API: PUT /model/:id
API ->> MongoDB: Update API Model document
API -->> User: 204
User ->> API: DELETE /model/:id
API ->> MongoDB: Delete API Model document
MongoDB -->> API: Deletion Confirmation
API -->> User: 204
Loading

Simulating and extracting RocketPY native classes

sequenceDiagram
participant User
participant API
participant MongoDB
participant RocketPy lib
User ->> API: GET model/:id/simulate/
API -->> MongoDB: Retrieve API Model document
MongoDB -->> API: API Model document API ->> RocketPy: Initialize RocketPy native class and simulate
RocketPy lib -->> API: Simulation Results
API -->> User: Simulation Results
User ->> API: GET /model/:id/rocketpy
API -->> MongoDB: Retrieve API Model document
MongoDB -->> API: API Model document API ->> RocketPy: Initialize RocketPy native class
RocketPy lib -->> API: RocketPy native class
API -->> User: RocketPy native class as .dill binary (amd64)
Loading

About

Infinity-API is a RESTful Open API and MCP server for RocketPy

Topics

Resources

Code of conduct

Contributing

Stars

10 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages