@johnmorrisdotca/uchusen-rockets 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/LICENSES/ODbL-1.0.txt +540 -0
- package/NOTICE.md +56 -6
- package/README.md +49 -14
- package/dist/assets/apollo-soyuz-apollo-soyuz-apart.painted.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-apart.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-apart.thick.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-csm.glb +0 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-csm.painted.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-csm.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-csm.thick.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-docking-module.glb +0 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-docking-module.painted.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-docking-module.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-docking-module.thick.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-soyuz.glb +0 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-soyuz.painted.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-soyuz.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz-soyuz.thick.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz.glb +0 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz.painted.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz.svg +1 -0
- package/dist/assets/apollo-soyuz-apollo-soyuz.thick.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-apart.painted.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-apart.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-apart.thick.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-capsule.glb +0 -0
- package/dist/assets/dragon-cargo-dragon-2-capsule.painted.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-capsule.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-capsule.thick.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-trunk.glb +0 -0
- package/dist/assets/dragon-cargo-dragon-2-trunk.painted.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-trunk.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2-trunk.thick.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2.glb +0 -0
- package/dist/assets/dragon-cargo-dragon-2.painted.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2.svg +1 -0
- package/dist/assets/dragon-cargo-dragon-2.thick.svg +1 -0
- package/dist/assets/dragon-crew-dragon-inside.glb +0 -0
- package/dist/assets/dragon-crew-dragon-inside.painted.svg +1 -0
- package/dist/assets/dragon-crew-dragon-inside.svg +1 -0
- package/dist/assets/dragon-crew-dragon-inside.thick.svg +1 -0
- package/dist/assets/dragon-dragon-1-apart.painted.svg +1 -1
- package/dist/assets/dragon-dragon-1-apart.svg +1 -1
- package/dist/assets/dragon-dragon-1-apart.thick.svg +1 -1
- package/dist/assets/dragon-dragon-1-capsule.painted.svg +1 -1
- package/dist/assets/dragon-dragon-1-capsule.svg +1 -1
- package/dist/assets/dragon-dragon-1-capsule.thick.svg +1 -1
- package/dist/assets/dragon-dragon-1-trunk.painted.svg +1 -1
- package/dist/assets/dragon-dragon-1-trunk.svg +1 -1
- package/dist/assets/dragon-dragon-1-trunk.thick.svg +1 -1
- package/dist/assets/dragon-dragon-1.painted.svg +1 -1
- package/dist/assets/dragon-dragon-1.svg +1 -1
- package/dist/assets/dragon-dragon-1.thick.svg +1 -1
- package/dist/assets/dragon-dragon-2-apart.painted.svg +1 -1
- package/dist/assets/dragon-dragon-2-apart.svg +1 -1
- package/dist/assets/dragon-dragon-2-apart.thick.svg +1 -1
- package/dist/assets/dragon-dragon-2-capsule.painted.svg +1 -1
- package/dist/assets/dragon-dragon-2-capsule.svg +1 -1
- package/dist/assets/dragon-dragon-2-capsule.thick.svg +1 -1
- package/dist/assets/dragon-dragon-2-trunk.painted.svg +1 -1
- package/dist/assets/dragon-dragon-2-trunk.svg +1 -1
- package/dist/assets/dragon-dragon-2-trunk.thick.svg +1 -1
- package/dist/assets/dragon-dragon-2.painted.svg +1 -1
- package/dist/assets/dragon-dragon-2.svg +1 -1
- package/dist/assets/dragon-dragon-2.thick.svg +1 -1
- package/dist/assets/droneship-asog-apart.painted.svg +1 -0
- package/dist/assets/droneship-asog-apart.svg +1 -0
- package/dist/assets/droneship-asog-apart.thick.svg +1 -0
- package/dist/assets/droneship-asog-deck.glb +0 -0
- package/dist/assets/droneship-asog-deck.painted.svg +1 -0
- package/dist/assets/droneship-asog-deck.svg +1 -0
- package/dist/assets/droneship-asog-deck.thick.svg +1 -0
- package/dist/assets/droneship-asog-landed.glb +0 -0
- package/dist/assets/droneship-asog-landed.painted.svg +1 -0
- package/dist/assets/droneship-asog-landed.svg +1 -0
- package/dist/assets/droneship-asog-landed.thick.svg +1 -0
- package/dist/assets/droneship-asog.glb +0 -0
- package/dist/assets/droneship-asog.painted.svg +1 -0
- package/dist/assets/droneship-asog.svg +1 -0
- package/dist/assets/droneship-asog.thick.svg +1 -0
- package/dist/assets/droneship-jrti-apart.painted.svg +1 -0
- package/dist/assets/droneship-jrti-apart.svg +1 -0
- package/dist/assets/droneship-jrti-apart.thick.svg +1 -0
- package/dist/assets/droneship-jrti-deck.glb +0 -0
- package/dist/assets/droneship-jrti-deck.painted.svg +1 -0
- package/dist/assets/droneship-jrti-deck.svg +1 -0
- package/dist/assets/droneship-jrti-deck.thick.svg +1 -0
- package/dist/assets/droneship-jrti-landed.glb +0 -0
- package/dist/assets/droneship-jrti-landed.painted.svg +1 -0
- package/dist/assets/droneship-jrti-landed.svg +1 -0
- package/dist/assets/droneship-jrti-landed.thick.svg +1 -0
- package/dist/assets/droneship-jrti.glb +0 -0
- package/dist/assets/droneship-jrti.painted.svg +1 -0
- package/dist/assets/droneship-jrti.svg +1 -0
- package/dist/assets/droneship-jrti.thick.svg +1 -0
- package/dist/assets/droneship-ocisly-apart.painted.svg +1 -0
- package/dist/assets/droneship-ocisly-apart.svg +1 -0
- package/dist/assets/droneship-ocisly-apart.thick.svg +1 -0
- package/dist/assets/droneship-ocisly-deck.glb +0 -0
- package/dist/assets/droneship-ocisly-deck.painted.svg +1 -0
- package/dist/assets/droneship-ocisly-deck.svg +1 -0
- package/dist/assets/droneship-ocisly-deck.thick.svg +1 -0
- package/dist/assets/droneship-ocisly-landed.glb +0 -0
- package/dist/assets/droneship-ocisly-landed.painted.svg +1 -0
- package/dist/assets/droneship-ocisly-landed.svg +1 -0
- package/dist/assets/droneship-ocisly-landed.thick.svg +1 -0
- package/dist/assets/droneship-ocisly.glb +0 -0
- package/dist/assets/droneship-ocisly.painted.svg +1 -0
- package/dist/assets/droneship-ocisly.svg +1 -0
- package/dist/assets/droneship-ocisly.thick.svg +1 -0
- package/dist/assets/electron-electron-adapter.glb +0 -0
- package/dist/assets/electron-electron-adapter.painted.svg +1 -0
- package/dist/assets/electron-electron-adapter.svg +1 -0
- package/dist/assets/electron-electron-adapter.thick.svg +1 -0
- package/dist/assets/electron-electron-apart.painted.svg +1 -0
- package/dist/assets/electron-electron-apart.svg +1 -0
- package/dist/assets/electron-electron-apart.thick.svg +1 -0
- package/dist/assets/electron-electron-fairing.glb +0 -0
- package/dist/assets/electron-electron-fairing.painted.svg +1 -0
- package/dist/assets/electron-electron-fairing.svg +1 -0
- package/dist/assets/electron-electron-fairing.thick.svg +1 -0
- package/dist/assets/electron-electron-first-stage.glb +0 -0
- package/dist/assets/electron-electron-first-stage.painted.svg +1 -0
- package/dist/assets/electron-electron-first-stage.svg +1 -0
- package/dist/assets/electron-electron-first-stage.thick.svg +1 -0
- package/dist/assets/electron-electron-second-stage.glb +0 -0
- package/dist/assets/electron-electron-second-stage.painted.svg +1 -0
- package/dist/assets/electron-electron-second-stage.svg +1 -0
- package/dist/assets/electron-electron-second-stage.thick.svg +1 -0
- package/dist/assets/electron-electron.glb +0 -0
- package/dist/assets/electron-electron.painted.svg +1 -0
- package/dist/assets/electron-electron.svg +1 -0
- package/dist/assets/electron-electron.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-apart.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-apart.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-apart.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-fairing.glb +0 -0
- package/dist/assets/falcon-1-falcon-1-fairing.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-fairing.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-fairing.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-first-stage.glb +0 -0
- package/dist/assets/falcon-1-falcon-1-first-stage.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-first-stage.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-first-stage.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-second-stage.glb +0 -0
- package/dist/assets/falcon-1-falcon-1-second-stage.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-second-stage.svg +1 -0
- package/dist/assets/falcon-1-falcon-1-second-stage.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1.glb +0 -0
- package/dist/assets/falcon-1-falcon-1.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1.svg +1 -0
- package/dist/assets/falcon-1-falcon-1.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-apart.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-apart.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-apart.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-fairing.glb +0 -0
- package/dist/assets/falcon-1-falcon-1e-fairing.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-fairing.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-fairing.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-first-stage.glb +0 -0
- package/dist/assets/falcon-1-falcon-1e-first-stage.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-first-stage.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-first-stage.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-second-stage.glb +0 -0
- package/dist/assets/falcon-1-falcon-1e-second-stage.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-second-stage.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e-second-stage.thick.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e.glb +0 -0
- package/dist/assets/falcon-1-falcon-1e.painted.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e.svg +1 -0
- package/dist/assets/falcon-1-falcon-1e.thick.svg +1 -0
- package/dist/assets/falcon-9-block-5-apart.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-apart.svg +1 -1
- package/dist/assets/falcon-9-block-5-apart.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-apart.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-apart.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-apart.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-capsule.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-capsule.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-capsule.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-first-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-first-stage.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-first-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-second-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-second-stage.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-second-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-trunk.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-trunk.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2-trunk.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2.svg +1 -1
- package/dist/assets/falcon-9-block-5-dragon-2.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-fairing.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-fairing.svg +1 -1
- package/dist/assets/falcon-9-block-5-fairing.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-first-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-first-stage.svg +1 -1
- package/dist/assets/falcon-9-block-5-first-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5-second-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5-second-stage.svg +1 -1
- package/dist/assets/falcon-9-block-5-second-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-block-5.painted.svg +1 -1
- package/dist/assets/falcon-9-block-5.svg +1 -1
- package/dist/assets/falcon-9-block-5.thick.svg +1 -1
- package/dist/assets/falcon-9-ft-apart.painted.svg +1 -1
- package/dist/assets/falcon-9-ft-apart.svg +1 -1
- package/dist/assets/falcon-9-ft-apart.thick.svg +1 -1
- package/dist/assets/falcon-9-ft-fairing.painted.svg +1 -1
- package/dist/assets/falcon-9-ft-fairing.svg +1 -1
- package/dist/assets/falcon-9-ft-fairing.thick.svg +1 -1
- package/dist/assets/falcon-9-ft-first-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-ft-first-stage.svg +1 -1
- package/dist/assets/falcon-9-ft-first-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-ft-second-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-ft-second-stage.svg +1 -1
- package/dist/assets/falcon-9-ft-second-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-ft.painted.svg +1 -1
- package/dist/assets/falcon-9-ft.svg +1 -1
- package/dist/assets/falcon-9-ft.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.0-apart.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.0-apart.svg +1 -1
- package/dist/assets/falcon-9-v1.0-apart.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.0-fairing.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.0-fairing.svg +1 -1
- package/dist/assets/falcon-9-v1.0-fairing.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.0-first-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.0-first-stage.svg +1 -1
- package/dist/assets/falcon-9-v1.0-first-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.0-second-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.0-second-stage.svg +1 -1
- package/dist/assets/falcon-9-v1.0-second-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.0.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.0.svg +1 -1
- package/dist/assets/falcon-9-v1.0.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.1-apart.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.1-apart.svg +1 -1
- package/dist/assets/falcon-9-v1.1-apart.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.1-fairing.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.1-fairing.svg +1 -1
- package/dist/assets/falcon-9-v1.1-fairing.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.1-first-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.1-first-stage.svg +1 -1
- package/dist/assets/falcon-9-v1.1-first-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.1-second-stage.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.1-second-stage.svg +1 -1
- package/dist/assets/falcon-9-v1.1-second-stage.thick.svg +1 -1
- package/dist/assets/falcon-9-v1.1.painted.svg +1 -1
- package/dist/assets/falcon-9-v1.1.svg +1 -1
- package/dist/assets/falcon-9-v1.1.thick.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-apart.painted.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-apart.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-apart.thick.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-centre.painted.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-centre.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-centre.thick.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-side-left.painted.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-side-left.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-side-left.thick.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-side-right.painted.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-side-right.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy-side-right.thick.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy.painted.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy.svg +1 -1
- package/dist/assets/falcon-heavy-falcon-heavy.thick.svg +1 -1
- package/dist/assets/gemini-gemini-adapter.glb +0 -0
- package/dist/assets/gemini-gemini-adapter.painted.svg +1 -0
- package/dist/assets/gemini-gemini-adapter.svg +1 -0
- package/dist/assets/gemini-gemini-adapter.thick.svg +1 -0
- package/dist/assets/gemini-gemini-apart.painted.svg +1 -0
- package/dist/assets/gemini-gemini-apart.svg +1 -0
- package/dist/assets/gemini-gemini-apart.thick.svg +1 -0
- package/dist/assets/gemini-gemini-capsule.glb +0 -0
- package/dist/assets/gemini-gemini-capsule.painted.svg +1 -0
- package/dist/assets/gemini-gemini-capsule.svg +1 -0
- package/dist/assets/gemini-gemini-capsule.thick.svg +1 -0
- package/dist/assets/gemini-gemini.glb +0 -0
- package/dist/assets/gemini-gemini.painted.svg +1 -0
- package/dist/assets/gemini-gemini.svg +1 -0
- package/dist/assets/gemini-gemini.thick.svg +1 -0
- package/dist/assets/grasshopper-grasshopper.painted.svg +1 -1
- package/dist/assets/grasshopper-grasshopper.svg +1 -1
- package/dist/assets/grasshopper-grasshopper.thick.svg +1 -1
- package/dist/assets/hubble-hubble.glb +0 -0
- package/dist/assets/hubble-hubble.painted.svg +1 -0
- package/dist/assets/hubble-hubble.svg +1 -0
- package/dist/assets/hubble-hubble.thick.svg +1 -0
- package/dist/assets/iss-iss.glb +0 -0
- package/dist/assets/iss-iss.painted.svg +1 -0
- package/dist/assets/iss-iss.svg +1 -0
- package/dist/assets/iss-iss.thick.svg +1 -0
- package/dist/assets/jupiter-c-jupiter-c.glb +0 -0
- package/dist/assets/jupiter-c-jupiter-c.painted.svg +1 -0
- package/dist/assets/jupiter-c-jupiter-c.svg +1 -0
- package/dist/assets/jupiter-c-jupiter-c.thick.svg +1 -0
- package/dist/assets/landing-zone-lz-1-apart.painted.svg +1 -0
- package/dist/assets/landing-zone-lz-1-apart.svg +1 -0
- package/dist/assets/landing-zone-lz-1-apart.thick.svg +1 -0
- package/dist/assets/landing-zone-lz-1-landed.glb +0 -0
- package/dist/assets/landing-zone-lz-1-landed.painted.svg +1 -0
- package/dist/assets/landing-zone-lz-1-landed.svg +1 -0
- package/dist/assets/landing-zone-lz-1-landed.thick.svg +1 -0
- package/dist/assets/landing-zone-lz-1-pad.glb +0 -0
- package/dist/assets/landing-zone-lz-1-pad.painted.svg +1 -0
- package/dist/assets/landing-zone-lz-1-pad.svg +1 -0
- package/dist/assets/landing-zone-lz-1-pad.thick.svg +1 -0
- package/dist/assets/landing-zone-lz-1.glb +0 -0
- package/dist/assets/landing-zone-lz-1.painted.svg +1 -0
- package/dist/assets/landing-zone-lz-1.svg +1 -0
- package/dist/assets/landing-zone-lz-1.thick.svg +1 -0
- package/dist/assets/landing-zone-lz-4-apart.painted.svg +1 -0
- package/dist/assets/landing-zone-lz-4-apart.svg +1 -0
- package/dist/assets/landing-zone-lz-4-apart.thick.svg +1 -0
- package/dist/assets/landing-zone-lz-4-landed.glb +0 -0
- package/dist/assets/landing-zone-lz-4-landed.painted.svg +1 -0
- package/dist/assets/landing-zone-lz-4-landed.svg +1 -0
- package/dist/assets/landing-zone-lz-4-landed.thick.svg +1 -0
- package/dist/assets/landing-zone-lz-4-pad.glb +0 -0
- package/dist/assets/landing-zone-lz-4-pad.painted.svg +1 -0
- package/dist/assets/landing-zone-lz-4-pad.svg +1 -0
- package/dist/assets/landing-zone-lz-4-pad.thick.svg +1 -0
- package/dist/assets/landing-zone-lz-4.glb +0 -0
- package/dist/assets/landing-zone-lz-4.painted.svg +1 -0
- package/dist/assets/landing-zone-lz-4.svg +1 -0
- package/dist/assets/landing-zone-lz-4.thick.svg +1 -0
- package/dist/assets/launch-tower-catch-apart.painted.svg +1 -0
- package/dist/assets/launch-tower-catch-apart.svg +1 -0
- package/dist/assets/launch-tower-catch-apart.thick.svg +1 -0
- package/dist/assets/launch-tower-catch-arms.glb +0 -0
- package/dist/assets/launch-tower-catch-arms.painted.svg +1 -0
- package/dist/assets/launch-tower-catch-arms.svg +1 -0
- package/dist/assets/launch-tower-catch-arms.thick.svg +1 -0
- package/dist/assets/launch-tower-catch-booster.glb +0 -0
- package/dist/assets/launch-tower-catch-booster.painted.svg +1 -0
- package/dist/assets/launch-tower-catch-booster.svg +1 -0
- package/dist/assets/launch-tower-catch-booster.thick.svg +1 -0
- package/dist/assets/launch-tower-catch-mount.glb +0 -0
- package/dist/assets/launch-tower-catch-mount.painted.svg +1 -0
- package/dist/assets/launch-tower-catch-mount.svg +1 -0
- package/dist/assets/launch-tower-catch-mount.thick.svg +1 -0
- package/dist/assets/launch-tower-catch-tower.glb +0 -0
- package/dist/assets/launch-tower-catch-tower.painted.svg +1 -0
- package/dist/assets/launch-tower-catch-tower.svg +1 -0
- package/dist/assets/launch-tower-catch-tower.thick.svg +1 -0
- package/dist/assets/launch-tower-catch.glb +0 -0
- package/dist/assets/launch-tower-catch.painted.svg +1 -0
- package/dist/assets/launch-tower-catch.svg +1 -0
- package/dist/assets/launch-tower-catch.thick.svg +1 -0
- package/dist/assets/launch-tower-stack-apart.painted.svg +1 -0
- package/dist/assets/launch-tower-stack-apart.svg +1 -0
- package/dist/assets/launch-tower-stack-apart.thick.svg +1 -0
- package/dist/assets/launch-tower-stack-arms.glb +0 -0
- package/dist/assets/launch-tower-stack-arms.painted.svg +1 -0
- package/dist/assets/launch-tower-stack-arms.svg +1 -0
- package/dist/assets/launch-tower-stack-arms.thick.svg +1 -0
- package/dist/assets/launch-tower-stack-booster.glb +0 -0
- package/dist/assets/launch-tower-stack-booster.painted.svg +1 -0
- package/dist/assets/launch-tower-stack-booster.svg +1 -0
- package/dist/assets/launch-tower-stack-booster.thick.svg +1 -0
- package/dist/assets/launch-tower-stack-mount.glb +0 -0
- package/dist/assets/launch-tower-stack-mount.painted.svg +1 -0
- package/dist/assets/launch-tower-stack-mount.svg +1 -0
- package/dist/assets/launch-tower-stack-mount.thick.svg +1 -0
- package/dist/assets/launch-tower-stack-ship.glb +0 -0
- package/dist/assets/launch-tower-stack-ship.painted.svg +1 -0
- package/dist/assets/launch-tower-stack-ship.svg +1 -0
- package/dist/assets/launch-tower-stack-ship.thick.svg +1 -0
- package/dist/assets/launch-tower-stack-tower.glb +0 -0
- package/dist/assets/launch-tower-stack-tower.painted.svg +1 -0
- package/dist/assets/launch-tower-stack-tower.svg +1 -0
- package/dist/assets/launch-tower-stack-tower.thick.svg +1 -0
- package/dist/assets/launch-tower-stack.glb +0 -0
- package/dist/assets/launch-tower-stack.painted.svg +1 -0
- package/dist/assets/launch-tower-stack.svg +1 -0
- package/dist/assets/launch-tower-stack.thick.svg +1 -0
- package/dist/assets/launch-tower-tower-apart.painted.svg +1 -0
- package/dist/assets/launch-tower-tower-apart.svg +1 -0
- package/dist/assets/launch-tower-tower-apart.thick.svg +1 -0
- package/dist/assets/launch-tower-tower-arms.glb +0 -0
- package/dist/assets/launch-tower-tower-arms.painted.svg +1 -0
- package/dist/assets/launch-tower-tower-arms.svg +1 -0
- package/dist/assets/launch-tower-tower-arms.thick.svg +1 -0
- package/dist/assets/launch-tower-tower-mount.glb +0 -0
- package/dist/assets/launch-tower-tower-mount.painted.svg +1 -0
- package/dist/assets/launch-tower-tower-mount.svg +1 -0
- package/dist/assets/launch-tower-tower-mount.thick.svg +1 -0
- package/dist/assets/launch-tower-tower-tower.glb +0 -0
- package/dist/assets/launch-tower-tower-tower.painted.svg +1 -0
- package/dist/assets/launch-tower-tower-tower.svg +1 -0
- package/dist/assets/launch-tower-tower-tower.thick.svg +1 -0
- package/dist/assets/launch-tower-tower.glb +0 -0
- package/dist/assets/launch-tower-tower.painted.svg +1 -0
- package/dist/assets/launch-tower-tower.svg +1 -0
- package/dist/assets/launch-tower-tower.thick.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-apart.painted.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-apart.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-apart.thick.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-ascent.glb +0 -0
- package/dist/assets/lunar-module-lunar-module-ascent.painted.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-ascent.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-ascent.thick.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-descent.glb +0 -0
- package/dist/assets/lunar-module-lunar-module-descent.painted.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-descent.svg +1 -0
- package/dist/assets/lunar-module-lunar-module-descent.thick.svg +1 -0
- package/dist/assets/lunar-module-lunar-module.glb +0 -0
- package/dist/assets/lunar-module-lunar-module.painted.svg +1 -0
- package/dist/assets/lunar-module-lunar-module.svg +1 -0
- package/dist/assets/lunar-module-lunar-module.thick.svg +1 -0
- package/dist/assets/mercury-friendship-7.glb +0 -0
- package/dist/assets/mercury-friendship-7.painted.svg +1 -0
- package/dist/assets/mercury-friendship-7.svg +1 -0
- package/dist/assets/mercury-friendship-7.thick.svg +1 -0
- package/dist/assets/models/apollo-soyuz-csm.glb +0 -0
- package/dist/assets/models/apollo-soyuz-docking-module.glb +0 -0
- package/dist/assets/models/apollo-soyuz-soyuz.glb +0 -0
- package/dist/assets/models/gemini-adapter.glb +0 -0
- package/dist/assets/models/gemini-capsule.glb +0 -0
- package/dist/assets/models/hubble-telescope.glb +0 -0
- package/dist/assets/models/iss-station.glb +0 -0
- package/dist/assets/models/jupiter-c-vehicle.glb +0 -0
- package/dist/assets/models/lunar-module-ascent.glb +0 -0
- package/dist/assets/models/lunar-module-descent.glb +0 -0
- package/dist/assets/models/mercury-capsule.glb +0 -0
- package/dist/assets/models/space-shuttle-discovery-orbiter.glb +0 -0
- package/dist/assets/models/space-shuttle-stack-external-tank.glb +0 -0
- package/dist/assets/models/space-shuttle-stack-orbiter.glb +0 -0
- package/dist/assets/models/space-shuttle-stack-srb.glb +0 -0
- package/dist/assets/new-glenn-7x2-apart.painted.svg +1 -0
- package/dist/assets/new-glenn-7x2-apart.svg +1 -0
- package/dist/assets/new-glenn-7x2-apart.thick.svg +1 -0
- package/dist/assets/new-glenn-7x2-fairing.glb +0 -0
- package/dist/assets/new-glenn-7x2-fairing.painted.svg +1 -0
- package/dist/assets/new-glenn-7x2-fairing.svg +1 -0
- package/dist/assets/new-glenn-7x2-fairing.thick.svg +1 -0
- package/dist/assets/new-glenn-7x2-first-stage.glb +0 -0
- package/dist/assets/new-glenn-7x2-first-stage.painted.svg +1 -0
- package/dist/assets/new-glenn-7x2-first-stage.svg +1 -0
- package/dist/assets/new-glenn-7x2-first-stage.thick.svg +1 -0
- package/dist/assets/new-glenn-7x2-second-stage.glb +0 -0
- package/dist/assets/new-glenn-7x2-second-stage.painted.svg +1 -0
- package/dist/assets/new-glenn-7x2-second-stage.svg +1 -0
- package/dist/assets/new-glenn-7x2-second-stage.thick.svg +1 -0
- package/dist/assets/new-glenn-7x2.glb +0 -0
- package/dist/assets/new-glenn-7x2.painted.svg +1 -0
- package/dist/assets/new-glenn-7x2.svg +1 -0
- package/dist/assets/new-glenn-7x2.thick.svg +1 -0
- package/dist/assets/parts/flap-aft.painted.svg +1 -1
- package/dist/assets/parts/flap-aft.svg +1 -1
- package/dist/assets/parts/flap-aft.thick.svg +1 -1
- package/dist/assets/parts/flap-forward.painted.svg +1 -1
- package/dist/assets/parts/flap-forward.svg +1 -1
- package/dist/assets/parts/flap-forward.thick.svg +1 -1
- package/dist/assets/parts/grid-fin-four.painted.svg +1 -1
- package/dist/assets/parts/grid-fin-four.svg +1 -1
- package/dist/assets/parts/grid-fin-four.thick.svg +1 -1
- package/dist/assets/parts/grid-fin-three.painted.svg +1 -1
- package/dist/assets/parts/grid-fin-three.svg +1 -1
- package/dist/assets/parts/grid-fin-three.thick.svg +1 -1
- package/dist/assets/parts/merlin-sea-level.painted.svg +1 -1
- package/dist/assets/parts/merlin-sea-level.svg +1 -1
- package/dist/assets/parts/merlin-sea-level.thick.svg +1 -1
- package/dist/assets/parts/raptor-sea-level.painted.svg +1 -1
- package/dist/assets/parts/raptor-sea-level.svg +1 -1
- package/dist/assets/parts/raptor-sea-level.thick.svg +1 -1
- package/dist/assets/parts/raptor-vacuum.painted.svg +1 -1
- package/dist/assets/parts/raptor-vacuum.svg +1 -1
- package/dist/assets/parts/raptor-vacuum.thick.svg +1 -1
- package/dist/assets/saturn-v-saturn-v-adapter.glb +0 -0
- package/dist/assets/saturn-v-saturn-v-adapter.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-adapter.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-adapter.thick.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-apart.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-apart.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-apart.thick.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-capsule.glb +0 -0
- package/dist/assets/saturn-v-saturn-v-capsule.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-capsule.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-capsule.thick.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-escape-tower.glb +0 -0
- package/dist/assets/saturn-v-saturn-v-escape-tower.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-escape-tower.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-escape-tower.thick.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-first-stage.glb +0 -0
- package/dist/assets/saturn-v-saturn-v-first-stage.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-first-stage.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-first-stage.thick.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-second-stage.glb +0 -0
- package/dist/assets/saturn-v-saturn-v-second-stage.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-second-stage.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-second-stage.thick.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-service-module.glb +0 -0
- package/dist/assets/saturn-v-saturn-v-service-module.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-service-module.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-service-module.thick.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-third-stage.glb +0 -0
- package/dist/assets/saturn-v-saturn-v-third-stage.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-third-stage.svg +1 -0
- package/dist/assets/saturn-v-saturn-v-third-stage.thick.svg +1 -0
- package/dist/assets/saturn-v-saturn-v.glb +0 -0
- package/dist/assets/saturn-v-saturn-v.painted.svg +1 -0
- package/dist/assets/saturn-v-saturn-v.svg +1 -0
- package/dist/assets/saturn-v-saturn-v.thick.svg +1 -0
- package/dist/assets/sls-block-1-apart.painted.svg +1 -0
- package/dist/assets/sls-block-1-apart.svg +1 -0
- package/dist/assets/sls-block-1-apart.thick.svg +1 -0
- package/dist/assets/sls-block-1-capsule.glb +0 -0
- package/dist/assets/sls-block-1-capsule.painted.svg +1 -0
- package/dist/assets/sls-block-1-capsule.svg +1 -0
- package/dist/assets/sls-block-1-capsule.thick.svg +1 -0
- package/dist/assets/sls-block-1-escape-tower.glb +0 -0
- package/dist/assets/sls-block-1-escape-tower.painted.svg +1 -0
- package/dist/assets/sls-block-1-escape-tower.svg +1 -0
- package/dist/assets/sls-block-1-escape-tower.thick.svg +1 -0
- package/dist/assets/sls-block-1-first-stage.glb +0 -0
- package/dist/assets/sls-block-1-first-stage.painted.svg +1 -0
- package/dist/assets/sls-block-1-first-stage.svg +1 -0
- package/dist/assets/sls-block-1-first-stage.thick.svg +1 -0
- package/dist/assets/sls-block-1-service-module.glb +0 -0
- package/dist/assets/sls-block-1-service-module.painted.svg +1 -0
- package/dist/assets/sls-block-1-service-module.svg +1 -0
- package/dist/assets/sls-block-1-service-module.thick.svg +1 -0
- package/dist/assets/sls-block-1-srb-left.glb +0 -0
- package/dist/assets/sls-block-1-srb-left.painted.svg +1 -0
- package/dist/assets/sls-block-1-srb-left.svg +1 -0
- package/dist/assets/sls-block-1-srb-left.thick.svg +1 -0
- package/dist/assets/sls-block-1-srb-right.glb +0 -0
- package/dist/assets/sls-block-1-srb-right.painted.svg +1 -0
- package/dist/assets/sls-block-1-srb-right.svg +1 -0
- package/dist/assets/sls-block-1-srb-right.thick.svg +1 -0
- package/dist/assets/sls-block-1-upper-stage.glb +0 -0
- package/dist/assets/sls-block-1-upper-stage.painted.svg +1 -0
- package/dist/assets/sls-block-1-upper-stage.svg +1 -0
- package/dist/assets/sls-block-1-upper-stage.thick.svg +1 -0
- package/dist/assets/sls-block-1.glb +0 -0
- package/dist/assets/sls-block-1.painted.svg +1 -0
- package/dist/assets/sls-block-1.svg +1 -0
- package/dist/assets/sls-block-1.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-apart.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-apart.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-apart.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-1.glb +0 -0
- package/dist/assets/soyuz-soyuz-2-booster-1.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-1.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-1.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-2.glb +0 -0
- package/dist/assets/soyuz-soyuz-2-booster-2.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-2.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-2.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-3.glb +0 -0
- package/dist/assets/soyuz-soyuz-2-booster-3.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-3.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-3.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-4.glb +0 -0
- package/dist/assets/soyuz-soyuz-2-booster-4.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-4.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-booster-4.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-fairing.glb +0 -0
- package/dist/assets/soyuz-soyuz-2-fairing.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-fairing.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-fairing.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-first-stage.glb +0 -0
- package/dist/assets/soyuz-soyuz-2-first-stage.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-first-stage.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-first-stage.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-third-stage.glb +0 -0
- package/dist/assets/soyuz-soyuz-2-third-stage.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-third-stage.svg +1 -0
- package/dist/assets/soyuz-soyuz-2-third-stage.thick.svg +1 -0
- package/dist/assets/soyuz-soyuz-2.glb +0 -0
- package/dist/assets/soyuz-soyuz-2.painted.svg +1 -0
- package/dist/assets/soyuz-soyuz-2.svg +1 -0
- package/dist/assets/soyuz-soyuz-2.thick.svg +1 -0
- package/dist/assets/space-shuttle-discovery.glb +0 -0
- package/dist/assets/space-shuttle-discovery.painted.svg +1 -0
- package/dist/assets/space-shuttle-discovery.svg +1 -0
- package/dist/assets/space-shuttle-discovery.thick.svg +1 -0
- package/dist/assets/space-shuttle-stack-apart.painted.svg +1 -0
- package/dist/assets/space-shuttle-stack-apart.svg +1 -0
- package/dist/assets/space-shuttle-stack-apart.thick.svg +1 -0
- package/dist/assets/space-shuttle-stack-external-tank.glb +0 -0
- package/dist/assets/space-shuttle-stack-external-tank.painted.svg +1 -0
- package/dist/assets/space-shuttle-stack-external-tank.svg +1 -0
- package/dist/assets/space-shuttle-stack-external-tank.thick.svg +1 -0
- package/dist/assets/space-shuttle-stack-orbiter.glb +0 -0
- package/dist/assets/space-shuttle-stack-orbiter.painted.svg +1 -0
- package/dist/assets/space-shuttle-stack-orbiter.svg +1 -0
- package/dist/assets/space-shuttle-stack-orbiter.thick.svg +1 -0
- package/dist/assets/space-shuttle-stack-srb-left.glb +0 -0
- package/dist/assets/space-shuttle-stack-srb-left.painted.svg +1 -0
- package/dist/assets/space-shuttle-stack-srb-left.svg +1 -0
- package/dist/assets/space-shuttle-stack-srb-left.thick.svg +1 -0
- package/dist/assets/space-shuttle-stack-srb-right.glb +0 -0
- package/dist/assets/space-shuttle-stack-srb-right.painted.svg +1 -0
- package/dist/assets/space-shuttle-stack-srb-right.svg +1 -0
- package/dist/assets/space-shuttle-stack-srb-right.thick.svg +1 -0
- package/dist/assets/space-shuttle-stack.glb +0 -0
- package/dist/assets/space-shuttle-stack.painted.svg +1 -0
- package/dist/assets/space-shuttle-stack.svg +1 -0
- package/dist/assets/space-shuttle-stack.thick.svg +1 -0
- package/dist/assets/starbase-build-site-apart.painted.svg +1 -0
- package/dist/assets/starbase-build-site-apart.svg +1 -0
- package/dist/assets/starbase-build-site-apart.thick.svg +1 -0
- package/dist/assets/starbase-build-site-garden.glb +0 -0
- package/dist/assets/starbase-build-site-garden.painted.svg +1 -0
- package/dist/assets/starbase-build-site-garden.svg +1 -0
- package/dist/assets/starbase-build-site-garden.thick.svg +1 -0
- package/dist/assets/starbase-build-site-ground.glb +0 -0
- package/dist/assets/starbase-build-site-ground.painted.svg +1 -0
- package/dist/assets/starbase-build-site-ground.svg +1 -0
- package/dist/assets/starbase-build-site-ground.thick.svg +1 -0
- package/dist/assets/starbase-build-site-mega-bays.glb +0 -0
- package/dist/assets/starbase-build-site-mega-bays.painted.svg +1 -0
- package/dist/assets/starbase-build-site-mega-bays.svg +1 -0
- package/dist/assets/starbase-build-site-mega-bays.thick.svg +1 -0
- package/dist/assets/starbase-build-site-sign.glb +0 -0
- package/dist/assets/starbase-build-site-sign.painted.svg +1 -0
- package/dist/assets/starbase-build-site-sign.svg +1 -0
- package/dist/assets/starbase-build-site-sign.thick.svg +1 -0
- package/dist/assets/starbase-build-site-starfactory.glb +0 -0
- package/dist/assets/starbase-build-site-starfactory.painted.svg +1 -0
- package/dist/assets/starbase-build-site-starfactory.svg +1 -0
- package/dist/assets/starbase-build-site-starfactory.thick.svg +1 -0
- package/dist/assets/starbase-build-site.glb +0 -0
- package/dist/assets/starbase-build-site.painted.svg +1 -0
- package/dist/assets/starbase-build-site.svg +1 -0
- package/dist/assets/starbase-build-site.thick.svg +1 -0
- package/dist/assets/starbase-city-apart.painted.svg +1 -0
- package/dist/assets/starbase-city-apart.svg +1 -0
- package/dist/assets/starbase-city-apart.thick.svg +1 -0
- package/dist/assets/starbase-city-garden.glb +0 -0
- package/dist/assets/starbase-city-garden.painted.svg +1 -0
- package/dist/assets/starbase-city-garden.svg +1 -0
- package/dist/assets/starbase-city-garden.thick.svg +1 -0
- package/dist/assets/starbase-city-ground.glb +0 -0
- package/dist/assets/starbase-city-ground.painted.svg +1 -0
- package/dist/assets/starbase-city-ground.svg +1 -0
- package/dist/assets/starbase-city-ground.thick.svg +1 -0
- package/dist/assets/starbase-city-mega-bays.glb +0 -0
- package/dist/assets/starbase-city-mega-bays.painted.svg +1 -0
- package/dist/assets/starbase-city-mega-bays.svg +1 -0
- package/dist/assets/starbase-city-mega-bays.thick.svg +1 -0
- package/dist/assets/starbase-city-on-pad.glb +0 -0
- package/dist/assets/starbase-city-on-pad.painted.svg +1 -0
- package/dist/assets/starbase-city-on-pad.svg +1 -0
- package/dist/assets/starbase-city-on-pad.thick.svg +1 -0
- package/dist/assets/starbase-city-pads.glb +0 -0
- package/dist/assets/starbase-city-pads.painted.svg +1 -0
- package/dist/assets/starbase-city-pads.svg +1 -0
- package/dist/assets/starbase-city-pads.thick.svg +1 -0
- package/dist/assets/starbase-city-sign.glb +0 -0
- package/dist/assets/starbase-city-sign.painted.svg +1 -0
- package/dist/assets/starbase-city-sign.svg +1 -0
- package/dist/assets/starbase-city-sign.thick.svg +1 -0
- package/dist/assets/starbase-city-starfactory.glb +0 -0
- package/dist/assets/starbase-city-starfactory.painted.svg +1 -0
- package/dist/assets/starbase-city-starfactory.svg +1 -0
- package/dist/assets/starbase-city-starfactory.thick.svg +1 -0
- package/dist/assets/starbase-city-tank-farm.glb +0 -0
- package/dist/assets/starbase-city-tank-farm.painted.svg +1 -0
- package/dist/assets/starbase-city-tank-farm.svg +1 -0
- package/dist/assets/starbase-city-tank-farm.thick.svg +1 -0
- package/dist/assets/starbase-city-village.glb +0 -0
- package/dist/assets/starbase-city-village.painted.svg +1 -0
- package/dist/assets/starbase-city-village.svg +1 -0
- package/dist/assets/starbase-city-village.thick.svg +1 -0
- package/dist/assets/starbase-city.glb +0 -0
- package/dist/assets/starbase-city.painted.svg +1 -0
- package/dist/assets/starbase-city.svg +1 -0
- package/dist/assets/starbase-city.thick.svg +1 -0
- package/dist/assets/starbase-launch-site-apart.painted.svg +1 -0
- package/dist/assets/starbase-launch-site-apart.svg +1 -0
- package/dist/assets/starbase-launch-site-apart.thick.svg +1 -0
- package/dist/assets/starbase-launch-site-ground.glb +0 -0
- package/dist/assets/starbase-launch-site-ground.painted.svg +1 -0
- package/dist/assets/starbase-launch-site-ground.svg +1 -0
- package/dist/assets/starbase-launch-site-ground.thick.svg +1 -0
- package/dist/assets/starbase-launch-site-on-pad.glb +0 -0
- package/dist/assets/starbase-launch-site-on-pad.painted.svg +1 -0
- package/dist/assets/starbase-launch-site-on-pad.svg +1 -0
- package/dist/assets/starbase-launch-site-on-pad.thick.svg +1 -0
- package/dist/assets/starbase-launch-site-pads.glb +0 -0
- package/dist/assets/starbase-launch-site-pads.painted.svg +1 -0
- package/dist/assets/starbase-launch-site-pads.svg +1 -0
- package/dist/assets/starbase-launch-site-pads.thick.svg +1 -0
- package/dist/assets/starbase-launch-site-tank-farm.glb +0 -0
- package/dist/assets/starbase-launch-site-tank-farm.painted.svg +1 -0
- package/dist/assets/starbase-launch-site-tank-farm.svg +1 -0
- package/dist/assets/starbase-launch-site-tank-farm.thick.svg +1 -0
- package/dist/assets/starbase-launch-site.glb +0 -0
- package/dist/assets/starbase-launch-site.painted.svg +1 -0
- package/dist/assets/starbase-launch-site.svg +1 -0
- package/dist/assets/starbase-launch-site.thick.svg +1 -0
- package/dist/assets/starship-2019.painted.svg +1 -1
- package/dist/assets/starship-2019.svg +1 -1
- package/dist/assets/starship-2019.thick.svg +1 -1
- package/dist/assets/starship-v1-apart.painted.svg +1 -1
- package/dist/assets/starship-v1-apart.svg +1 -1
- package/dist/assets/starship-v1-apart.thick.svg +1 -1
- package/dist/assets/starship-v1-booster.painted.svg +1 -1
- package/dist/assets/starship-v1-booster.svg +1 -1
- package/dist/assets/starship-v1-booster.thick.svg +1 -1
- package/dist/assets/starship-v1-flight1-apart.painted.svg +1 -1
- package/dist/assets/starship-v1-flight1-apart.svg +1 -1
- package/dist/assets/starship-v1-flight1-apart.thick.svg +1 -1
- package/dist/assets/starship-v1-flight1-booster.painted.svg +1 -1
- package/dist/assets/starship-v1-flight1-booster.svg +1 -1
- package/dist/assets/starship-v1-flight1-booster.thick.svg +1 -1
- package/dist/assets/starship-v1-flight1-ship.painted.svg +1 -1
- package/dist/assets/starship-v1-flight1-ship.svg +1 -1
- package/dist/assets/starship-v1-flight1-ship.thick.svg +1 -1
- package/dist/assets/starship-v1-flight1.painted.svg +1 -1
- package/dist/assets/starship-v1-flight1.svg +1 -1
- package/dist/assets/starship-v1-flight1.thick.svg +1 -1
- package/dist/assets/starship-v1-ship.painted.svg +1 -1
- package/dist/assets/starship-v1-ship.svg +1 -1
- package/dist/assets/starship-v1-ship.thick.svg +1 -1
- package/dist/assets/starship-v1.painted.svg +1 -1
- package/dist/assets/starship-v1.svg +1 -1
- package/dist/assets/starship-v1.thick.svg +1 -1
- package/dist/assets/starship-v2-apart.painted.svg +1 -1
- package/dist/assets/starship-v2-apart.svg +1 -1
- package/dist/assets/starship-v2-apart.thick.svg +1 -1
- package/dist/assets/starship-v2-booster.painted.svg +1 -1
- package/dist/assets/starship-v2-booster.svg +1 -1
- package/dist/assets/starship-v2-booster.thick.svg +1 -1
- package/dist/assets/starship-v2-ship.painted.svg +1 -1
- package/dist/assets/starship-v2-ship.svg +1 -1
- package/dist/assets/starship-v2-ship.thick.svg +1 -1
- package/dist/assets/starship-v2.painted.svg +1 -1
- package/dist/assets/starship-v2.svg +1 -1
- package/dist/assets/starship-v2.thick.svg +1 -1
- package/dist/assets/starship-v3-apart.painted.svg +1 -1
- package/dist/assets/starship-v3-apart.svg +1 -1
- package/dist/assets/starship-v3-apart.thick.svg +1 -1
- package/dist/assets/starship-v3-booster.painted.svg +1 -1
- package/dist/assets/starship-v3-booster.svg +1 -1
- package/dist/assets/starship-v3-booster.thick.svg +1 -1
- package/dist/assets/starship-v3-ship.painted.svg +1 -1
- package/dist/assets/starship-v3-ship.svg +1 -1
- package/dist/assets/starship-v3-ship.thick.svg +1 -1
- package/dist/assets/starship-v3.painted.svg +1 -1
- package/dist/assets/starship-v3.svg +1 -1
- package/dist/assets/starship-v3.thick.svg +1 -1
- package/dist/assets/starship-v4-apart.painted.svg +1 -1
- package/dist/assets/starship-v4-apart.svg +1 -1
- package/dist/assets/starship-v4-apart.thick.svg +1 -1
- package/dist/assets/starship-v4-booster.painted.svg +1 -1
- package/dist/assets/starship-v4-booster.svg +1 -1
- package/dist/assets/starship-v4-booster.thick.svg +1 -1
- package/dist/assets/starship-v4-ship.painted.svg +1 -1
- package/dist/assets/starship-v4-ship.svg +1 -1
- package/dist/assets/starship-v4-ship.thick.svg +1 -1
- package/dist/assets/starship-v4.painted.svg +1 -1
- package/dist/assets/starship-v4.svg +1 -1
- package/dist/assets/starship-v4.thick.svg +1 -1
- package/dist/attrs.d.ts +27 -0
- package/dist/attrs.js +31 -0
- package/dist/build/index.d.ts +7 -2
- package/dist/build/index.js +28 -4
- package/dist/build/lineup.js +14 -4
- package/dist/builder.d.ts +22 -0
- package/dist/builder.js +103 -0
- package/dist/data/apollosoyuz.d.ts +6 -0
- package/dist/data/apollosoyuz.js +28 -0
- package/dist/data/credits.d.ts +19 -1
- package/dist/data/credits.js +30 -1
- package/dist/data/dragon.js +35 -0
- package/dist/data/electron.d.ts +2 -0
- package/dist/data/electron.js +23 -0
- package/dist/data/falcon.js +2 -2
- package/dist/data/falcon1.d.ts +4 -0
- package/dist/data/falcon1.js +51 -0
- package/dist/data/flight-log.d.ts +18 -0
- package/dist/data/flight-log.js +23 -0
- package/dist/data/flights.d.ts +49 -0
- package/dist/data/flights.js +177 -0
- package/dist/data/gemini.d.ts +3 -0
- package/dist/data/gemini.js +22 -0
- package/dist/data/hubble.d.ts +3 -0
- package/dist/data/hubble.js +23 -0
- package/dist/data/iss.d.ts +5 -0
- package/dist/data/iss.js +25 -0
- package/dist/data/jupiterc.d.ts +3 -0
- package/dist/data/jupiterc.js +22 -0
- package/dist/data/landing.d.ts +3 -0
- package/dist/data/landing.js +51 -0
- package/dist/data/lunarmodule.d.ts +4 -0
- package/dist/data/lunarmodule.js +27 -0
- package/dist/data/makers.d.ts +16 -0
- package/dist/data/makers.js +29 -0
- package/dist/data/mercury.d.ts +3 -0
- package/dist/data/mercury.js +22 -0
- package/dist/data/newglenn.d.ts +2 -0
- package/dist/data/newglenn.js +23 -0
- package/dist/data/saturn.d.ts +2 -0
- package/dist/data/saturn.js +32 -0
- package/dist/data/shuttle.d.ts +5 -0
- package/dist/data/shuttle.js +52 -0
- package/dist/data/sls.d.ts +4 -0
- package/dist/data/sls.js +36 -0
- package/dist/data/sources.d.ts +348 -2
- package/dist/data/sources.js +45 -1
- package/dist/data/soyuz.d.ts +3 -0
- package/dist/data/soyuz.js +33 -0
- package/dist/data/starbase.d.ts +2 -0
- package/dist/data/starbase.js +30 -0
- package/dist/data/tower.d.ts +3 -0
- package/dist/data/tower.js +26 -0
- package/dist/data/types.d.ts +7 -1
- package/dist/draw/plume.d.ts +8 -0
- package/dist/draw/plume.js +71 -0
- package/dist/draw/svg.d.ts +1 -1
- package/dist/draw/svg.js +3 -3
- package/dist/element/ground.d.ts +15 -0
- package/dist/element/ground.js +95 -0
- package/dist/element/plumes.d.ts +38 -0
- package/dist/element/plumes.js +208 -0
- package/dist/element/scene.d.ts +39 -5
- package/dist/element/scene.js +250 -7
- package/dist/element.d.ts +50 -1
- package/dist/element.js +201 -13
- package/dist/embed.d.ts +26 -0
- package/dist/embed.js +135 -0
- package/dist/engines.d.ts +44 -0
- package/dist/engines.js +79 -0
- package/dist/fit.d.ts +2 -0
- package/dist/fit.js +4 -3
- package/dist/flight.d.ts +67 -0
- package/dist/flight.js +124 -0
- package/dist/flightbar.d.ts +22 -0
- package/dist/flightbar.js +176 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +9 -0
- package/dist/layout.js +1 -1
- package/dist/looks.d.ts +1 -1
- package/dist/looks.js +2 -0
- package/dist/model/apollosoyuz.d.ts +2 -0
- package/dist/model/apollosoyuz.js +46 -0
- package/dist/model/dragoninside.d.ts +2 -0
- package/dist/model/dragoninside.js +67 -0
- package/dist/model/electron.d.ts +2 -0
- package/dist/model/electron.js +35 -0
- package/dist/model/falcon.d.ts +2 -0
- package/dist/model/falcon.js +4 -0
- package/dist/model/falcon1.d.ts +2 -0
- package/dist/model/falcon1.js +53 -0
- package/dist/model/gemini.d.ts +2 -0
- package/dist/model/gemini.js +28 -0
- package/dist/model/hubble.d.ts +2 -0
- package/dist/model/hubble.js +28 -0
- package/dist/model/iss.d.ts +2 -0
- package/dist/model/iss.js +32 -0
- package/dist/model/jupiterc.d.ts +2 -0
- package/dist/model/jupiterc.js +24 -0
- package/dist/model/kit.d.ts +36 -0
- package/dist/model/kit.js +95 -0
- package/dist/model/landing.d.ts +3 -0
- package/dist/model/landing.js +81 -0
- package/dist/model/lunarmodule.d.ts +2 -0
- package/dist/model/lunarmodule.js +43 -0
- package/dist/model/materials.d.ts +42 -0
- package/dist/model/materials.js +7 -0
- package/dist/model/mercury.d.ts +2 -0
- package/dist/model/mercury.js +19 -0
- package/dist/model/newglenn.d.ts +2 -0
- package/dist/model/newglenn.js +43 -0
- package/dist/model/pieces.d.ts +2 -0
- package/dist/model/pieces.js +2 -2
- package/dist/model/registry.js +63 -0
- package/dist/model/saturn.d.ts +2 -0
- package/dist/model/saturn.js +122 -0
- package/dist/model/shuttle.d.ts +2 -0
- package/dist/model/shuttle.js +111 -0
- package/dist/model/sls.d.ts +2 -0
- package/dist/model/sls.js +83 -0
- package/dist/model/soyuz.d.ts +2 -0
- package/dist/model/soyuz.js +75 -0
- package/dist/model/stacks.d.ts +39 -0
- package/dist/model/stacks.js +1 -0
- package/dist/model/starbase.d.ts +2 -0
- package/dist/model/starbase.js +108 -0
- package/dist/model/tower.d.ts +6 -0
- package/dist/model/tower.js +89 -0
- package/dist/parts.d.ts +3 -2
- package/dist/react.d.ts +14 -6
- package/dist/rockets.d.ts +5 -0
- package/dist/rockets.js +78 -7
- package/dist/spin.d.ts +11 -0
- package/dist/spin.js +11 -0
- package/package.json +93 -18
package/dist/builder.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// What the part builder offers. A rocket from parts of every rocket, row by row from the bottom: each row offers only what fits on the row below, a row with one answer is answered for the reader, and a change lower down carries what still fits and makes a fresh choice for the rest. So the builder can never reach a rocket that does not go together, and `check` still has the last word. Everything comes from `ROCKETS` and `PART_ENTRIES`, so a new rocket is offered with no change here. Pure.
|
|
2
|
+
import { check, JOINT_TOLERANCE } from "./fit.js";
|
|
3
|
+
import { partEntry, PART_ENTRIES } from "./model/registry.js";
|
|
4
|
+
import { partIdOf, ROCKETS, SLOT_NAMES } from "./rockets.js";
|
|
5
|
+
function framesOf() {
|
|
6
|
+
const frames = [];
|
|
7
|
+
for (const rocket of Object.values(ROCKETS))
|
|
8
|
+
for (const variant of rocket.variants) {
|
|
9
|
+
const homes = variant.slots.map((slot) => partEntry(partIdOf(variant.rocket, variant.id, slot))?.record);
|
|
10
|
+
if (homes.every(Boolean))
|
|
11
|
+
frames.push({ rocket: rocket.id, variant: variant.id, slots: variant.slots, homes: homes });
|
|
12
|
+
}
|
|
13
|
+
return frames;
|
|
14
|
+
}
|
|
15
|
+
/** A part can stand in a slot when it is the same kind of part and joins the same ways as the slot's own. */
|
|
16
|
+
const sameShape = (part, home) => part.kind === home.kind && Boolean(part.joints.top) === Boolean(home.joints.top) && Boolean(part.joints.bottom) === Boolean(home.joints.bottom) && part.strapOn?.x === home.strapOn?.x && part.strapOn?.z === home.strapOn?.z;
|
|
17
|
+
/** It sits on what is below it. */
|
|
18
|
+
const fitsOn = (part, below) => {
|
|
19
|
+
if (!below)
|
|
20
|
+
return true;
|
|
21
|
+
const { top } = below.joints;
|
|
22
|
+
const { bottom } = part.joints;
|
|
23
|
+
return Boolean(top && bottom && top.kind === bottom.kind && Math.abs(top.diameter - bottom.diameter) <= JOINT_TOLERANCE);
|
|
24
|
+
};
|
|
25
|
+
const REAL_PARTS = () => PART_ENTRIES.map(({ record }) => record).filter((record) => record.trueTo.length > 0);
|
|
26
|
+
const optionOf = (part) => ({ id: part.id, name: part.name, rocket: ROCKETS[part.rocket]?.name ?? part.rocket });
|
|
27
|
+
/** The rows for these picks, from the bottom. A pick that is not offered, for a change lower down or a hostile value, gives way to the part that belongs with what is below, or else the first that fits. */
|
|
28
|
+
export function builderState(picks = []) {
|
|
29
|
+
const every = framesOf();
|
|
30
|
+
const parts = REAL_PARTS();
|
|
31
|
+
const rows = [];
|
|
32
|
+
const chosen = [];
|
|
33
|
+
// Only what can still be finished is offered: nothing on any row leads to a rocket with a part missing.
|
|
34
|
+
const known = new Map();
|
|
35
|
+
const finishes = (frame, row, below, foot) => {
|
|
36
|
+
if (row >= frame.slots.length)
|
|
37
|
+
return true;
|
|
38
|
+
const key = `${frame.rocket}/${frame.variant}/${row}/${below?.id}/${foot.id}`;
|
|
39
|
+
let answer = known.get(key);
|
|
40
|
+
if (answer === undefined) {
|
|
41
|
+
answer = fitting(frame, row, below, foot).length > 0;
|
|
42
|
+
known.set(key, answer);
|
|
43
|
+
}
|
|
44
|
+
return answer;
|
|
45
|
+
};
|
|
46
|
+
const fitting = (frame, row, below, foot) => {
|
|
47
|
+
const home = frame.homes[row];
|
|
48
|
+
// a part placed rather than stacked has no joint to mix at: it stands where its own variant puts it, by its own foot
|
|
49
|
+
if (home.strapOn)
|
|
50
|
+
return frame.homes[0].id === foot.id && finishes(frame, row + 1, below, foot) ? [home] : [];
|
|
51
|
+
return parts.filter((part) => sameShape(part, home) && fitsOn(part, below) && finishes(frame, row + 1, part, foot));
|
|
52
|
+
};
|
|
53
|
+
let alive = every;
|
|
54
|
+
for (let row = 0; alive.some((frame) => frame.slots.length > row); row++) {
|
|
55
|
+
// what a part sits on is the last one stacked: one placed beside the stack, a side booster or an orbiter, holds nothing up
|
|
56
|
+
const below = chosen.findLast((part) => !part.strapOn);
|
|
57
|
+
const candidates = (frame) => {
|
|
58
|
+
if (row >= frame.slots.length)
|
|
59
|
+
return [];
|
|
60
|
+
// the bottom row offers each rocket's own foot: what stands on it is what mixes
|
|
61
|
+
if (row === 0)
|
|
62
|
+
return [frame.homes[0]];
|
|
63
|
+
return fitting(frame, row, below, chosen[0]);
|
|
64
|
+
};
|
|
65
|
+
const offered = new Map();
|
|
66
|
+
for (const frame of alive)
|
|
67
|
+
for (const part of candidates(frame))
|
|
68
|
+
offered.set(part.id, part);
|
|
69
|
+
if (offered.size === 0)
|
|
70
|
+
break;
|
|
71
|
+
const options = [...offered.values()];
|
|
72
|
+
const asked = picks[row];
|
|
73
|
+
const pick = (asked !== undefined && offered.get(asked)) ||
|
|
74
|
+
// the next part of the real vehicle that everything so far belongs to, when there is one
|
|
75
|
+
alive.flatMap((frame) => (frame.slots.length > row && chosen.every((part, i) => frame.homes[i].id === part.id) ? [frame.homes[row]] : [])).find((part) => offered.has(part.id)) ||
|
|
76
|
+
// the part that flew with what is below it, when there is one
|
|
77
|
+
(below && options.find((part) => part.rocket === below.rocket && part.trueTo.some((id) => below.trueTo.includes(id)))) ||
|
|
78
|
+
options[0];
|
|
79
|
+
chosen.push(pick);
|
|
80
|
+
// the bottom row's own frames share one foot by shape; above it a frame stays while it can take the pick
|
|
81
|
+
alive = row === 0 ? every.filter((frame) => sameShape(pick, frame.homes[0])) : alive.filter((frame) => candidates(frame).some((part) => part.id === pick.id));
|
|
82
|
+
const slots = [...new Set(alive.filter((frame) => row < frame.slots.length).map((frame) => frame.slots[row]))];
|
|
83
|
+
rows.push({ label: slots.map((slot) => SLOT_NAMES[slot] ?? slot).join(" or "), options: options.map(optionOf), chosen: pick.id, auto: options.length === 1 });
|
|
84
|
+
// a real vehicle whole: nothing goes on top of it, even where a longer one shares its shape so far
|
|
85
|
+
if (alive.some((frame) => frame.slots.length === chosen.length && frame.homes.every((home, i) => home.id === chosen[i].id)))
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
const whole = alive.filter((frame) => frame.slots.length === chosen.length);
|
|
89
|
+
const chosenSlot = (description) => whole.find((frame) => frame.rocket === description.rocket && frame.variant === description.variant)?.slots[0] ?? "";
|
|
90
|
+
const described = whole.map((frame) => {
|
|
91
|
+
const named = Object.fromEntries(frame.slots.flatMap((slot, i) => (frame.homes[i].id === chosen[i].id ? [] : [[slot, chosen[i].id]])));
|
|
92
|
+
return { rocket: frame.rocket, variant: frame.variant, ...(Object.keys(named).length > 0 ? { parts: named } : {}) };
|
|
93
|
+
});
|
|
94
|
+
// the name of a real vehicle where these parts are one; a custom build otherwise, and it says so
|
|
95
|
+
// and, of those, the version it has most parts of, so a custom build is said the plainest way
|
|
96
|
+
const swapped = (description) => Object.keys(description.parts ?? {});
|
|
97
|
+
const reports = described
|
|
98
|
+
// a tie goes to the version of the bottom part: it is the one the reader chose first
|
|
99
|
+
.sort((a, b) => swapped(a).length - swapped(b).length || Number(swapped(a).includes(chosenSlot(a))) - Number(swapped(b).includes(chosenSlot(b))))
|
|
100
|
+
.map((description) => ({ description, report: check(description) }));
|
|
101
|
+
const best = reports.find(({ report }) => report.ok && !report.custom) ?? reports.find(({ report }) => report.ok) ?? reports[0];
|
|
102
|
+
return { rows, description: best.description, report: best.report };
|
|
103
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Figure, type Variant } from "./types.ts";
|
|
2
|
+
export declare const AS_CSM_LONG: Figure<number>;
|
|
3
|
+
export declare const AS_CSM_WIDE: Figure<number>;
|
|
4
|
+
export declare const AS_SOYUZ_LONG: Figure<number>;
|
|
5
|
+
export declare const AS_SOYUZ_WIDE: Figure<number>;
|
|
6
|
+
export declare const APOLLO_SOYUZ_VARIANTS: readonly Variant[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Apollo docked to Soyuz, as flown in 1975. Apollo's sizes are from its own article and Soyuz's from the Soyuz 7K-TM article. No article read here gives the docking module's size, or the length of the three docked.
|
|
2
|
+
import { blank } from "./types.js";
|
|
3
|
+
const A = "wikipedia-apollo-soyuz";
|
|
4
|
+
const C = "wikipedia-apollo-csm";
|
|
5
|
+
const T = "wikipedia-soyuz-7k-tm";
|
|
6
|
+
const m = (value, source, extra = {}) => ({ value, source, ...extra });
|
|
7
|
+
export const AS_CSM_LONG = m(11, C, { note: "36.2 feet." });
|
|
8
|
+
export const AS_CSM_WIDE = m(3.9, C, { note: "12.8 feet." });
|
|
9
|
+
export const AS_SOYUZ_LONG = m(7.48, T);
|
|
10
|
+
export const AS_SOYUZ_WIDE = m(2.72, T);
|
|
11
|
+
export const APOLLO_SOYUZ_VARIANTS = [
|
|
12
|
+
{
|
|
13
|
+
id: "apollo-soyuz",
|
|
14
|
+
rocket: "apollo-soyuz",
|
|
15
|
+
name: "Apollo and Soyuz, docked",
|
|
16
|
+
status: "flown",
|
|
17
|
+
firstFlight: { value: "1975-07-15", source: A, note: "Both launched that day; they docked on the 17th, as its article says." },
|
|
18
|
+
slots: ["csm", "docking-module", "soyuz"],
|
|
19
|
+
note: "NASA's model, its flags and the countries' names painted out, in the painted look, stood on end; this package's own plain shapes in the line looks. Apollo and Soyuz are each scaled to their own sourced length and width, and the docking module, which no source read here sizes, to Apollo's scale. The whole is what those add to, so it has no figure of its own.",
|
|
20
|
+
facts: {
|
|
21
|
+
height: blank("No source read here gives the length of the three docked."),
|
|
22
|
+
diameter: AS_CSM_WIDE,
|
|
23
|
+
parts: { csm: AS_CSM_LONG, "docking-module": blank("No source read here gives its size."), soyuz: AS_SOYUZ_LONG },
|
|
24
|
+
engines: { csm: { value: "1 service propulsion engine", source: C } },
|
|
25
|
+
more: {},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
];
|
package/dist/data/credits.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export interface ModelCredit {
|
|
|
3
3
|
creator: string;
|
|
4
4
|
creatorUrl: string;
|
|
5
5
|
sourceUrl: string;
|
|
6
|
-
licence: "CC BY 4.0";
|
|
6
|
+
licence: "CC BY 4.0" | "CC0 1.0" | "Public domain (NASA)";
|
|
7
7
|
licenceUrl: string;
|
|
8
8
|
/** What this package changed. */
|
|
9
9
|
changes: string;
|
|
@@ -81,6 +81,24 @@ export declare const MODEL_CREDITS: {
|
|
|
81
81
|
readonly licenceUrl: "https://creativecommons.org/licenses/by/4.0/";
|
|
82
82
|
readonly changes: "The wordmark and logo removed with the texture that carried them; rescaled to the sourced height; reduced from 55,455 triangles; materials merged and renamed.";
|
|
83
83
|
};
|
|
84
|
+
readonly "smithsonian-discovery": {
|
|
85
|
+
readonly title: "Orbiter, Space Shuttle, OV-103, Discovery";
|
|
86
|
+
readonly creator: "Smithsonian Institution, National Air and Space Museum";
|
|
87
|
+
readonly creatorUrl: "https://3d.si.edu/";
|
|
88
|
+
readonly sourceUrl: "https://3d.si.edu/object/3d/orbiter-space-shuttle-ov-103-discovery:d8c636ce-4ebc-11ea-b77f-2e728ce88125";
|
|
89
|
+
readonly licence: "CC0 1.0";
|
|
90
|
+
readonly licenceUrl: "https://creativecommons.org/publicdomain/zero/1.0/";
|
|
91
|
+
readonly changes: "The agency mark, the flags, the country's name and the orbiter's name painted out of its picture; reduced from 150,000 triangles; its pictures shrunk; stood upright and scaled to the sourced length; materials renamed.";
|
|
92
|
+
};
|
|
93
|
+
readonly "nasa-shuttle-hi-res": ModelCredit;
|
|
94
|
+
readonly "nasa-shuttle-parts": ModelCredit;
|
|
95
|
+
readonly "nasa-lunar-module": ModelCredit;
|
|
96
|
+
readonly "nasa-apollo-soyuz": ModelCredit;
|
|
97
|
+
readonly "nasa-gemini": ModelCredit;
|
|
98
|
+
readonly "nasa-friendship-7": ModelCredit;
|
|
99
|
+
readonly "nasa-jupiter-c": ModelCredit;
|
|
100
|
+
readonly "nasa-iss": ModelCredit;
|
|
101
|
+
readonly "nasa-hubble": ModelCredit;
|
|
84
102
|
};
|
|
85
103
|
export type CreditId = keyof typeof MODEL_CREDITS;
|
|
86
104
|
/** One credit as a line of text. */
|
package/dist/data/credits.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
// Whose models the painted parts are made from. Each is under Creative Commons Attribution 4.0, and each assembled rocket's credits are generated from these rows, so an author is credited exactly for
|
|
1
|
+
// Whose models the painted parts are made from. Each is under Creative Commons Attribution 4.0, or CC0 or public domain where the row says so, and each assembled rocket's credits are generated from these rows, so an author is credited exactly for
|
|
2
2
|
// what is used. The package's code is MIT; these assets are not: see NOTICE.md.
|
|
3
3
|
const LICENCE_URL = "https://creativecommons.org/licenses/by/4.0/";
|
|
4
|
+
/** One of NASA's own models: its source named, with no suggestion that NASA endorses anything. See NOTICE.md for what this rests on. */
|
|
5
|
+
const nasa = (title, slug, changes) => ({
|
|
6
|
+
title,
|
|
7
|
+
creator: "NASA",
|
|
8
|
+
creatorUrl: "https://science.nasa.gov/3d-resources/",
|
|
9
|
+
sourceUrl: `https://data.nasa.gov/dataset/${slug}`,
|
|
10
|
+
licence: "Public domain (NASA)",
|
|
11
|
+
licenceUrl: "https://www.nasa.gov/nasa-brand-center/images-and-media/",
|
|
12
|
+
changes,
|
|
13
|
+
});
|
|
4
14
|
export const MODEL_CREDITS = {
|
|
5
15
|
"clarence365-block3": {
|
|
6
16
|
title: "SpaceX Starship Block 3",
|
|
@@ -74,6 +84,25 @@ export const MODEL_CREDITS = {
|
|
|
74
84
|
licenceUrl: LICENCE_URL,
|
|
75
85
|
changes: "The wordmark and logo removed with the texture that carried them; rescaled to the sourced height; reduced from 55,455 triangles; materials merged and renamed.",
|
|
76
86
|
},
|
|
87
|
+
"smithsonian-discovery": {
|
|
88
|
+
title: "Orbiter, Space Shuttle, OV-103, Discovery",
|
|
89
|
+
creator: "Smithsonian Institution, National Air and Space Museum",
|
|
90
|
+
creatorUrl: "https://3d.si.edu/",
|
|
91
|
+
sourceUrl: "https://3d.si.edu/object/3d/orbiter-space-shuttle-ov-103-discovery:d8c636ce-4ebc-11ea-b77f-2e728ce88125",
|
|
92
|
+
licence: "CC0 1.0",
|
|
93
|
+
licenceUrl: "https://creativecommons.org/publicdomain/zero/1.0/",
|
|
94
|
+
changes: "The agency mark, the flags, the country's name and the orbiter's name painted out of its picture; reduced from 150,000 triangles; its pictures shrunk; stood upright and scaled to the sourced length; materials renamed.",
|
|
95
|
+
},
|
|
96
|
+
"nasa-shuttle-hi-res": nasa("Shuttle (Hi-Res)", "nasa-3d-models-shuttle-hi-res", "The agency mark, the flag, the country's name and the rest of the lettering painted out of its pictures; its open bay closed with its own doors and what was inside it left out; its engines put in place; reduced; rescaled to the sourced length; stood upright; its materials made into one picture."),
|
|
97
|
+
"nasa-shuttle-parts": nasa("Shuttle Parts (Hi-Res)", "nasa-3d-models-shuttle-parts-hi-res", "Its external tank and solid rocket booster only; rescaled to the sourced lengths; stood upright; its materials made into one picture; its pictures shrunk."),
|
|
98
|
+
"nasa-lunar-module": nasa("Apollo Lunar Module", "nasa-3d-models-apollo-lunar-module", "The flag and the country's name removed with the two plates that carried them; reduced from 97,588 triangles; rescaled to the sourced height; separated into its two stages; its materials made into one picture."),
|
|
99
|
+
"nasa-apollo-soyuz": nasa("Apollo Soyuz", "nasa-3d-models-apollo-soyuz", "The flags and the countries' names painted out of its pictures; reduced from 32,996 triangles; rescaled to the sourced lengths and widths; stood on end; separated into its three craft; its materials made into one picture."),
|
|
100
|
+
"nasa-gemini": nasa("Gemini", "nasa-3d-models-gemini", "The flag and the country's name painted out of its picture; reduced from 38,840 triangles; rescaled to the sourced length; separated into adapter and capsule; its materials made into one picture."),
|
|
101
|
+
"nasa-friendship-7": nasa("Friendship 7", "nasa-3d-models-friendship-7", "Reduced from 164,622 triangles; rescaled to the sourced length and width; its materials, which NASA's copy leaves all one grey, given plain colours judged from photographs. It carried no mark to remove."),
|
|
102
|
+
"nasa-jupiter-c": nasa("Jupiter-C", "nasa-3d-models-jupiter-c", "The lettering removed with the two pictures that carried it, which are plain white here; rescaled to the sourced height; its materials made into one picture."),
|
|
103
|
+
"nasa-iss": nasa("ISS", "nasa-3d-models-iss", "Reduced from 174,440 triangles; a ball of stray pieces far above it left out; rescaled to the sourced length; its materials, which NASA's copy leaves all one grey, given plain colours judged from photographs. It carried no mark to remove."),
|
|
104
|
+
"nasa-hubble": nasa("Hubble Space Telescope", "nasa-3d-models-hubble-space-telescope", "A lettered plate painted out of its picture; rescaled to the sourced length; its materials made into one picture."),
|
|
105
|
+
// new rows go here
|
|
77
106
|
};
|
|
78
107
|
/** One credit as a line of text. */
|
|
79
108
|
export function creditLine(id) {
|
package/dist/data/dragon.js
CHANGED
|
@@ -42,4 +42,39 @@ export const DRAGON_VARIANTS = [
|
|
|
42
42
|
more: {},
|
|
43
43
|
},
|
|
44
44
|
},
|
|
45
|
+
{
|
|
46
|
+
id: "cargo-dragon-2",
|
|
47
|
+
rocket: "dragon",
|
|
48
|
+
name: "Cargo Dragon 2",
|
|
49
|
+
status: "flown",
|
|
50
|
+
firstFlight: said("2020-12-06", D2, { note: "CRS-21." }),
|
|
51
|
+
slots: ["trunk", "capsule"],
|
|
52
|
+
note: "The cargo version of Dragon 2. Its article gives one set of sizes for both versions, and says Cargo Dragon lacks Crew Dragon's seats, controls, life support, windows and SuperDraco abort engines. Painted by this package's own code: the licensed model shows Crew Dragon, with windows, and no model stands in for another version.",
|
|
53
|
+
facts: {
|
|
54
|
+
height: m(8.1, D2, { note: "Capsule with trunk: the article's one figure for both versions." }),
|
|
55
|
+
diameter: m(4, D2),
|
|
56
|
+
parts: {
|
|
57
|
+
trunk: blank("No source read here gives the trunk alone."),
|
|
58
|
+
capsule: m(4.5, D2),
|
|
59
|
+
},
|
|
60
|
+
engines: { capsule: said("16 Draco thrusters", D2, { note: "It has no SuperDraco abort engines." }) },
|
|
61
|
+
more: {},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "crew-dragon-inside",
|
|
66
|
+
rocket: "dragon",
|
|
67
|
+
name: "Inside Crew Dragon, cut open",
|
|
68
|
+
status: "flown",
|
|
69
|
+
firstFlight: said("2019-03-02", D2, { note: "Uncrewed test flight. First crewed flight 2020-05-30." }),
|
|
70
|
+
slots: ["capsule"],
|
|
71
|
+
note: "The capsule cut in half, with a person of 1.8 m for scale. Its article gives four seats, the three-screen panel over the two centre seats, the cargo below them and 9.3 cubic metres under pressure. No source read here gives those parts' sizes or places: they are judged from one published picture of the cabin.",
|
|
72
|
+
facts: {
|
|
73
|
+
height: m(4.5, D2, { note: "The capsule." }),
|
|
74
|
+
diameter: m(4, D2),
|
|
75
|
+
parts: { capsule: m(4.5, D2) },
|
|
76
|
+
engines: {},
|
|
77
|
+
more: { seats: { value: 4, source: D2, note: "In normal operations; 7 in an emergency evacuation." }, pressurized: { value: "9.3 cubic metres", source: D2 } },
|
|
78
|
+
},
|
|
79
|
+
},
|
|
45
80
|
];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Electron as its article gives it. Its stages and fairing add to a metre less than the whole, and no source read here says what that metre is: it is drawn as the stages' interstage.
|
|
2
|
+
import { blank } from "./types.js";
|
|
3
|
+
const S = "wikipedia-electron";
|
|
4
|
+
const m = (value, source, extra = {}) => ({ value, source, ...extra });
|
|
5
|
+
const said = (value, source, extra = {}) => ({ value, source, ...extra });
|
|
6
|
+
export const ELECTRON_VARIANTS = [
|
|
7
|
+
{
|
|
8
|
+
id: "electron",
|
|
9
|
+
rocket: "electron",
|
|
10
|
+
name: "Electron",
|
|
11
|
+
status: "flown",
|
|
12
|
+
firstFlight: said("2017-05-25", S),
|
|
13
|
+
slots: ["first-stage", "adapter", "second-stage", "fairing"],
|
|
14
|
+
note: "Carbon composite, as its article says, and painted black here from photographs. Its stages and fairing add to 17 m against a whole of 18 m, and no source read here says what the difference is: it is drawn as an interstage. No name or mark is drawn.",
|
|
15
|
+
facts: {
|
|
16
|
+
height: m(18, S),
|
|
17
|
+
diameter: m(1.2, S),
|
|
18
|
+
parts: { "first-stage": m(12.1, S), adapter: blank("No source read here gives it: it is what the whole leaves."), "second-stage": m(2.4, S), fairing: m(2.5, S) },
|
|
19
|
+
engines: { "first-stage": said("9 Rutherford", S), "second-stage": said("1 Rutherford", S) },
|
|
20
|
+
more: {},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
];
|
package/dist/data/falcon.js
CHANGED
|
@@ -61,9 +61,9 @@ export const FALCON_9_VARIANTS = [
|
|
|
61
61
|
status: "flown",
|
|
62
62
|
firstFlight: said("2015-12-22", F9, { note: "OG2 Flight 2." }),
|
|
63
63
|
slots: ["first-stage", "second-stage", "fairing"],
|
|
64
|
-
note: "Blocks 3 and 4 are part of Full Thrust
|
|
64
|
+
note: "Blocks 3 and 4 are part of Full Thrust. Block 4 was a transition between them and Block 5, with incremental thrust upgrades; its full design first flew on 2017-08-14. Neither the Falcon 9 article nor the Full Thrust article gives it sizes of its own, so it is not listed apart.",
|
|
65
65
|
facts: {
|
|
66
|
-
height: m(69.8, F9, { note: FAIRING_NOTE, others: [{ value: 70, source: F9, note: "The same article's table of versions rounds to 70 m." }] }),
|
|
66
|
+
height: m(69.8, F9, { note: FAIRING_NOTE, others: [{ value: 70, source: F9, note: "The same article's table of versions rounds to 70 m." }, { value: 71, source: "wikipedia-falcon-9-ft", note: "The Full Thrust article's infobox says 71 m with the fairing, citing SpaceX's user's guide; its own Block 5 box says 69.8 m." }] }),
|
|
67
67
|
diameter: m(3.7, F9),
|
|
68
68
|
parts: { "first-stage": FIRST_STAGE_WITH_INTERSTAGE, "second-stage": SECOND_STAGE, fairing: FAIRING },
|
|
69
69
|
engines: { "first-stage": said("9 Merlin 1D+", F9), "second-stage": said("1 Merlin 1D Vacuum", F9) },
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Falcon 1 as the sources give it: SpaceX's own user's guide (2008), read directly, and Wikipedia's article, which disagree on its height. No source read here gives a stage's own length.
|
|
2
|
+
import { blank } from "./types.js";
|
|
3
|
+
const G = "spacex-falcon-1-guide";
|
|
4
|
+
const W = "wikipedia-falcon-1";
|
|
5
|
+
const m = (value, source, extra = {}) => ({ value, source, ...extra });
|
|
6
|
+
const said = (value, source, extra = {}) => ({ value, source, ...extra });
|
|
7
|
+
const NO_STAGE = "No source read here gives this stage's own length: it is drawn in proportion to the whole, judged from photographs.";
|
|
8
|
+
export const FALCON_1_VARIANTS = [
|
|
9
|
+
{
|
|
10
|
+
id: "falcon-1",
|
|
11
|
+
rocket: "falcon-1",
|
|
12
|
+
name: "Falcon 1",
|
|
13
|
+
status: "flown",
|
|
14
|
+
firstFlight: said("2006-03-24", W, { note: "The first flight failed. The first to reach orbit was the fourth, on 2008-09-28, and the last the fifth, on 2009-07-14." }),
|
|
15
|
+
slots: ["first-stage", "second-stage", "fairing"],
|
|
16
|
+
note: "One Merlin below and one Kestrel above, in the aluminium fairing the guide gives, narrower than the stages. Its first two flights used the Merlin 1A and its last three the Merlin 1C.",
|
|
17
|
+
facts: {
|
|
18
|
+
height: m(21.3, G, { note: "70 feet, both stages with fairing and interstage.", others: [{ value: 21, source: W, note: "The article's infobox rounds to 21 m." }, { value: 22.25, source: W, note: "The same article's table of versions says 21.3 m for the Merlin 1A and 22.25 m for the Merlin 1C, with no reason given. SpaceX's guide, written in the Merlin 1C's time, says 70 feet." }] }),
|
|
19
|
+
diameter: m(1.7, W, { others: [{ value: 1.68, source: G, note: "The guide says 5.5 feet, which is 1.68 m." }] }),
|
|
20
|
+
parts: {
|
|
21
|
+
"first-stage": blank(NO_STAGE),
|
|
22
|
+
"second-stage": blank(NO_STAGE),
|
|
23
|
+
fairing: m(3.5, G, { note: "Figure 2-1 of the guide, with the 0.3 m below the separation plane. 1.54 m across." }),
|
|
24
|
+
},
|
|
25
|
+
engines: { "first-stage": said("1 Merlin 1A, then 1 Merlin 1C", W), "second-stage": said("1 Kestrel", W) },
|
|
26
|
+
more: { fairingDiameter: m(1.54, G) },
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "falcon-1e",
|
|
31
|
+
rocket: "falcon-1",
|
|
32
|
+
name: "Falcon 1e (announced, never flown)",
|
|
33
|
+
status: "announced",
|
|
34
|
+
firstFlight: blank("It was announced and never flew: Falcon 1 was retired in favour of Falcon 9.", "Never flew"),
|
|
35
|
+
slots: ["first-stage", "second-stage", "fairing"],
|
|
36
|
+
note: "An enhanced Falcon 1 that SpaceX's 2008 guide describes and that was never built to fly. Its figures are announced plans. It has a longer first stage and a wider, ogive composite fairing.",
|
|
37
|
+
facts: {
|
|
38
|
+
height: m(27.4, G, { brief: "announced", note: "90 feet.", others: [{ value: 26.83, source: W, note: "The article's table of versions says 26.83 m for the proposed Falcon 1e." }] }),
|
|
39
|
+
diameter: m(1.7, W, { brief: "announced" }),
|
|
40
|
+
parts: {
|
|
41
|
+
"first-stage": blank(NO_STAGE),
|
|
42
|
+
"second-stage": blank(NO_STAGE),
|
|
43
|
+
fairing: m(4.4, G, { brief: "announced", note: "Figure 2-2 of the guide, 1.7 m across." }),
|
|
44
|
+
},
|
|
45
|
+
engines: { "first-stage": said("1 Merlin 1C", W, { brief: "announced" }), "second-stage": said("1 Kestrel", W, { brief: "announced" }) },
|
|
46
|
+
more: { fairingDiameter: m(1.7, G, { brief: "announced" }) },
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
/** A fairing's own width, narrower than Falcon 1's stages. */
|
|
51
|
+
export const variantOfFairing = (id) => FALCON_1_VARIANTS.find((variant) => variant.id === id)?.facts.more.fairingDiameter;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SourceId } from "./sources.ts";
|
|
2
|
+
export interface LoggedFlight {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
rocket: string;
|
|
6
|
+
/** The variant in this package that shows it. */
|
|
7
|
+
variant: string;
|
|
8
|
+
/** UTC, as the source gives it. */
|
|
9
|
+
date: string;
|
|
10
|
+
launch: "Success" | "Failure";
|
|
11
|
+
vehicles?: string;
|
|
12
|
+
/** The source's own words on how it came out. */
|
|
13
|
+
outcome: string;
|
|
14
|
+
source: SourceId;
|
|
15
|
+
}
|
|
16
|
+
export declare const FLIGHT_LOG: readonly LoggedFlight[];
|
|
17
|
+
/** A rocket's flights, in order. */
|
|
18
|
+
export declare const flightLogOf: (rocket: string) => readonly LoggedFlight[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const FLIGHT_LOG = [
|
|
2
|
+
{ id: "falcon-1-flight-1", name: "Falcon 1, flight 1", rocket: "falcon-1", variant: "falcon-1", date: "2006-03-24", launch: "Failure", outcome: "Engine failure at T+33 seconds, and the vehicle was lost.", source: "wikipedia-falcon-1" },
|
|
3
|
+
{ id: "falcon-1-flight-2", name: "Falcon 1, flight 2", rocket: "falcon-1", variant: "falcon-1", date: "2007-03-21", launch: "Failure", outcome: "Reached 289 km and did not reach orbit: an oscillation of the second stage, and an early engine shutdown.", source: "wikipedia-falcon-1" },
|
|
4
|
+
{ id: "falcon-1-flight-3", name: "Falcon 1, flight 3", rocket: "falcon-1", variant: "falcon-1", date: "2008-08-03", launch: "Failure", outcome: "The first stage recontacted the second at separation.", source: "wikipedia-falcon-1" },
|
|
5
|
+
{ id: "falcon-1-flight-4", name: "Falcon 1, flight 4", rocket: "falcon-1", variant: "falcon-1", date: "2008-09-28", launch: "Success", outcome: "The first privately developed fully liquid-fuelled rocket to reach orbit, carrying a mass simulator.", source: "wikipedia-falcon-1" },
|
|
6
|
+
{ id: "falcon-1-flight-5", name: "Falcon 1, flight 5", rocket: "falcon-1", variant: "falcon-1", date: "2009-07-14", launch: "Success", outcome: "Its first commercial flight, placing RazakSAT in orbit.", source: "wikipedia-falcon-1" },
|
|
7
|
+
{ id: "starship-flight-1", name: "Starship flight 1", rocket: "starship", variant: "v1-flight1", date: "2023-04-20", launch: "Failure", vehicles: "Booster B7, Ship S24", outcome: "Booster: Precluded. Ship: Precluded.", source: "wikipedia-launches" },
|
|
8
|
+
{ id: "starship-flight-2", name: "Starship flight 2", rocket: "starship", variant: "v1", date: "2023-11-18", launch: "Failure", vehicles: "Booster B9, Ship S25", outcome: "Booster: Failure (gulf). Ship: Precluded.", source: "wikipedia-launches" },
|
|
9
|
+
{ id: "starship-flight-3", name: "Starship flight 3", rocket: "starship", variant: "v1", date: "2024-03-14", launch: "Success", vehicles: "Booster B10, Ship S28", outcome: "Booster: Failure (gulf). Ship: Failure (ocean).", source: "wikipedia-launches" },
|
|
10
|
+
{ id: "starship-flight-4", name: "Starship flight 4", rocket: "starship", variant: "v1", date: "2024-06-06", launch: "Success", vehicles: "Booster B11, Ship S29", outcome: "Booster: Controlled (gulf). Ship: Controlled (ocean).", source: "wikipedia-launches" },
|
|
11
|
+
{ id: "starship-flight-5", name: "Starship flight 5", rocket: "starship", variant: "v1", date: "2024-10-13", launch: "Success", vehicles: "Booster B12, Ship S30", outcome: "Booster: Caught (OLP-1). Ship: Controlled (ocean).", source: "wikipedia-launches" },
|
|
12
|
+
{ id: "starship-flight-6", name: "Starship flight 6", rocket: "starship", variant: "v1", date: "2024-11-19", launch: "Success", vehicles: "Booster B13, Ship S31", outcome: "Booster: Catch aborted, diverted to the ocean. Ship: Controlled (ocean).", source: "wikipedia-launches" },
|
|
13
|
+
{ id: "starship-flight-7", name: "Starship flight 7", rocket: "starship", variant: "v2", date: "2025-01-16", launch: "Failure", vehicles: "Booster B14-1, Ship S33", outcome: "Booster: Caught (OLP-1). Ship: Precluded.", source: "wikipedia-launches" },
|
|
14
|
+
{ id: "starship-flight-8", name: "Starship flight 8", rocket: "starship", variant: "v2", date: "2025-03-06", launch: "Failure", vehicles: "Booster B15-1, Ship S34", outcome: "Booster: Caught (OLP-1). Ship: Precluded.", source: "wikipedia-launches" },
|
|
15
|
+
{ id: "starship-flight-9", name: "Starship flight 9", rocket: "starship", variant: "v2", date: "2025-05-27", launch: "Failure", vehicles: "Booster B14-2, Ship S35", outcome: "Booster: Failure (gulf). Ship: Failure (ocean).", source: "wikipedia-launches" },
|
|
16
|
+
{ id: "starship-flight-10", name: "Starship flight 10", rocket: "starship", variant: "v2", date: "2025-08-26", launch: "Success", vehicles: "Booster B16, Ship S37", outcome: "Booster: Controlled (gulf). Ship: Controlled (ocean).", source: "wikipedia-launches" },
|
|
17
|
+
{ id: "starship-flight-11", name: "Starship flight 11", rocket: "starship", variant: "v2", date: "2025-10-13", launch: "Success", vehicles: "Booster B15-2, Ship S38", outcome: "Booster: Controlled (gulf). Ship: Controlled (ocean).", source: "wikipedia-launches" },
|
|
18
|
+
{ id: "starship-flight-12", name: "Starship flight 12", rocket: "starship", variant: "v3", date: "2026-05-22", launch: "Success", vehicles: "Booster B19, Ship S39", outcome: "Booster: Failure (gulf). Ship: Controlled (ocean).", source: "wikipedia-launches" },
|
|
19
|
+
{ id: "starship-flight-13", name: "Starship flight 13", rocket: "starship", variant: "v3", date: "2026-07-24", launch: "Success", vehicles: "Booster B20, Ship S40", outcome: "Booster: Failure (gulf). Ship: Controlled (ocean).", source: "wikipedia-launches" },
|
|
20
|
+
{ id: "starship-flight-14", name: "Starship flight 14", rocket: "starship", variant: "v3", date: "2026-09-28", launch: "Success", vehicles: "Booster B21, Ship S41", outcome: "Booster: Controlled (gulf). Ship: Controlled (ocean).", source: "wikipedia-launches" },
|
|
21
|
+
];
|
|
22
|
+
/** A rocket's flights, in order. */
|
|
23
|
+
export const flightLogOf = (rocket) => FLIGHT_LOG.filter((flight) => flight.rocket === rocket);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type Figure } from "./types.ts";
|
|
2
|
+
import type { SourceId } from "./sources.ts";
|
|
3
|
+
/** How a part stands in the picture at a phase. A picture, not a measurement: `dx` and `dy` are in heights of the whole vehicle. */
|
|
4
|
+
export interface PartPose {
|
|
5
|
+
dx?: number;
|
|
6
|
+
dy?: number;
|
|
7
|
+
/** Turned this many degrees from upright. */
|
|
8
|
+
pitch?: number;
|
|
9
|
+
/** Its base stands on the ground. */
|
|
10
|
+
rest?: boolean;
|
|
11
|
+
/** It has left the picture. */
|
|
12
|
+
gone?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** How many engines of a part burn. `drawn` says how many flames to draw where no page says how many burned. */
|
|
15
|
+
export interface FlightBurn {
|
|
16
|
+
engines: Figure;
|
|
17
|
+
drawn?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface FlightPhase {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
/** What happens, in a line. */
|
|
23
|
+
what: string;
|
|
24
|
+
/** Seconds from the flight's zero, on the page's own clock. */
|
|
25
|
+
at: Figure;
|
|
26
|
+
burns: Readonly<Record<string, FlightBurn>>;
|
|
27
|
+
pose: Readonly<Record<string, PartPose>>;
|
|
28
|
+
/** How far the ground has fallen from under the rocket, in heights of the whole vehicle. A picture. */
|
|
29
|
+
ground: number;
|
|
30
|
+
/** How much smoke and water stands on the pad, 0 to 1. A picture. */
|
|
31
|
+
smoke?: number;
|
|
32
|
+
/** 0 near the ground, 1 high up, where a flame fans out. A picture. */
|
|
33
|
+
air?: number;
|
|
34
|
+
altitude?: Figure<string>;
|
|
35
|
+
speed?: Figure<string>;
|
|
36
|
+
}
|
|
37
|
+
export interface Flight {
|
|
38
|
+
id: string;
|
|
39
|
+
rocket: string;
|
|
40
|
+
variant: string;
|
|
41
|
+
name: string;
|
|
42
|
+
/** Whose timing it is, and whether it was what was planned or what happened. */
|
|
43
|
+
basis: string;
|
|
44
|
+
source: SourceId;
|
|
45
|
+
/** What the picture leaves out. */
|
|
46
|
+
note?: string;
|
|
47
|
+
phases: readonly FlightPhase[];
|
|
48
|
+
}
|
|
49
|
+
export declare const FLIGHTS: readonly Flight[];
|