thrustcurve-db

ThrustCurve.org model rocket motor and thrust curve data as a single JSON file

Usage no npm install needed!

<script type="module">
  import thrustcurveDb from 'https://cdn.skypack.dev/thrustcurve-db';
</script>

README

thrustcurve-db

ThrustCurve.org model rocket motor data as a static data structure (plus misc. utility functions).

This module is a rebundling of the model rocket motor data found at John Coker's thrustcurve.org website ("TC"). It is available here in JSON format, or as an ESM or CommonJS module.

The format of this data is identical to that of the TC /api/v1/search response, with one additional field (where available):

  • samples: Array[[number, number]] of thrustsamples. This is the samples data from the TC "/api/vi/download" endpoint normalized to always have [0, 0] as the first data point. in cases where more than one sample file is available for a motor, the first "cert"(ified) data file is used. Otherwise it will be whichever data file the API returns first.

See also, the included TypeScript definition`.

Installation

npm i thrustcurve-db

... or with yarn:

yarn add thrustcurve-db

Usage

ES Modules

import MOTORS from 'thrustcurve-db';

... or for CommonJS:

const MOTORS = require('thrustcurve-db');

... or for CommonJS w/ import() (NodeJS):

Note: At present this requires you run node with the --experimental-json-modules flag

const MOTORS = await import('thrustcurve-db');

... or to fetch from jsDelvr CDN:

const MOTORS = await fetch('https://cdn.jsdelivr.net/npm/thrustcurve-db@latest/thrustcurve-db.json')
  .then(res => res.json());

Example

After importing (above)...

// Find all J motors currently in production
MOTORS.filter(m => m.availability === 'regular' && m.impulseClass === 'J');

Issues & Contributions

The data provided here is sourced from thrustcurve.org. Omissions and errors in rocket data should be directed there. Any systematic problems or suggestions for how the data here is presented may be reported here.