@johnmorrisdotca/uchusen-rockets 0.2.1 → 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.
Files changed (891) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSES/ODbL-1.0.txt +540 -0
  3. package/NOTICE.md +56 -6
  4. package/README.md +49 -14
  5. package/dist/assets/apollo-soyuz-apollo-soyuz-apart.painted.svg +1 -0
  6. package/dist/assets/apollo-soyuz-apollo-soyuz-apart.svg +1 -0
  7. package/dist/assets/apollo-soyuz-apollo-soyuz-apart.thick.svg +1 -0
  8. package/dist/assets/apollo-soyuz-apollo-soyuz-csm.glb +0 -0
  9. package/dist/assets/apollo-soyuz-apollo-soyuz-csm.painted.svg +1 -0
  10. package/dist/assets/apollo-soyuz-apollo-soyuz-csm.svg +1 -0
  11. package/dist/assets/apollo-soyuz-apollo-soyuz-csm.thick.svg +1 -0
  12. package/dist/assets/apollo-soyuz-apollo-soyuz-docking-module.glb +0 -0
  13. package/dist/assets/apollo-soyuz-apollo-soyuz-docking-module.painted.svg +1 -0
  14. package/dist/assets/apollo-soyuz-apollo-soyuz-docking-module.svg +1 -0
  15. package/dist/assets/apollo-soyuz-apollo-soyuz-docking-module.thick.svg +1 -0
  16. package/dist/assets/apollo-soyuz-apollo-soyuz-soyuz.glb +0 -0
  17. package/dist/assets/apollo-soyuz-apollo-soyuz-soyuz.painted.svg +1 -0
  18. package/dist/assets/apollo-soyuz-apollo-soyuz-soyuz.svg +1 -0
  19. package/dist/assets/apollo-soyuz-apollo-soyuz-soyuz.thick.svg +1 -0
  20. package/dist/assets/apollo-soyuz-apollo-soyuz.glb +0 -0
  21. package/dist/assets/apollo-soyuz-apollo-soyuz.painted.svg +1 -0
  22. package/dist/assets/apollo-soyuz-apollo-soyuz.svg +1 -0
  23. package/dist/assets/apollo-soyuz-apollo-soyuz.thick.svg +1 -0
  24. package/dist/assets/dragon-cargo-dragon-2-apart.painted.svg +1 -0
  25. package/dist/assets/dragon-cargo-dragon-2-apart.svg +1 -0
  26. package/dist/assets/dragon-cargo-dragon-2-apart.thick.svg +1 -0
  27. package/dist/assets/dragon-cargo-dragon-2-capsule.glb +0 -0
  28. package/dist/assets/dragon-cargo-dragon-2-capsule.painted.svg +1 -0
  29. package/dist/assets/dragon-cargo-dragon-2-capsule.svg +1 -0
  30. package/dist/assets/dragon-cargo-dragon-2-capsule.thick.svg +1 -0
  31. package/dist/assets/dragon-cargo-dragon-2-trunk.glb +0 -0
  32. package/dist/assets/dragon-cargo-dragon-2-trunk.painted.svg +1 -0
  33. package/dist/assets/dragon-cargo-dragon-2-trunk.svg +1 -0
  34. package/dist/assets/dragon-cargo-dragon-2-trunk.thick.svg +1 -0
  35. package/dist/assets/dragon-cargo-dragon-2.glb +0 -0
  36. package/dist/assets/dragon-cargo-dragon-2.painted.svg +1 -0
  37. package/dist/assets/dragon-cargo-dragon-2.svg +1 -0
  38. package/dist/assets/dragon-cargo-dragon-2.thick.svg +1 -0
  39. package/dist/assets/dragon-crew-dragon-inside.glb +0 -0
  40. package/dist/assets/dragon-crew-dragon-inside.painted.svg +1 -0
  41. package/dist/assets/dragon-crew-dragon-inside.svg +1 -0
  42. package/dist/assets/dragon-crew-dragon-inside.thick.svg +1 -0
  43. package/dist/assets/dragon-dragon-1-apart.painted.svg +1 -1
  44. package/dist/assets/dragon-dragon-1-apart.svg +1 -1
  45. package/dist/assets/dragon-dragon-1-apart.thick.svg +1 -1
  46. package/dist/assets/dragon-dragon-1-capsule.painted.svg +1 -1
  47. package/dist/assets/dragon-dragon-1-capsule.svg +1 -1
  48. package/dist/assets/dragon-dragon-1-capsule.thick.svg +1 -1
  49. package/dist/assets/dragon-dragon-1-trunk.painted.svg +1 -1
  50. package/dist/assets/dragon-dragon-1-trunk.svg +1 -1
  51. package/dist/assets/dragon-dragon-1-trunk.thick.svg +1 -1
  52. package/dist/assets/dragon-dragon-1.painted.svg +1 -1
  53. package/dist/assets/dragon-dragon-1.svg +1 -1
  54. package/dist/assets/dragon-dragon-1.thick.svg +1 -1
  55. package/dist/assets/dragon-dragon-2-apart.painted.svg +1 -1
  56. package/dist/assets/dragon-dragon-2-apart.svg +1 -1
  57. package/dist/assets/dragon-dragon-2-apart.thick.svg +1 -1
  58. package/dist/assets/dragon-dragon-2-capsule.painted.svg +1 -1
  59. package/dist/assets/dragon-dragon-2-capsule.svg +1 -1
  60. package/dist/assets/dragon-dragon-2-capsule.thick.svg +1 -1
  61. package/dist/assets/dragon-dragon-2-trunk.painted.svg +1 -1
  62. package/dist/assets/dragon-dragon-2-trunk.svg +1 -1
  63. package/dist/assets/dragon-dragon-2-trunk.thick.svg +1 -1
  64. package/dist/assets/dragon-dragon-2.painted.svg +1 -1
  65. package/dist/assets/dragon-dragon-2.svg +1 -1
  66. package/dist/assets/dragon-dragon-2.thick.svg +1 -1
  67. package/dist/assets/droneship-asog-apart.painted.svg +1 -0
  68. package/dist/assets/droneship-asog-apart.svg +1 -0
  69. package/dist/assets/droneship-asog-apart.thick.svg +1 -0
  70. package/dist/assets/droneship-asog-deck.glb +0 -0
  71. package/dist/assets/droneship-asog-deck.painted.svg +1 -0
  72. package/dist/assets/droneship-asog-deck.svg +1 -0
  73. package/dist/assets/droneship-asog-deck.thick.svg +1 -0
  74. package/dist/assets/droneship-asog-landed.glb +0 -0
  75. package/dist/assets/droneship-asog-landed.painted.svg +1 -0
  76. package/dist/assets/droneship-asog-landed.svg +1 -0
  77. package/dist/assets/droneship-asog-landed.thick.svg +1 -0
  78. package/dist/assets/droneship-asog.glb +0 -0
  79. package/dist/assets/droneship-asog.painted.svg +1 -0
  80. package/dist/assets/droneship-asog.svg +1 -0
  81. package/dist/assets/droneship-asog.thick.svg +1 -0
  82. package/dist/assets/droneship-jrti-apart.painted.svg +1 -0
  83. package/dist/assets/droneship-jrti-apart.svg +1 -0
  84. package/dist/assets/droneship-jrti-apart.thick.svg +1 -0
  85. package/dist/assets/droneship-jrti-deck.glb +0 -0
  86. package/dist/assets/droneship-jrti-deck.painted.svg +1 -0
  87. package/dist/assets/droneship-jrti-deck.svg +1 -0
  88. package/dist/assets/droneship-jrti-deck.thick.svg +1 -0
  89. package/dist/assets/droneship-jrti-landed.glb +0 -0
  90. package/dist/assets/droneship-jrti-landed.painted.svg +1 -0
  91. package/dist/assets/droneship-jrti-landed.svg +1 -0
  92. package/dist/assets/droneship-jrti-landed.thick.svg +1 -0
  93. package/dist/assets/droneship-jrti.glb +0 -0
  94. package/dist/assets/droneship-jrti.painted.svg +1 -0
  95. package/dist/assets/droneship-jrti.svg +1 -0
  96. package/dist/assets/droneship-jrti.thick.svg +1 -0
  97. package/dist/assets/droneship-ocisly-apart.painted.svg +1 -0
  98. package/dist/assets/droneship-ocisly-apart.svg +1 -0
  99. package/dist/assets/droneship-ocisly-apart.thick.svg +1 -0
  100. package/dist/assets/droneship-ocisly-deck.glb +0 -0
  101. package/dist/assets/droneship-ocisly-deck.painted.svg +1 -0
  102. package/dist/assets/droneship-ocisly-deck.svg +1 -0
  103. package/dist/assets/droneship-ocisly-deck.thick.svg +1 -0
  104. package/dist/assets/droneship-ocisly-landed.glb +0 -0
  105. package/dist/assets/droneship-ocisly-landed.painted.svg +1 -0
  106. package/dist/assets/droneship-ocisly-landed.svg +1 -0
  107. package/dist/assets/droneship-ocisly-landed.thick.svg +1 -0
  108. package/dist/assets/droneship-ocisly.glb +0 -0
  109. package/dist/assets/droneship-ocisly.painted.svg +1 -0
  110. package/dist/assets/droneship-ocisly.svg +1 -0
  111. package/dist/assets/droneship-ocisly.thick.svg +1 -0
  112. package/dist/assets/electron-electron-adapter.glb +0 -0
  113. package/dist/assets/electron-electron-adapter.painted.svg +1 -0
  114. package/dist/assets/electron-electron-adapter.svg +1 -0
  115. package/dist/assets/electron-electron-adapter.thick.svg +1 -0
  116. package/dist/assets/electron-electron-apart.painted.svg +1 -0
  117. package/dist/assets/electron-electron-apart.svg +1 -0
  118. package/dist/assets/electron-electron-apart.thick.svg +1 -0
  119. package/dist/assets/electron-electron-fairing.glb +0 -0
  120. package/dist/assets/electron-electron-fairing.painted.svg +1 -0
  121. package/dist/assets/electron-electron-fairing.svg +1 -0
  122. package/dist/assets/electron-electron-fairing.thick.svg +1 -0
  123. package/dist/assets/electron-electron-first-stage.glb +0 -0
  124. package/dist/assets/electron-electron-first-stage.painted.svg +1 -0
  125. package/dist/assets/electron-electron-first-stage.svg +1 -0
  126. package/dist/assets/electron-electron-first-stage.thick.svg +1 -0
  127. package/dist/assets/electron-electron-second-stage.glb +0 -0
  128. package/dist/assets/electron-electron-second-stage.painted.svg +1 -0
  129. package/dist/assets/electron-electron-second-stage.svg +1 -0
  130. package/dist/assets/electron-electron-second-stage.thick.svg +1 -0
  131. package/dist/assets/electron-electron.glb +0 -0
  132. package/dist/assets/electron-electron.painted.svg +1 -0
  133. package/dist/assets/electron-electron.svg +1 -0
  134. package/dist/assets/electron-electron.thick.svg +1 -0
  135. package/dist/assets/falcon-1-falcon-1-apart.painted.svg +1 -0
  136. package/dist/assets/falcon-1-falcon-1-apart.svg +1 -0
  137. package/dist/assets/falcon-1-falcon-1-apart.thick.svg +1 -0
  138. package/dist/assets/falcon-1-falcon-1-fairing.glb +0 -0
  139. package/dist/assets/falcon-1-falcon-1-fairing.painted.svg +1 -0
  140. package/dist/assets/falcon-1-falcon-1-fairing.svg +1 -0
  141. package/dist/assets/falcon-1-falcon-1-fairing.thick.svg +1 -0
  142. package/dist/assets/falcon-1-falcon-1-first-stage.glb +0 -0
  143. package/dist/assets/falcon-1-falcon-1-first-stage.painted.svg +1 -0
  144. package/dist/assets/falcon-1-falcon-1-first-stage.svg +1 -0
  145. package/dist/assets/falcon-1-falcon-1-first-stage.thick.svg +1 -0
  146. package/dist/assets/falcon-1-falcon-1-second-stage.glb +0 -0
  147. package/dist/assets/falcon-1-falcon-1-second-stage.painted.svg +1 -0
  148. package/dist/assets/falcon-1-falcon-1-second-stage.svg +1 -0
  149. package/dist/assets/falcon-1-falcon-1-second-stage.thick.svg +1 -0
  150. package/dist/assets/falcon-1-falcon-1.glb +0 -0
  151. package/dist/assets/falcon-1-falcon-1.painted.svg +1 -0
  152. package/dist/assets/falcon-1-falcon-1.svg +1 -0
  153. package/dist/assets/falcon-1-falcon-1.thick.svg +1 -0
  154. package/dist/assets/falcon-1-falcon-1e-apart.painted.svg +1 -0
  155. package/dist/assets/falcon-1-falcon-1e-apart.svg +1 -0
  156. package/dist/assets/falcon-1-falcon-1e-apart.thick.svg +1 -0
  157. package/dist/assets/falcon-1-falcon-1e-fairing.glb +0 -0
  158. package/dist/assets/falcon-1-falcon-1e-fairing.painted.svg +1 -0
  159. package/dist/assets/falcon-1-falcon-1e-fairing.svg +1 -0
  160. package/dist/assets/falcon-1-falcon-1e-fairing.thick.svg +1 -0
  161. package/dist/assets/falcon-1-falcon-1e-first-stage.glb +0 -0
  162. package/dist/assets/falcon-1-falcon-1e-first-stage.painted.svg +1 -0
  163. package/dist/assets/falcon-1-falcon-1e-first-stage.svg +1 -0
  164. package/dist/assets/falcon-1-falcon-1e-first-stage.thick.svg +1 -0
  165. package/dist/assets/falcon-1-falcon-1e-second-stage.glb +0 -0
  166. package/dist/assets/falcon-1-falcon-1e-second-stage.painted.svg +1 -0
  167. package/dist/assets/falcon-1-falcon-1e-second-stage.svg +1 -0
  168. package/dist/assets/falcon-1-falcon-1e-second-stage.thick.svg +1 -0
  169. package/dist/assets/falcon-1-falcon-1e.glb +0 -0
  170. package/dist/assets/falcon-1-falcon-1e.painted.svg +1 -0
  171. package/dist/assets/falcon-1-falcon-1e.svg +1 -0
  172. package/dist/assets/falcon-1-falcon-1e.thick.svg +1 -0
  173. package/dist/assets/falcon-9-block-5-apart.painted.svg +1 -1
  174. package/dist/assets/falcon-9-block-5-apart.svg +1 -1
  175. package/dist/assets/falcon-9-block-5-apart.thick.svg +1 -1
  176. package/dist/assets/falcon-9-block-5-dragon-2-apart.painted.svg +1 -1
  177. package/dist/assets/falcon-9-block-5-dragon-2-apart.svg +1 -1
  178. package/dist/assets/falcon-9-block-5-dragon-2-apart.thick.svg +1 -1
  179. package/dist/assets/falcon-9-block-5-dragon-2-capsule.painted.svg +1 -1
  180. package/dist/assets/falcon-9-block-5-dragon-2-capsule.svg +1 -1
  181. package/dist/assets/falcon-9-block-5-dragon-2-capsule.thick.svg +1 -1
  182. package/dist/assets/falcon-9-block-5-dragon-2-first-stage.painted.svg +1 -1
  183. package/dist/assets/falcon-9-block-5-dragon-2-first-stage.svg +1 -1
  184. package/dist/assets/falcon-9-block-5-dragon-2-first-stage.thick.svg +1 -1
  185. package/dist/assets/falcon-9-block-5-dragon-2-second-stage.painted.svg +1 -1
  186. package/dist/assets/falcon-9-block-5-dragon-2-second-stage.svg +1 -1
  187. package/dist/assets/falcon-9-block-5-dragon-2-second-stage.thick.svg +1 -1
  188. package/dist/assets/falcon-9-block-5-dragon-2-trunk.painted.svg +1 -1
  189. package/dist/assets/falcon-9-block-5-dragon-2-trunk.svg +1 -1
  190. package/dist/assets/falcon-9-block-5-dragon-2-trunk.thick.svg +1 -1
  191. package/dist/assets/falcon-9-block-5-dragon-2.painted.svg +1 -1
  192. package/dist/assets/falcon-9-block-5-dragon-2.svg +1 -1
  193. package/dist/assets/falcon-9-block-5-dragon-2.thick.svg +1 -1
  194. package/dist/assets/falcon-9-block-5-fairing.painted.svg +1 -1
  195. package/dist/assets/falcon-9-block-5-fairing.svg +1 -1
  196. package/dist/assets/falcon-9-block-5-fairing.thick.svg +1 -1
  197. package/dist/assets/falcon-9-block-5-first-stage.painted.svg +1 -1
  198. package/dist/assets/falcon-9-block-5-first-stage.svg +1 -1
  199. package/dist/assets/falcon-9-block-5-first-stage.thick.svg +1 -1
  200. package/dist/assets/falcon-9-block-5-second-stage.painted.svg +1 -1
  201. package/dist/assets/falcon-9-block-5-second-stage.svg +1 -1
  202. package/dist/assets/falcon-9-block-5-second-stage.thick.svg +1 -1
  203. package/dist/assets/falcon-9-block-5.painted.svg +1 -1
  204. package/dist/assets/falcon-9-block-5.svg +1 -1
  205. package/dist/assets/falcon-9-block-5.thick.svg +1 -1
  206. package/dist/assets/falcon-9-ft-apart.painted.svg +1 -1
  207. package/dist/assets/falcon-9-ft-apart.svg +1 -1
  208. package/dist/assets/falcon-9-ft-apart.thick.svg +1 -1
  209. package/dist/assets/falcon-9-ft-fairing.painted.svg +1 -1
  210. package/dist/assets/falcon-9-ft-fairing.svg +1 -1
  211. package/dist/assets/falcon-9-ft-fairing.thick.svg +1 -1
  212. package/dist/assets/falcon-9-ft-first-stage.painted.svg +1 -1
  213. package/dist/assets/falcon-9-ft-first-stage.svg +1 -1
  214. package/dist/assets/falcon-9-ft-first-stage.thick.svg +1 -1
  215. package/dist/assets/falcon-9-ft-second-stage.painted.svg +1 -1
  216. package/dist/assets/falcon-9-ft-second-stage.svg +1 -1
  217. package/dist/assets/falcon-9-ft-second-stage.thick.svg +1 -1
  218. package/dist/assets/falcon-9-ft.painted.svg +1 -1
  219. package/dist/assets/falcon-9-ft.svg +1 -1
  220. package/dist/assets/falcon-9-ft.thick.svg +1 -1
  221. package/dist/assets/falcon-9-v1.0-apart.painted.svg +1 -1
  222. package/dist/assets/falcon-9-v1.0-apart.svg +1 -1
  223. package/dist/assets/falcon-9-v1.0-apart.thick.svg +1 -1
  224. package/dist/assets/falcon-9-v1.0-fairing.painted.svg +1 -1
  225. package/dist/assets/falcon-9-v1.0-fairing.svg +1 -1
  226. package/dist/assets/falcon-9-v1.0-fairing.thick.svg +1 -1
  227. package/dist/assets/falcon-9-v1.0-first-stage.painted.svg +1 -1
  228. package/dist/assets/falcon-9-v1.0-first-stage.svg +1 -1
  229. package/dist/assets/falcon-9-v1.0-first-stage.thick.svg +1 -1
  230. package/dist/assets/falcon-9-v1.0-second-stage.painted.svg +1 -1
  231. package/dist/assets/falcon-9-v1.0-second-stage.svg +1 -1
  232. package/dist/assets/falcon-9-v1.0-second-stage.thick.svg +1 -1
  233. package/dist/assets/falcon-9-v1.0.painted.svg +1 -1
  234. package/dist/assets/falcon-9-v1.0.svg +1 -1
  235. package/dist/assets/falcon-9-v1.0.thick.svg +1 -1
  236. package/dist/assets/falcon-9-v1.1-apart.painted.svg +1 -1
  237. package/dist/assets/falcon-9-v1.1-apart.svg +1 -1
  238. package/dist/assets/falcon-9-v1.1-apart.thick.svg +1 -1
  239. package/dist/assets/falcon-9-v1.1-fairing.painted.svg +1 -1
  240. package/dist/assets/falcon-9-v1.1-fairing.svg +1 -1
  241. package/dist/assets/falcon-9-v1.1-fairing.thick.svg +1 -1
  242. package/dist/assets/falcon-9-v1.1-first-stage.painted.svg +1 -1
  243. package/dist/assets/falcon-9-v1.1-first-stage.svg +1 -1
  244. package/dist/assets/falcon-9-v1.1-first-stage.thick.svg +1 -1
  245. package/dist/assets/falcon-9-v1.1-second-stage.painted.svg +1 -1
  246. package/dist/assets/falcon-9-v1.1-second-stage.svg +1 -1
  247. package/dist/assets/falcon-9-v1.1-second-stage.thick.svg +1 -1
  248. package/dist/assets/falcon-9-v1.1.painted.svg +1 -1
  249. package/dist/assets/falcon-9-v1.1.svg +1 -1
  250. package/dist/assets/falcon-9-v1.1.thick.svg +1 -1
  251. package/dist/assets/falcon-heavy-falcon-heavy-apart.painted.svg +1 -1
  252. package/dist/assets/falcon-heavy-falcon-heavy-apart.svg +1 -1
  253. package/dist/assets/falcon-heavy-falcon-heavy-apart.thick.svg +1 -1
  254. package/dist/assets/falcon-heavy-falcon-heavy-centre.painted.svg +1 -1
  255. package/dist/assets/falcon-heavy-falcon-heavy-centre.svg +1 -1
  256. package/dist/assets/falcon-heavy-falcon-heavy-centre.thick.svg +1 -1
  257. package/dist/assets/falcon-heavy-falcon-heavy-side-left.painted.svg +1 -1
  258. package/dist/assets/falcon-heavy-falcon-heavy-side-left.svg +1 -1
  259. package/dist/assets/falcon-heavy-falcon-heavy-side-left.thick.svg +1 -1
  260. package/dist/assets/falcon-heavy-falcon-heavy-side-right.painted.svg +1 -1
  261. package/dist/assets/falcon-heavy-falcon-heavy-side-right.svg +1 -1
  262. package/dist/assets/falcon-heavy-falcon-heavy-side-right.thick.svg +1 -1
  263. package/dist/assets/falcon-heavy-falcon-heavy.painted.svg +1 -1
  264. package/dist/assets/falcon-heavy-falcon-heavy.svg +1 -1
  265. package/dist/assets/falcon-heavy-falcon-heavy.thick.svg +1 -1
  266. package/dist/assets/gemini-gemini-adapter.glb +0 -0
  267. package/dist/assets/gemini-gemini-adapter.painted.svg +1 -0
  268. package/dist/assets/gemini-gemini-adapter.svg +1 -0
  269. package/dist/assets/gemini-gemini-adapter.thick.svg +1 -0
  270. package/dist/assets/gemini-gemini-apart.painted.svg +1 -0
  271. package/dist/assets/gemini-gemini-apart.svg +1 -0
  272. package/dist/assets/gemini-gemini-apart.thick.svg +1 -0
  273. package/dist/assets/gemini-gemini-capsule.glb +0 -0
  274. package/dist/assets/gemini-gemini-capsule.painted.svg +1 -0
  275. package/dist/assets/gemini-gemini-capsule.svg +1 -0
  276. package/dist/assets/gemini-gemini-capsule.thick.svg +1 -0
  277. package/dist/assets/gemini-gemini.glb +0 -0
  278. package/dist/assets/gemini-gemini.painted.svg +1 -0
  279. package/dist/assets/gemini-gemini.svg +1 -0
  280. package/dist/assets/gemini-gemini.thick.svg +1 -0
  281. package/dist/assets/grasshopper-grasshopper.painted.svg +1 -1
  282. package/dist/assets/grasshopper-grasshopper.svg +1 -1
  283. package/dist/assets/grasshopper-grasshopper.thick.svg +1 -1
  284. package/dist/assets/hubble-hubble.glb +0 -0
  285. package/dist/assets/hubble-hubble.painted.svg +1 -0
  286. package/dist/assets/hubble-hubble.svg +1 -0
  287. package/dist/assets/hubble-hubble.thick.svg +1 -0
  288. package/dist/assets/iss-iss.glb +0 -0
  289. package/dist/assets/iss-iss.painted.svg +1 -0
  290. package/dist/assets/iss-iss.svg +1 -0
  291. package/dist/assets/iss-iss.thick.svg +1 -0
  292. package/dist/assets/jupiter-c-jupiter-c.glb +0 -0
  293. package/dist/assets/jupiter-c-jupiter-c.painted.svg +1 -0
  294. package/dist/assets/jupiter-c-jupiter-c.svg +1 -0
  295. package/dist/assets/jupiter-c-jupiter-c.thick.svg +1 -0
  296. package/dist/assets/landing-zone-lz-1-apart.painted.svg +1 -0
  297. package/dist/assets/landing-zone-lz-1-apart.svg +1 -0
  298. package/dist/assets/landing-zone-lz-1-apart.thick.svg +1 -0
  299. package/dist/assets/landing-zone-lz-1-landed.glb +0 -0
  300. package/dist/assets/landing-zone-lz-1-landed.painted.svg +1 -0
  301. package/dist/assets/landing-zone-lz-1-landed.svg +1 -0
  302. package/dist/assets/landing-zone-lz-1-landed.thick.svg +1 -0
  303. package/dist/assets/landing-zone-lz-1-pad.glb +0 -0
  304. package/dist/assets/landing-zone-lz-1-pad.painted.svg +1 -0
  305. package/dist/assets/landing-zone-lz-1-pad.svg +1 -0
  306. package/dist/assets/landing-zone-lz-1-pad.thick.svg +1 -0
  307. package/dist/assets/landing-zone-lz-1.glb +0 -0
  308. package/dist/assets/landing-zone-lz-1.painted.svg +1 -0
  309. package/dist/assets/landing-zone-lz-1.svg +1 -0
  310. package/dist/assets/landing-zone-lz-1.thick.svg +1 -0
  311. package/dist/assets/landing-zone-lz-4-apart.painted.svg +1 -0
  312. package/dist/assets/landing-zone-lz-4-apart.svg +1 -0
  313. package/dist/assets/landing-zone-lz-4-apart.thick.svg +1 -0
  314. package/dist/assets/landing-zone-lz-4-landed.glb +0 -0
  315. package/dist/assets/landing-zone-lz-4-landed.painted.svg +1 -0
  316. package/dist/assets/landing-zone-lz-4-landed.svg +1 -0
  317. package/dist/assets/landing-zone-lz-4-landed.thick.svg +1 -0
  318. package/dist/assets/landing-zone-lz-4-pad.glb +0 -0
  319. package/dist/assets/landing-zone-lz-4-pad.painted.svg +1 -0
  320. package/dist/assets/landing-zone-lz-4-pad.svg +1 -0
  321. package/dist/assets/landing-zone-lz-4-pad.thick.svg +1 -0
  322. package/dist/assets/landing-zone-lz-4.glb +0 -0
  323. package/dist/assets/landing-zone-lz-4.painted.svg +1 -0
  324. package/dist/assets/landing-zone-lz-4.svg +1 -0
  325. package/dist/assets/landing-zone-lz-4.thick.svg +1 -0
  326. package/dist/assets/launch-tower-catch-apart.painted.svg +1 -0
  327. package/dist/assets/launch-tower-catch-apart.svg +1 -0
  328. package/dist/assets/launch-tower-catch-apart.thick.svg +1 -0
  329. package/dist/assets/launch-tower-catch-arms.glb +0 -0
  330. package/dist/assets/launch-tower-catch-arms.painted.svg +1 -0
  331. package/dist/assets/launch-tower-catch-arms.svg +1 -0
  332. package/dist/assets/launch-tower-catch-arms.thick.svg +1 -0
  333. package/dist/assets/launch-tower-catch-booster.glb +0 -0
  334. package/dist/assets/launch-tower-catch-booster.painted.svg +1 -0
  335. package/dist/assets/launch-tower-catch-booster.svg +1 -0
  336. package/dist/assets/launch-tower-catch-booster.thick.svg +1 -0
  337. package/dist/assets/launch-tower-catch-mount.glb +0 -0
  338. package/dist/assets/launch-tower-catch-mount.painted.svg +1 -0
  339. package/dist/assets/launch-tower-catch-mount.svg +1 -0
  340. package/dist/assets/launch-tower-catch-mount.thick.svg +1 -0
  341. package/dist/assets/launch-tower-catch-tower.glb +0 -0
  342. package/dist/assets/launch-tower-catch-tower.painted.svg +1 -0
  343. package/dist/assets/launch-tower-catch-tower.svg +1 -0
  344. package/dist/assets/launch-tower-catch-tower.thick.svg +1 -0
  345. package/dist/assets/launch-tower-catch.glb +0 -0
  346. package/dist/assets/launch-tower-catch.painted.svg +1 -0
  347. package/dist/assets/launch-tower-catch.svg +1 -0
  348. package/dist/assets/launch-tower-catch.thick.svg +1 -0
  349. package/dist/assets/launch-tower-stack-apart.painted.svg +1 -0
  350. package/dist/assets/launch-tower-stack-apart.svg +1 -0
  351. package/dist/assets/launch-tower-stack-apart.thick.svg +1 -0
  352. package/dist/assets/launch-tower-stack-arms.glb +0 -0
  353. package/dist/assets/launch-tower-stack-arms.painted.svg +1 -0
  354. package/dist/assets/launch-tower-stack-arms.svg +1 -0
  355. package/dist/assets/launch-tower-stack-arms.thick.svg +1 -0
  356. package/dist/assets/launch-tower-stack-booster.glb +0 -0
  357. package/dist/assets/launch-tower-stack-booster.painted.svg +1 -0
  358. package/dist/assets/launch-tower-stack-booster.svg +1 -0
  359. package/dist/assets/launch-tower-stack-booster.thick.svg +1 -0
  360. package/dist/assets/launch-tower-stack-mount.glb +0 -0
  361. package/dist/assets/launch-tower-stack-mount.painted.svg +1 -0
  362. package/dist/assets/launch-tower-stack-mount.svg +1 -0
  363. package/dist/assets/launch-tower-stack-mount.thick.svg +1 -0
  364. package/dist/assets/launch-tower-stack-ship.glb +0 -0
  365. package/dist/assets/launch-tower-stack-ship.painted.svg +1 -0
  366. package/dist/assets/launch-tower-stack-ship.svg +1 -0
  367. package/dist/assets/launch-tower-stack-ship.thick.svg +1 -0
  368. package/dist/assets/launch-tower-stack-tower.glb +0 -0
  369. package/dist/assets/launch-tower-stack-tower.painted.svg +1 -0
  370. package/dist/assets/launch-tower-stack-tower.svg +1 -0
  371. package/dist/assets/launch-tower-stack-tower.thick.svg +1 -0
  372. package/dist/assets/launch-tower-stack.glb +0 -0
  373. package/dist/assets/launch-tower-stack.painted.svg +1 -0
  374. package/dist/assets/launch-tower-stack.svg +1 -0
  375. package/dist/assets/launch-tower-stack.thick.svg +1 -0
  376. package/dist/assets/launch-tower-tower-apart.painted.svg +1 -0
  377. package/dist/assets/launch-tower-tower-apart.svg +1 -0
  378. package/dist/assets/launch-tower-tower-apart.thick.svg +1 -0
  379. package/dist/assets/launch-tower-tower-arms.glb +0 -0
  380. package/dist/assets/launch-tower-tower-arms.painted.svg +1 -0
  381. package/dist/assets/launch-tower-tower-arms.svg +1 -0
  382. package/dist/assets/launch-tower-tower-arms.thick.svg +1 -0
  383. package/dist/assets/launch-tower-tower-mount.glb +0 -0
  384. package/dist/assets/launch-tower-tower-mount.painted.svg +1 -0
  385. package/dist/assets/launch-tower-tower-mount.svg +1 -0
  386. package/dist/assets/launch-tower-tower-mount.thick.svg +1 -0
  387. package/dist/assets/launch-tower-tower-tower.glb +0 -0
  388. package/dist/assets/launch-tower-tower-tower.painted.svg +1 -0
  389. package/dist/assets/launch-tower-tower-tower.svg +1 -0
  390. package/dist/assets/launch-tower-tower-tower.thick.svg +1 -0
  391. package/dist/assets/launch-tower-tower.glb +0 -0
  392. package/dist/assets/launch-tower-tower.painted.svg +1 -0
  393. package/dist/assets/launch-tower-tower.svg +1 -0
  394. package/dist/assets/launch-tower-tower.thick.svg +1 -0
  395. package/dist/assets/lunar-module-lunar-module-apart.painted.svg +1 -0
  396. package/dist/assets/lunar-module-lunar-module-apart.svg +1 -0
  397. package/dist/assets/lunar-module-lunar-module-apart.thick.svg +1 -0
  398. package/dist/assets/lunar-module-lunar-module-ascent.glb +0 -0
  399. package/dist/assets/lunar-module-lunar-module-ascent.painted.svg +1 -0
  400. package/dist/assets/lunar-module-lunar-module-ascent.svg +1 -0
  401. package/dist/assets/lunar-module-lunar-module-ascent.thick.svg +1 -0
  402. package/dist/assets/lunar-module-lunar-module-descent.glb +0 -0
  403. package/dist/assets/lunar-module-lunar-module-descent.painted.svg +1 -0
  404. package/dist/assets/lunar-module-lunar-module-descent.svg +1 -0
  405. package/dist/assets/lunar-module-lunar-module-descent.thick.svg +1 -0
  406. package/dist/assets/lunar-module-lunar-module.glb +0 -0
  407. package/dist/assets/lunar-module-lunar-module.painted.svg +1 -0
  408. package/dist/assets/lunar-module-lunar-module.svg +1 -0
  409. package/dist/assets/lunar-module-lunar-module.thick.svg +1 -0
  410. package/dist/assets/mercury-friendship-7.glb +0 -0
  411. package/dist/assets/mercury-friendship-7.painted.svg +1 -0
  412. package/dist/assets/mercury-friendship-7.svg +1 -0
  413. package/dist/assets/mercury-friendship-7.thick.svg +1 -0
  414. package/dist/assets/models/apollo-soyuz-csm.glb +0 -0
  415. package/dist/assets/models/apollo-soyuz-docking-module.glb +0 -0
  416. package/dist/assets/models/apollo-soyuz-soyuz.glb +0 -0
  417. package/dist/assets/models/gemini-adapter.glb +0 -0
  418. package/dist/assets/models/gemini-capsule.glb +0 -0
  419. package/dist/assets/models/hubble-telescope.glb +0 -0
  420. package/dist/assets/models/iss-station.glb +0 -0
  421. package/dist/assets/models/jupiter-c-vehicle.glb +0 -0
  422. package/dist/assets/models/lunar-module-ascent.glb +0 -0
  423. package/dist/assets/models/lunar-module-descent.glb +0 -0
  424. package/dist/assets/models/mercury-capsule.glb +0 -0
  425. package/dist/assets/models/space-shuttle-discovery-orbiter.glb +0 -0
  426. package/dist/assets/models/space-shuttle-stack-external-tank.glb +0 -0
  427. package/dist/assets/models/space-shuttle-stack-orbiter.glb +0 -0
  428. package/dist/assets/models/space-shuttle-stack-srb.glb +0 -0
  429. package/dist/assets/new-glenn-7x2-apart.painted.svg +1 -0
  430. package/dist/assets/new-glenn-7x2-apart.svg +1 -0
  431. package/dist/assets/new-glenn-7x2-apart.thick.svg +1 -0
  432. package/dist/assets/new-glenn-7x2-fairing.glb +0 -0
  433. package/dist/assets/new-glenn-7x2-fairing.painted.svg +1 -0
  434. package/dist/assets/new-glenn-7x2-fairing.svg +1 -0
  435. package/dist/assets/new-glenn-7x2-fairing.thick.svg +1 -0
  436. package/dist/assets/new-glenn-7x2-first-stage.glb +0 -0
  437. package/dist/assets/new-glenn-7x2-first-stage.painted.svg +1 -0
  438. package/dist/assets/new-glenn-7x2-first-stage.svg +1 -0
  439. package/dist/assets/new-glenn-7x2-first-stage.thick.svg +1 -0
  440. package/dist/assets/new-glenn-7x2-second-stage.glb +0 -0
  441. package/dist/assets/new-glenn-7x2-second-stage.painted.svg +1 -0
  442. package/dist/assets/new-glenn-7x2-second-stage.svg +1 -0
  443. package/dist/assets/new-glenn-7x2-second-stage.thick.svg +1 -0
  444. package/dist/assets/new-glenn-7x2.glb +0 -0
  445. package/dist/assets/new-glenn-7x2.painted.svg +1 -0
  446. package/dist/assets/new-glenn-7x2.svg +1 -0
  447. package/dist/assets/new-glenn-7x2.thick.svg +1 -0
  448. package/dist/assets/parts/flap-aft.painted.svg +1 -1
  449. package/dist/assets/parts/flap-aft.svg +1 -1
  450. package/dist/assets/parts/flap-aft.thick.svg +1 -1
  451. package/dist/assets/parts/flap-forward.painted.svg +1 -1
  452. package/dist/assets/parts/flap-forward.svg +1 -1
  453. package/dist/assets/parts/flap-forward.thick.svg +1 -1
  454. package/dist/assets/parts/grid-fin-four.painted.svg +1 -1
  455. package/dist/assets/parts/grid-fin-four.svg +1 -1
  456. package/dist/assets/parts/grid-fin-four.thick.svg +1 -1
  457. package/dist/assets/parts/grid-fin-three.painted.svg +1 -1
  458. package/dist/assets/parts/grid-fin-three.svg +1 -1
  459. package/dist/assets/parts/grid-fin-three.thick.svg +1 -1
  460. package/dist/assets/parts/merlin-sea-level.painted.svg +1 -1
  461. package/dist/assets/parts/merlin-sea-level.svg +1 -1
  462. package/dist/assets/parts/merlin-sea-level.thick.svg +1 -1
  463. package/dist/assets/parts/raptor-sea-level.painted.svg +1 -1
  464. package/dist/assets/parts/raptor-sea-level.svg +1 -1
  465. package/dist/assets/parts/raptor-sea-level.thick.svg +1 -1
  466. package/dist/assets/parts/raptor-vacuum.painted.svg +1 -1
  467. package/dist/assets/parts/raptor-vacuum.svg +1 -1
  468. package/dist/assets/parts/raptor-vacuum.thick.svg +1 -1
  469. package/dist/assets/saturn-v-saturn-v-adapter.glb +0 -0
  470. package/dist/assets/saturn-v-saturn-v-adapter.painted.svg +1 -0
  471. package/dist/assets/saturn-v-saturn-v-adapter.svg +1 -0
  472. package/dist/assets/saturn-v-saturn-v-adapter.thick.svg +1 -0
  473. package/dist/assets/saturn-v-saturn-v-apart.painted.svg +1 -0
  474. package/dist/assets/saturn-v-saturn-v-apart.svg +1 -0
  475. package/dist/assets/saturn-v-saturn-v-apart.thick.svg +1 -0
  476. package/dist/assets/saturn-v-saturn-v-capsule.glb +0 -0
  477. package/dist/assets/saturn-v-saturn-v-capsule.painted.svg +1 -0
  478. package/dist/assets/saturn-v-saturn-v-capsule.svg +1 -0
  479. package/dist/assets/saturn-v-saturn-v-capsule.thick.svg +1 -0
  480. package/dist/assets/saturn-v-saturn-v-escape-tower.glb +0 -0
  481. package/dist/assets/saturn-v-saturn-v-escape-tower.painted.svg +1 -0
  482. package/dist/assets/saturn-v-saturn-v-escape-tower.svg +1 -0
  483. package/dist/assets/saturn-v-saturn-v-escape-tower.thick.svg +1 -0
  484. package/dist/assets/saturn-v-saturn-v-first-stage.glb +0 -0
  485. package/dist/assets/saturn-v-saturn-v-first-stage.painted.svg +1 -0
  486. package/dist/assets/saturn-v-saturn-v-first-stage.svg +1 -0
  487. package/dist/assets/saturn-v-saturn-v-first-stage.thick.svg +1 -0
  488. package/dist/assets/saturn-v-saturn-v-second-stage.glb +0 -0
  489. package/dist/assets/saturn-v-saturn-v-second-stage.painted.svg +1 -0
  490. package/dist/assets/saturn-v-saturn-v-second-stage.svg +1 -0
  491. package/dist/assets/saturn-v-saturn-v-second-stage.thick.svg +1 -0
  492. package/dist/assets/saturn-v-saturn-v-service-module.glb +0 -0
  493. package/dist/assets/saturn-v-saturn-v-service-module.painted.svg +1 -0
  494. package/dist/assets/saturn-v-saturn-v-service-module.svg +1 -0
  495. package/dist/assets/saturn-v-saturn-v-service-module.thick.svg +1 -0
  496. package/dist/assets/saturn-v-saturn-v-third-stage.glb +0 -0
  497. package/dist/assets/saturn-v-saturn-v-third-stage.painted.svg +1 -0
  498. package/dist/assets/saturn-v-saturn-v-third-stage.svg +1 -0
  499. package/dist/assets/saturn-v-saturn-v-third-stage.thick.svg +1 -0
  500. package/dist/assets/saturn-v-saturn-v.glb +0 -0
  501. package/dist/assets/saturn-v-saturn-v.painted.svg +1 -0
  502. package/dist/assets/saturn-v-saturn-v.svg +1 -0
  503. package/dist/assets/saturn-v-saturn-v.thick.svg +1 -0
  504. package/dist/assets/sls-block-1-apart.painted.svg +1 -0
  505. package/dist/assets/sls-block-1-apart.svg +1 -0
  506. package/dist/assets/sls-block-1-apart.thick.svg +1 -0
  507. package/dist/assets/sls-block-1-capsule.glb +0 -0
  508. package/dist/assets/sls-block-1-capsule.painted.svg +1 -0
  509. package/dist/assets/sls-block-1-capsule.svg +1 -0
  510. package/dist/assets/sls-block-1-capsule.thick.svg +1 -0
  511. package/dist/assets/sls-block-1-escape-tower.glb +0 -0
  512. package/dist/assets/sls-block-1-escape-tower.painted.svg +1 -0
  513. package/dist/assets/sls-block-1-escape-tower.svg +1 -0
  514. package/dist/assets/sls-block-1-escape-tower.thick.svg +1 -0
  515. package/dist/assets/sls-block-1-first-stage.glb +0 -0
  516. package/dist/assets/sls-block-1-first-stage.painted.svg +1 -0
  517. package/dist/assets/sls-block-1-first-stage.svg +1 -0
  518. package/dist/assets/sls-block-1-first-stage.thick.svg +1 -0
  519. package/dist/assets/sls-block-1-service-module.glb +0 -0
  520. package/dist/assets/sls-block-1-service-module.painted.svg +1 -0
  521. package/dist/assets/sls-block-1-service-module.svg +1 -0
  522. package/dist/assets/sls-block-1-service-module.thick.svg +1 -0
  523. package/dist/assets/sls-block-1-srb-left.glb +0 -0
  524. package/dist/assets/sls-block-1-srb-left.painted.svg +1 -0
  525. package/dist/assets/sls-block-1-srb-left.svg +1 -0
  526. package/dist/assets/sls-block-1-srb-left.thick.svg +1 -0
  527. package/dist/assets/sls-block-1-srb-right.glb +0 -0
  528. package/dist/assets/sls-block-1-srb-right.painted.svg +1 -0
  529. package/dist/assets/sls-block-1-srb-right.svg +1 -0
  530. package/dist/assets/sls-block-1-srb-right.thick.svg +1 -0
  531. package/dist/assets/sls-block-1-upper-stage.glb +0 -0
  532. package/dist/assets/sls-block-1-upper-stage.painted.svg +1 -0
  533. package/dist/assets/sls-block-1-upper-stage.svg +1 -0
  534. package/dist/assets/sls-block-1-upper-stage.thick.svg +1 -0
  535. package/dist/assets/sls-block-1.glb +0 -0
  536. package/dist/assets/sls-block-1.painted.svg +1 -0
  537. package/dist/assets/sls-block-1.svg +1 -0
  538. package/dist/assets/sls-block-1.thick.svg +1 -0
  539. package/dist/assets/soyuz-soyuz-2-apart.painted.svg +1 -0
  540. package/dist/assets/soyuz-soyuz-2-apart.svg +1 -0
  541. package/dist/assets/soyuz-soyuz-2-apart.thick.svg +1 -0
  542. package/dist/assets/soyuz-soyuz-2-booster-1.glb +0 -0
  543. package/dist/assets/soyuz-soyuz-2-booster-1.painted.svg +1 -0
  544. package/dist/assets/soyuz-soyuz-2-booster-1.svg +1 -0
  545. package/dist/assets/soyuz-soyuz-2-booster-1.thick.svg +1 -0
  546. package/dist/assets/soyuz-soyuz-2-booster-2.glb +0 -0
  547. package/dist/assets/soyuz-soyuz-2-booster-2.painted.svg +1 -0
  548. package/dist/assets/soyuz-soyuz-2-booster-2.svg +1 -0
  549. package/dist/assets/soyuz-soyuz-2-booster-2.thick.svg +1 -0
  550. package/dist/assets/soyuz-soyuz-2-booster-3.glb +0 -0
  551. package/dist/assets/soyuz-soyuz-2-booster-3.painted.svg +1 -0
  552. package/dist/assets/soyuz-soyuz-2-booster-3.svg +1 -0
  553. package/dist/assets/soyuz-soyuz-2-booster-3.thick.svg +1 -0
  554. package/dist/assets/soyuz-soyuz-2-booster-4.glb +0 -0
  555. package/dist/assets/soyuz-soyuz-2-booster-4.painted.svg +1 -0
  556. package/dist/assets/soyuz-soyuz-2-booster-4.svg +1 -0
  557. package/dist/assets/soyuz-soyuz-2-booster-4.thick.svg +1 -0
  558. package/dist/assets/soyuz-soyuz-2-fairing.glb +0 -0
  559. package/dist/assets/soyuz-soyuz-2-fairing.painted.svg +1 -0
  560. package/dist/assets/soyuz-soyuz-2-fairing.svg +1 -0
  561. package/dist/assets/soyuz-soyuz-2-fairing.thick.svg +1 -0
  562. package/dist/assets/soyuz-soyuz-2-first-stage.glb +0 -0
  563. package/dist/assets/soyuz-soyuz-2-first-stage.painted.svg +1 -0
  564. package/dist/assets/soyuz-soyuz-2-first-stage.svg +1 -0
  565. package/dist/assets/soyuz-soyuz-2-first-stage.thick.svg +1 -0
  566. package/dist/assets/soyuz-soyuz-2-third-stage.glb +0 -0
  567. package/dist/assets/soyuz-soyuz-2-third-stage.painted.svg +1 -0
  568. package/dist/assets/soyuz-soyuz-2-third-stage.svg +1 -0
  569. package/dist/assets/soyuz-soyuz-2-third-stage.thick.svg +1 -0
  570. package/dist/assets/soyuz-soyuz-2.glb +0 -0
  571. package/dist/assets/soyuz-soyuz-2.painted.svg +1 -0
  572. package/dist/assets/soyuz-soyuz-2.svg +1 -0
  573. package/dist/assets/soyuz-soyuz-2.thick.svg +1 -0
  574. package/dist/assets/space-shuttle-discovery.glb +0 -0
  575. package/dist/assets/space-shuttle-discovery.painted.svg +1 -0
  576. package/dist/assets/space-shuttle-discovery.svg +1 -0
  577. package/dist/assets/space-shuttle-discovery.thick.svg +1 -0
  578. package/dist/assets/space-shuttle-stack-apart.painted.svg +1 -0
  579. package/dist/assets/space-shuttle-stack-apart.svg +1 -0
  580. package/dist/assets/space-shuttle-stack-apart.thick.svg +1 -0
  581. package/dist/assets/space-shuttle-stack-external-tank.glb +0 -0
  582. package/dist/assets/space-shuttle-stack-external-tank.painted.svg +1 -0
  583. package/dist/assets/space-shuttle-stack-external-tank.svg +1 -0
  584. package/dist/assets/space-shuttle-stack-external-tank.thick.svg +1 -0
  585. package/dist/assets/space-shuttle-stack-orbiter.glb +0 -0
  586. package/dist/assets/space-shuttle-stack-orbiter.painted.svg +1 -0
  587. package/dist/assets/space-shuttle-stack-orbiter.svg +1 -0
  588. package/dist/assets/space-shuttle-stack-orbiter.thick.svg +1 -0
  589. package/dist/assets/space-shuttle-stack-srb-left.glb +0 -0
  590. package/dist/assets/space-shuttle-stack-srb-left.painted.svg +1 -0
  591. package/dist/assets/space-shuttle-stack-srb-left.svg +1 -0
  592. package/dist/assets/space-shuttle-stack-srb-left.thick.svg +1 -0
  593. package/dist/assets/space-shuttle-stack-srb-right.glb +0 -0
  594. package/dist/assets/space-shuttle-stack-srb-right.painted.svg +1 -0
  595. package/dist/assets/space-shuttle-stack-srb-right.svg +1 -0
  596. package/dist/assets/space-shuttle-stack-srb-right.thick.svg +1 -0
  597. package/dist/assets/space-shuttle-stack.glb +0 -0
  598. package/dist/assets/space-shuttle-stack.painted.svg +1 -0
  599. package/dist/assets/space-shuttle-stack.svg +1 -0
  600. package/dist/assets/space-shuttle-stack.thick.svg +1 -0
  601. package/dist/assets/starbase-build-site-apart.painted.svg +1 -0
  602. package/dist/assets/starbase-build-site-apart.svg +1 -0
  603. package/dist/assets/starbase-build-site-apart.thick.svg +1 -0
  604. package/dist/assets/starbase-build-site-garden.glb +0 -0
  605. package/dist/assets/starbase-build-site-garden.painted.svg +1 -0
  606. package/dist/assets/starbase-build-site-garden.svg +1 -0
  607. package/dist/assets/starbase-build-site-garden.thick.svg +1 -0
  608. package/dist/assets/starbase-build-site-ground.glb +0 -0
  609. package/dist/assets/starbase-build-site-ground.painted.svg +1 -0
  610. package/dist/assets/starbase-build-site-ground.svg +1 -0
  611. package/dist/assets/starbase-build-site-ground.thick.svg +1 -0
  612. package/dist/assets/starbase-build-site-mega-bays.glb +0 -0
  613. package/dist/assets/starbase-build-site-mega-bays.painted.svg +1 -0
  614. package/dist/assets/starbase-build-site-mega-bays.svg +1 -0
  615. package/dist/assets/starbase-build-site-mega-bays.thick.svg +1 -0
  616. package/dist/assets/starbase-build-site-sign.glb +0 -0
  617. package/dist/assets/starbase-build-site-sign.painted.svg +1 -0
  618. package/dist/assets/starbase-build-site-sign.svg +1 -0
  619. package/dist/assets/starbase-build-site-sign.thick.svg +1 -0
  620. package/dist/assets/starbase-build-site-starfactory.glb +0 -0
  621. package/dist/assets/starbase-build-site-starfactory.painted.svg +1 -0
  622. package/dist/assets/starbase-build-site-starfactory.svg +1 -0
  623. package/dist/assets/starbase-build-site-starfactory.thick.svg +1 -0
  624. package/dist/assets/starbase-build-site.glb +0 -0
  625. package/dist/assets/starbase-build-site.painted.svg +1 -0
  626. package/dist/assets/starbase-build-site.svg +1 -0
  627. package/dist/assets/starbase-build-site.thick.svg +1 -0
  628. package/dist/assets/starbase-city-apart.painted.svg +1 -0
  629. package/dist/assets/starbase-city-apart.svg +1 -0
  630. package/dist/assets/starbase-city-apart.thick.svg +1 -0
  631. package/dist/assets/starbase-city-garden.glb +0 -0
  632. package/dist/assets/starbase-city-garden.painted.svg +1 -0
  633. package/dist/assets/starbase-city-garden.svg +1 -0
  634. package/dist/assets/starbase-city-garden.thick.svg +1 -0
  635. package/dist/assets/starbase-city-ground.glb +0 -0
  636. package/dist/assets/starbase-city-ground.painted.svg +1 -0
  637. package/dist/assets/starbase-city-ground.svg +1 -0
  638. package/dist/assets/starbase-city-ground.thick.svg +1 -0
  639. package/dist/assets/starbase-city-mega-bays.glb +0 -0
  640. package/dist/assets/starbase-city-mega-bays.painted.svg +1 -0
  641. package/dist/assets/starbase-city-mega-bays.svg +1 -0
  642. package/dist/assets/starbase-city-mega-bays.thick.svg +1 -0
  643. package/dist/assets/starbase-city-on-pad.glb +0 -0
  644. package/dist/assets/starbase-city-on-pad.painted.svg +1 -0
  645. package/dist/assets/starbase-city-on-pad.svg +1 -0
  646. package/dist/assets/starbase-city-on-pad.thick.svg +1 -0
  647. package/dist/assets/starbase-city-pads.glb +0 -0
  648. package/dist/assets/starbase-city-pads.painted.svg +1 -0
  649. package/dist/assets/starbase-city-pads.svg +1 -0
  650. package/dist/assets/starbase-city-pads.thick.svg +1 -0
  651. package/dist/assets/starbase-city-sign.glb +0 -0
  652. package/dist/assets/starbase-city-sign.painted.svg +1 -0
  653. package/dist/assets/starbase-city-sign.svg +1 -0
  654. package/dist/assets/starbase-city-sign.thick.svg +1 -0
  655. package/dist/assets/starbase-city-starfactory.glb +0 -0
  656. package/dist/assets/starbase-city-starfactory.painted.svg +1 -0
  657. package/dist/assets/starbase-city-starfactory.svg +1 -0
  658. package/dist/assets/starbase-city-starfactory.thick.svg +1 -0
  659. package/dist/assets/starbase-city-tank-farm.glb +0 -0
  660. package/dist/assets/starbase-city-tank-farm.painted.svg +1 -0
  661. package/dist/assets/starbase-city-tank-farm.svg +1 -0
  662. package/dist/assets/starbase-city-tank-farm.thick.svg +1 -0
  663. package/dist/assets/starbase-city-village.glb +0 -0
  664. package/dist/assets/starbase-city-village.painted.svg +1 -0
  665. package/dist/assets/starbase-city-village.svg +1 -0
  666. package/dist/assets/starbase-city-village.thick.svg +1 -0
  667. package/dist/assets/starbase-city.glb +0 -0
  668. package/dist/assets/starbase-city.painted.svg +1 -0
  669. package/dist/assets/starbase-city.svg +1 -0
  670. package/dist/assets/starbase-city.thick.svg +1 -0
  671. package/dist/assets/starbase-launch-site-apart.painted.svg +1 -0
  672. package/dist/assets/starbase-launch-site-apart.svg +1 -0
  673. package/dist/assets/starbase-launch-site-apart.thick.svg +1 -0
  674. package/dist/assets/starbase-launch-site-ground.glb +0 -0
  675. package/dist/assets/starbase-launch-site-ground.painted.svg +1 -0
  676. package/dist/assets/starbase-launch-site-ground.svg +1 -0
  677. package/dist/assets/starbase-launch-site-ground.thick.svg +1 -0
  678. package/dist/assets/starbase-launch-site-on-pad.glb +0 -0
  679. package/dist/assets/starbase-launch-site-on-pad.painted.svg +1 -0
  680. package/dist/assets/starbase-launch-site-on-pad.svg +1 -0
  681. package/dist/assets/starbase-launch-site-on-pad.thick.svg +1 -0
  682. package/dist/assets/starbase-launch-site-pads.glb +0 -0
  683. package/dist/assets/starbase-launch-site-pads.painted.svg +1 -0
  684. package/dist/assets/starbase-launch-site-pads.svg +1 -0
  685. package/dist/assets/starbase-launch-site-pads.thick.svg +1 -0
  686. package/dist/assets/starbase-launch-site-tank-farm.glb +0 -0
  687. package/dist/assets/starbase-launch-site-tank-farm.painted.svg +1 -0
  688. package/dist/assets/starbase-launch-site-tank-farm.svg +1 -0
  689. package/dist/assets/starbase-launch-site-tank-farm.thick.svg +1 -0
  690. package/dist/assets/starbase-launch-site.glb +0 -0
  691. package/dist/assets/starbase-launch-site.painted.svg +1 -0
  692. package/dist/assets/starbase-launch-site.svg +1 -0
  693. package/dist/assets/starbase-launch-site.thick.svg +1 -0
  694. package/dist/assets/starship-2019.painted.svg +1 -1
  695. package/dist/assets/starship-2019.svg +1 -1
  696. package/dist/assets/starship-2019.thick.svg +1 -1
  697. package/dist/assets/starship-v1-apart.painted.svg +1 -1
  698. package/dist/assets/starship-v1-apart.svg +1 -1
  699. package/dist/assets/starship-v1-apart.thick.svg +1 -1
  700. package/dist/assets/starship-v1-booster.painted.svg +1 -1
  701. package/dist/assets/starship-v1-booster.svg +1 -1
  702. package/dist/assets/starship-v1-booster.thick.svg +1 -1
  703. package/dist/assets/starship-v1-flight1-apart.painted.svg +1 -1
  704. package/dist/assets/starship-v1-flight1-apart.svg +1 -1
  705. package/dist/assets/starship-v1-flight1-apart.thick.svg +1 -1
  706. package/dist/assets/starship-v1-flight1-booster.painted.svg +1 -1
  707. package/dist/assets/starship-v1-flight1-booster.svg +1 -1
  708. package/dist/assets/starship-v1-flight1-booster.thick.svg +1 -1
  709. package/dist/assets/starship-v1-flight1-ship.painted.svg +1 -1
  710. package/dist/assets/starship-v1-flight1-ship.svg +1 -1
  711. package/dist/assets/starship-v1-flight1-ship.thick.svg +1 -1
  712. package/dist/assets/starship-v1-flight1.painted.svg +1 -1
  713. package/dist/assets/starship-v1-flight1.svg +1 -1
  714. package/dist/assets/starship-v1-flight1.thick.svg +1 -1
  715. package/dist/assets/starship-v1-ship.painted.svg +1 -1
  716. package/dist/assets/starship-v1-ship.svg +1 -1
  717. package/dist/assets/starship-v1-ship.thick.svg +1 -1
  718. package/dist/assets/starship-v1.painted.svg +1 -1
  719. package/dist/assets/starship-v1.svg +1 -1
  720. package/dist/assets/starship-v1.thick.svg +1 -1
  721. package/dist/assets/starship-v2-apart.painted.svg +1 -1
  722. package/dist/assets/starship-v2-apart.svg +1 -1
  723. package/dist/assets/starship-v2-apart.thick.svg +1 -1
  724. package/dist/assets/starship-v2-booster.painted.svg +1 -1
  725. package/dist/assets/starship-v2-booster.svg +1 -1
  726. package/dist/assets/starship-v2-booster.thick.svg +1 -1
  727. package/dist/assets/starship-v2-ship.painted.svg +1 -1
  728. package/dist/assets/starship-v2-ship.svg +1 -1
  729. package/dist/assets/starship-v2-ship.thick.svg +1 -1
  730. package/dist/assets/starship-v2.painted.svg +1 -1
  731. package/dist/assets/starship-v2.svg +1 -1
  732. package/dist/assets/starship-v2.thick.svg +1 -1
  733. package/dist/assets/starship-v3-apart.painted.svg +1 -1
  734. package/dist/assets/starship-v3-apart.svg +1 -1
  735. package/dist/assets/starship-v3-apart.thick.svg +1 -1
  736. package/dist/assets/starship-v3-booster.painted.svg +1 -1
  737. package/dist/assets/starship-v3-booster.svg +1 -1
  738. package/dist/assets/starship-v3-booster.thick.svg +1 -1
  739. package/dist/assets/starship-v3-ship.painted.svg +1 -1
  740. package/dist/assets/starship-v3-ship.svg +1 -1
  741. package/dist/assets/starship-v3-ship.thick.svg +1 -1
  742. package/dist/assets/starship-v3.painted.svg +1 -1
  743. package/dist/assets/starship-v3.svg +1 -1
  744. package/dist/assets/starship-v3.thick.svg +1 -1
  745. package/dist/assets/starship-v4-apart.painted.svg +1 -1
  746. package/dist/assets/starship-v4-apart.svg +1 -1
  747. package/dist/assets/starship-v4-apart.thick.svg +1 -1
  748. package/dist/assets/starship-v4-booster.painted.svg +1 -1
  749. package/dist/assets/starship-v4-booster.svg +1 -1
  750. package/dist/assets/starship-v4-booster.thick.svg +1 -1
  751. package/dist/assets/starship-v4-ship.painted.svg +1 -1
  752. package/dist/assets/starship-v4-ship.svg +1 -1
  753. package/dist/assets/starship-v4-ship.thick.svg +1 -1
  754. package/dist/assets/starship-v4.painted.svg +1 -1
  755. package/dist/assets/starship-v4.svg +1 -1
  756. package/dist/assets/starship-v4.thick.svg +1 -1
  757. package/dist/attrs.d.ts +27 -0
  758. package/dist/attrs.js +31 -0
  759. package/dist/build/index.d.ts +7 -2
  760. package/dist/build/index.js +28 -4
  761. package/dist/build/lineup.js +14 -4
  762. package/dist/builder.d.ts +22 -0
  763. package/dist/builder.js +103 -0
  764. package/dist/data/apollosoyuz.d.ts +6 -0
  765. package/dist/data/apollosoyuz.js +28 -0
  766. package/dist/data/credits.d.ts +19 -1
  767. package/dist/data/credits.js +30 -1
  768. package/dist/data/dragon.js +35 -0
  769. package/dist/data/electron.d.ts +2 -0
  770. package/dist/data/electron.js +23 -0
  771. package/dist/data/falcon.js +2 -2
  772. package/dist/data/falcon1.d.ts +4 -0
  773. package/dist/data/falcon1.js +51 -0
  774. package/dist/data/flight-log.d.ts +18 -0
  775. package/dist/data/flight-log.js +23 -0
  776. package/dist/data/flights.d.ts +49 -0
  777. package/dist/data/flights.js +177 -0
  778. package/dist/data/gemini.d.ts +3 -0
  779. package/dist/data/gemini.js +22 -0
  780. package/dist/data/hubble.d.ts +3 -0
  781. package/dist/data/hubble.js +23 -0
  782. package/dist/data/iss.d.ts +5 -0
  783. package/dist/data/iss.js +25 -0
  784. package/dist/data/jupiterc.d.ts +3 -0
  785. package/dist/data/jupiterc.js +22 -0
  786. package/dist/data/landing.d.ts +3 -0
  787. package/dist/data/landing.js +51 -0
  788. package/dist/data/lunarmodule.d.ts +4 -0
  789. package/dist/data/lunarmodule.js +27 -0
  790. package/dist/data/makers.d.ts +16 -0
  791. package/dist/data/makers.js +29 -0
  792. package/dist/data/mercury.d.ts +3 -0
  793. package/dist/data/mercury.js +22 -0
  794. package/dist/data/newglenn.d.ts +2 -0
  795. package/dist/data/newglenn.js +23 -0
  796. package/dist/data/saturn.d.ts +2 -0
  797. package/dist/data/saturn.js +32 -0
  798. package/dist/data/shuttle.d.ts +5 -0
  799. package/dist/data/shuttle.js +52 -0
  800. package/dist/data/sls.d.ts +4 -0
  801. package/dist/data/sls.js +36 -0
  802. package/dist/data/sources.d.ts +348 -2
  803. package/dist/data/sources.js +45 -1
  804. package/dist/data/soyuz.d.ts +3 -0
  805. package/dist/data/soyuz.js +33 -0
  806. package/dist/data/starbase.d.ts +2 -0
  807. package/dist/data/starbase.js +30 -0
  808. package/dist/data/tower.d.ts +3 -0
  809. package/dist/data/tower.js +26 -0
  810. package/dist/data/types.d.ts +7 -1
  811. package/dist/draw/plume.d.ts +8 -0
  812. package/dist/draw/plume.js +71 -0
  813. package/dist/draw/svg.d.ts +1 -1
  814. package/dist/draw/svg.js +3 -3
  815. package/dist/element/ground.d.ts +15 -0
  816. package/dist/element/ground.js +95 -0
  817. package/dist/element/plumes.d.ts +38 -0
  818. package/dist/element/plumes.js +208 -0
  819. package/dist/element/scene.d.ts +39 -5
  820. package/dist/element/scene.js +250 -7
  821. package/dist/element.d.ts +50 -1
  822. package/dist/element.js +201 -13
  823. package/dist/embed.d.ts +26 -0
  824. package/dist/embed.js +135 -0
  825. package/dist/engines.d.ts +44 -0
  826. package/dist/engines.js +79 -0
  827. package/dist/fit.d.ts +2 -0
  828. package/dist/fit.js +4 -3
  829. package/dist/flight.d.ts +67 -0
  830. package/dist/flight.js +124 -0
  831. package/dist/flightbar.d.ts +22 -0
  832. package/dist/flightbar.js +176 -0
  833. package/dist/index.d.ts +17 -0
  834. package/dist/index.js +9 -0
  835. package/dist/layout.js +1 -1
  836. package/dist/looks.d.ts +1 -1
  837. package/dist/looks.js +2 -0
  838. package/dist/model/apollosoyuz.d.ts +2 -0
  839. package/dist/model/apollosoyuz.js +46 -0
  840. package/dist/model/dragoninside.d.ts +2 -0
  841. package/dist/model/dragoninside.js +67 -0
  842. package/dist/model/electron.d.ts +2 -0
  843. package/dist/model/electron.js +35 -0
  844. package/dist/model/falcon.d.ts +2 -0
  845. package/dist/model/falcon.js +4 -0
  846. package/dist/model/falcon1.d.ts +2 -0
  847. package/dist/model/falcon1.js +53 -0
  848. package/dist/model/gemini.d.ts +2 -0
  849. package/dist/model/gemini.js +28 -0
  850. package/dist/model/hubble.d.ts +2 -0
  851. package/dist/model/hubble.js +28 -0
  852. package/dist/model/iss.d.ts +2 -0
  853. package/dist/model/iss.js +32 -0
  854. package/dist/model/jupiterc.d.ts +2 -0
  855. package/dist/model/jupiterc.js +24 -0
  856. package/dist/model/kit.d.ts +36 -0
  857. package/dist/model/kit.js +95 -0
  858. package/dist/model/landing.d.ts +3 -0
  859. package/dist/model/landing.js +81 -0
  860. package/dist/model/lunarmodule.d.ts +2 -0
  861. package/dist/model/lunarmodule.js +43 -0
  862. package/dist/model/materials.d.ts +42 -0
  863. package/dist/model/materials.js +7 -0
  864. package/dist/model/mercury.d.ts +2 -0
  865. package/dist/model/mercury.js +19 -0
  866. package/dist/model/newglenn.d.ts +2 -0
  867. package/dist/model/newglenn.js +43 -0
  868. package/dist/model/pieces.d.ts +2 -0
  869. package/dist/model/pieces.js +2 -2
  870. package/dist/model/registry.js +63 -0
  871. package/dist/model/saturn.d.ts +2 -0
  872. package/dist/model/saturn.js +122 -0
  873. package/dist/model/shuttle.d.ts +2 -0
  874. package/dist/model/shuttle.js +111 -0
  875. package/dist/model/sls.d.ts +2 -0
  876. package/dist/model/sls.js +83 -0
  877. package/dist/model/soyuz.d.ts +2 -0
  878. package/dist/model/soyuz.js +75 -0
  879. package/dist/model/stacks.d.ts +39 -0
  880. package/dist/model/stacks.js +1 -0
  881. package/dist/model/starbase.d.ts +2 -0
  882. package/dist/model/starbase.js +108 -0
  883. package/dist/model/tower.d.ts +6 -0
  884. package/dist/model/tower.js +89 -0
  885. package/dist/parts.d.ts +3 -2
  886. package/dist/react.d.ts +14 -6
  887. package/dist/rockets.d.ts +5 -0
  888. package/dist/rockets.js +78 -7
  889. package/dist/spin.d.ts +11 -0
  890. package/dist/spin.js +11 -0
  891. package/package.json +93 -18
@@ -0,0 +1,177 @@
1
+ // Flights as their pages give them: when each thing happened and how many engines burned. A time or a count names its page, or is blank. How the picture moves between them (the separation, the flip, the ground falling away) is a picture, never a measurement, and the demo and the docs say so.
2
+ import { blank } from "./types.js";
3
+ const seconds = (clock) => {
4
+ const sign = clock.startsWith("-") ? -1 : 1;
5
+ const [h, m, s] = clock.replace(/^[-+]/, "").split(":").map(Number);
6
+ return sign * (h * 3600 + m * 60 + s);
7
+ };
8
+ const time = (clock, source, extra = {}) => ({ value: seconds(clock), source, ...extra });
9
+ const count = (value, source, note) => ({ engines: { value, source, ...(note ? { note } : {}) } });
10
+ const SH = "wikipedia-super-heavy";
11
+ const SHIP = "wikipedia-ship";
12
+ /** Super Heavy and the Ship, as Starship's pages give each flight. `stageEngines` and `backEngines` differ by block. */
13
+ function starshipFlight(options) {
14
+ const { source, times, stageEngines, backEngines, landingBurn } = options;
15
+ const all = count(33, SH, "All thirty-three on ascent, as the Super Heavy article says.");
16
+ const six = { engines: { value: 6, source: SHIP, note: "Three sea-level engines and three RVacs." } };
17
+ const seaLevel = { engines: { value: 3, source: SHIP, note: "The sea-level engines reignite for the landing burns." } };
18
+ const away = { dx: -0.23, dy: -0.12 };
19
+ const ahead = { dx: 0.2, dy: 0.1 };
20
+ const stacked = () => ({ booster: {}, ship: {} });
21
+ return {
22
+ id: options.id,
23
+ rocket: "starship",
24
+ variant: options.variant,
25
+ name: options.name,
26
+ basis: options.basis,
27
+ source,
28
+ note: "No tower, catch arms or moving flaps and fins yet: the booster and the Ship stand on plain ground at the end.",
29
+ phases: [
30
+ { id: "ignition", name: "Ignition", what: "The booster's engines start while it is held on the pad, with the flame deflector running.", at: time(times.ignition, source), burns: { booster: all }, pose: stacked(), ground: 0, smoke: 0.7 },
31
+ { id: "liftoff", name: "Liftoff", what: "All the booster's engines at full thrust.", at: time(times.liftoff, source), burns: { booster: all }, pose: stacked(), ground: 0.02, smoke: 1 },
32
+ { id: "max-q", name: "Max q", what: "The moment of peak stress on the rocket.", at: time(times.maxq, source), burns: { booster: all }, pose: stacked(), ground: 1.6, air: 0.25 },
33
+ { id: "meco", name: "Most engines cut off", what: "The booster shuts down all but its inner engines.", at: time(times.meco, source), burns: { booster: stageEngines }, pose: stacked(), ground: 1.6, air: 0.7, ...(options.stageAltitude ? { altitude: options.stageAltitude } : {}) },
34
+ { id: "hot-staging", name: "Hot staging", what: "The Ship lights its engines while still on the booster, and pulls away.", at: time(times.hot, source), burns: { booster: stageEngines, ship: six }, pose: { booster: {}, ship: { dy: 0.05 } }, ground: 1.6, air: 0.85, ...(options.stageAltitude ? { altitude: options.stageAltitude } : {}) },
35
+ { id: "boostback", name: "Boostback burn", what: "The booster turns round and burns back towards the launch site.", at: time(times.boostback, source), burns: { booster: backEngines, ship: six }, pose: { booster: { ...away, pitch: 150 }, ship: ahead }, ground: 1.6, air: 1 },
36
+ { id: "boostback-end", name: "Boostback ends", what: "The booster falls back, steering with its grid fins.", at: time(times.boostbackEnd, source), burns: { ship: six }, pose: { booster: { ...away, pitch: 180 }, ship: { dx: 0.2, dy: 0.08 } }, ground: 1.6, air: 1 },
37
+ { id: "booster-landing", name: "Booster's landing burn", what: "The booster lights its inner thirteen, then keeps only the inner three.", at: time(times.landing, source), burns: { booster: landingBurn, ship: six }, pose: { booster: { dx: -0.23, dy: -0.1 }, ship: { dx: 0.2, dy: 0.09 } }, ground: 0.45, air: 0.1 },
38
+ { id: "booster-three", name: "Inner three", what: "The last of the landing burn, on the three middle engines.", at: blank("The page gives no time for this step."), burns: { booster: count(3, SH), ship: six }, pose: { booster: { dx: -0.23, dy: -0.32 }, ship: { dx: 0.2, dy: 0.1 } }, ground: 0.3, air: 0 },
39
+ { id: "booster-down", name: "Booster down", what: "The landing burn ends.", at: time(times.landingEnd, source), burns: { ship: six }, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, dy: 0.11 } }, ground: 0, air: 0.8 },
40
+ { id: "seco", name: "Ship's engines cut off", what: "The Ship coasts on, above the air.", at: time(times.seco, source), burns: {}, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, dy: 0.12 } }, ground: 0, ...(options.apogee ? { altitude: options.apogee } : {}) },
41
+ { id: "entry", name: "Entry", what: "The Ship comes back into the air, belly first on its tiles.", at: time(times.entry, source), burns: {}, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, dy: 0.12, pitch: -80 } }, ground: 0 },
42
+ ...(seconds(times.flip) <= seconds(times.shipBurn)
43
+ ? [
44
+ { id: "flip", name: "Landing flip", what: "The Ship swings from belly first to engines down.", at: time(times.flip, source), burns: {}, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, dy: -0.36, pitch: -35 } }, ground: 0 },
45
+ { id: "ship-burn", name: "Ship's landing burn", what: "The sea-level engines light again.", at: time(times.shipBurn, source), burns: { ship: seaLevel }, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, dy: -0.44 } }, ground: 0 },
46
+ ]
47
+ : [
48
+ { id: "ship-burn", name: "Ship's landing burn", what: "The sea-level engines light again, and the flip comes on the burn.", at: time(times.shipBurn, source), burns: { ship: seaLevel }, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, dy: -0.34, pitch: -50 } }, ground: 0 },
49
+ { id: "flip", name: "Landing flip", what: "The Ship swings from belly first to engines down.", at: time(times.flip, source), burns: { ship: seaLevel }, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, dy: -0.42 } }, ground: 0 },
50
+ ]),
51
+ ...options.shipLanding.map((step, index) => ({ id: step.id, name: step.name, what: step.what, at: step.at, burns: { ship: step.burn }, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, dy: -0.48 - index * 0.02 } }, ground: 0 })),
52
+ { id: "splashdown", name: "Splashdown", what: "The Ship settles on the water, drawn here on plain ground.", at: time(times.splash, source), burns: {}, pose: { booster: { dx: -0.23, rest: true }, ship: { dx: 0.2, rest: true } }, ground: 0 },
53
+ ],
54
+ };
55
+ }
56
+ /** Falcon 9's nine, three and one, from three of Spaceflight Now's timelines. */
57
+ const NINE = count(9, "sfn-crs-16", "The nine Merlin 1D engines, shut down at MECO.");
58
+ const THREE = count(3, "sfn-flight-23", "Three of the nine, for the boostback and again for the entry burn.");
59
+ const ONE = count(1, "sfn-flight-35", "Only the centre Merlin 1D for the landing burn.");
60
+ const UPPER = count(1, "sfn-crs-16", "The second stage's vacuum Merlin.");
61
+ const FLIGHT_5 = "wikipedia-flight-5";
62
+ const FLIGHT_7 = "wikipedia-flight-7";
63
+ const FLIGHT_12 = "wikipedia-flight-12";
64
+ const FH = "wikipedia-fh-test-flight";
65
+ const STARLINK = "sfn-starlink-2019";
66
+ const CRS16 = "sfn-crs-16";
67
+ const lower = (dy, extra = {}) => ({ dx: -0.26, dy, ...extra });
68
+ export const FLIGHTS = [
69
+ starshipFlight({
70
+ id: "starship-flight-5",
71
+ variant: "v1",
72
+ name: "Starship flight test 5",
73
+ basis: "SpaceX's timeline as Wikipedia gives it, for the flight of 13 October 2024, the first time a booster was caught at the tower.",
74
+ source: FLIGHT_5,
75
+ times: { ignition: "-00:00:03", liftoff: "+00:00:02", maxq: "+00:01:02", meco: "+00:02:35", hot: "+00:02:40", boostback: "+00:02:45", boostbackEnd: "+00:03:41", landing: "+00:06:30", landingEnd: "+00:06:54", seco: "+00:08:27", entry: "+00:48:03", flip: "+01:05:15", shipBurn: "+01:05:20", splash: "+01:05:40" },
76
+ stageEngines: count(3, SH, "The article's mission profile: all but three of its centre engines. Its interstage section says five, for the newer booster."),
77
+ backEngines: count(13, SH, "The article's mission profile: ten more lit beside the three."),
78
+ landingBurn: count(13, SH),
79
+ stageAltitude: { value: "69 km", source: FLIGHT_5 },
80
+ apogee: { value: "212 km, the Ship's highest", source: FLIGHT_5 },
81
+ shipLanding: [],
82
+ }),
83
+ starshipFlight({
84
+ id: "starship-flight-7",
85
+ variant: "v2",
86
+ name: "Starship flight test 7",
87
+ basis: "SpaceX's timeline as Wikipedia gives it, for the flight of 16 January 2025. It is the plan: the booster was caught, but the Ship was lost during its ascent, at about the time the plan has it cutting off, so the Ship's later steps were never flown.",
88
+ source: FLIGHT_7,
89
+ times: { ignition: "-00:00:03", liftoff: "+00:00:02", maxq: "+00:01:02", meco: "+00:02:32", hot: "+00:02:40", boostback: "+00:02:44", boostbackEnd: "+00:03:38", landing: "+00:06:31", landingEnd: "+00:06:55", seco: "+00:08:53", entry: "+00:47:25", flip: "+01:06:12", shipBurn: "+01:06:18", splash: "+01:06:38" },
90
+ stageEngines: count(3, SH, "The article's mission profile: all but three of its centre engines."),
91
+ backEngines: count(13, SH, "The article's mission profile: ten more lit beside the three. On this flight nine of the ten lit."),
92
+ landingBurn: count(13, FLIGHT_7, "All 13 engines ignited."),
93
+ shipLanding: [],
94
+ }),
95
+ starshipFlight({
96
+ id: "starship-flight-12",
97
+ variant: "v3",
98
+ name: "Starship flight test 12",
99
+ basis: "SpaceX's published timeline as Wikipedia gives it, for the flight of 22 May 2026, the first of Block 3. It is the plan, not what happened: the booster's engines failed after staging, and it fell into the Gulf.",
100
+ source: FLIGHT_12,
101
+ times: { ignition: "-00:00:03", liftoff: "+00:00:00", maxq: "+00:00:45", meco: "+00:02:22", hot: "+00:02:24", boostback: "+00:02:30", boostbackEnd: "+00:03:30", landing: "+00:06:34", landingEnd: "+00:06:59", seco: "+00:08:11", entry: "+00:47:47", flip: "+01:05:08", shipBurn: "+01:05:06", splash: "+01:05:26" },
102
+ stageEngines: count(5, SH, "The article's interstage section, for this booster: all but five inner engines. Its older mission profile says three."),
103
+ backEngines: count(33, SH, "The article's propulsion section: the ascent and boostback burns use all thirty-three. The flight's page counts 28 to relight, beside the five already burning."),
104
+ landingBurn: count(13, SH, "The inner thirteen."),
105
+ shipLanding: [
106
+ { id: "ship-two", name: "Three to two engines", what: "The Ship's landing burn drops to two.", at: time("+01:05:17", FLIGHT_12), burn: count(2, FLIGHT_12) },
107
+ { id: "ship-one", name: "Two to one engine", what: "And to one, for the last seconds.", at: time("+01:05:24", FLIGHT_12), burn: count(1, FLIGHT_12) },
108
+ ],
109
+ }),
110
+ {
111
+ id: "falcon-9-starlink-2019",
112
+ rocket: "falcon-9",
113
+ variant: "block-5",
114
+ name: "Falcon 9, Starlink launch of November 2019",
115
+ basis: "Spaceflight Now's timeline, published before the launch. The first stage lands on a drone ship, so there is no boostback.",
116
+ source: STARLINK,
117
+ note: "No drone ship or moving legs yet: the first stage stands on plain ground, with its legs drawn as they always are.",
118
+ phases: [
119
+ { id: "ignition", name: "Ignition", what: "The nine engines start on the pad.", at: blank("This timeline starts at liftoff."), burns: { "first-stage": NINE }, pose: {}, ground: 0, smoke: 0.7 },
120
+ { id: "liftoff", name: "Liftoff", what: "Nine Merlin engines at full thrust.", at: time("+00:00:00", STARLINK), burns: { "first-stage": NINE }, pose: {}, ground: 0.02, smoke: 1 },
121
+ { id: "max-q", name: "Max Q", what: "The point of maximum aerodynamic pressure.", at: time("+00:01:14", STARLINK), burns: { "first-stage": NINE }, pose: {}, ground: 1.6, air: 0.25 },
122
+ { id: "meco", name: "MECO", what: "The nine first stage engines shut down.", at: time("+00:02:33", STARLINK), burns: {}, pose: {}, ground: 1.6, air: 0.8 },
123
+ { id: "separation", name: "Stage separation", what: "The first stage falls away moments after MECO.", at: time("+00:02:36", STARLINK), burns: {}, pose: { "first-stage": lower(-0.05), "second-stage": { dx: 0.14, dy: 0.04 }, fairing: { dx: 0.14, dy: 0.04 } }, ground: 1.6, air: 0.9 },
124
+ { id: "second-stage", name: "Second stage ignition", what: "The vacuum Merlin lights for about six and a half minutes.", at: time("+00:02:44", STARLINK), burns: { "second-stage": UPPER }, pose: { "first-stage": lower(-0.1, { pitch: 30 }), "second-stage": { dx: 0.22, dy: 0.08 }, fairing: { dx: 0.22, dy: 0.08 } }, ground: 1.6, air: 1 },
125
+ { id: "fairing", name: "Fairing jettison", what: "The fairing comes away.", at: time("+00:03:24", STARLINK), burns: { "second-stage": UPPER }, pose: { "first-stage": lower(-0.14, { pitch: 90 }), "second-stage": { dx: 0.22, dy: 0.1 }, fairing: { dx: 0.4, dy: 0.2, gone: true } }, ground: 1.6, air: 1 },
126
+ { id: "entry-burn", name: "Entry burn ends", what: "A subset of the first stage's engines completes a burn to slow down for landing.", at: time("+00:06:41", STARLINK), burns: { "first-stage": THREE, "second-stage": UPPER }, pose: { "first-stage": lower(-0.16), "second-stage": { dx: 0.22, dy: 0.08 }, fairing: { gone: true } }, ground: 0.8, air: 0.5, altitude: { value: "from about 70 to 40 km", source: "wikipedia-landing-tests", note: "The landing tests article, for the burn in general." } },
127
+ { id: "landing-burn", name: "Landing burn", what: "Only the centre engine, just before touchdown.", at: blank("This timeline gives no time for its start."), burns: { "first-stage": ONE, "second-stage": UPPER }, pose: { "first-stage": lower(-0.3), "second-stage": { dx: 0.22, dy: 0.17 }, fairing: { gone: true } }, ground: 0.22, air: 0 },
128
+ { id: "landing", name: "Landing", what: "The first stage touches down on the drone ship, drawn here on plain ground.", at: time("+00:08:24", STARLINK), burns: { "second-stage": UPPER }, pose: { "first-stage": { dx: -0.26, rest: true }, "second-stage": { dx: 0.22, dy: 0.19 }, fairing: { gone: true } }, ground: 0, air: 1 },
129
+ { id: "seco", name: "SECO", what: "The second stage shuts down and coasts.", at: time("+00:08:49", STARLINK), burns: {}, pose: { "first-stage": { dx: -0.26, rest: true }, "second-stage": { dx: 0.22, dy: 0.11 }, fairing: { gone: true } }, ground: 0 },
130
+ ],
131
+ },
132
+ {
133
+ id: "falcon-9-crs-16",
134
+ rocket: "falcon-9",
135
+ variant: "block-5-dragon-2",
136
+ name: "Falcon 9 and Dragon, CRS-16",
137
+ basis: "Spaceflight Now's timeline for CRS-16, published before the launch of December 2018: a Block 5, returning to land. That flight carried the first Dragon, not this one, so the times are that flight's and the picture is this version's.",
138
+ source: CRS16,
139
+ note: "No moving legs or fins yet: the first stage stands on plain ground, with its legs drawn as they always are.",
140
+ phases: [
141
+ { id: "ignition", name: "Ignition", what: "The nine engines start on the pad.", at: blank("This timeline starts at liftoff."), burns: { "first-stage": NINE }, pose: {}, ground: 0, smoke: 0.7 },
142
+ { id: "liftoff", name: "Liftoff", what: "Nine Merlin engines at full thrust.", at: time("+00:00:00", CRS16), burns: { "first-stage": NINE }, pose: {}, ground: 0.02, smoke: 1 },
143
+ { id: "max-q", name: "Max Q", what: "The point of maximum aerodynamic pressure.", at: time("+00:00:58", CRS16), burns: { "first-stage": NINE }, pose: {}, ground: 1.6, air: 0.25 },
144
+ { id: "meco", name: "MECO", what: "The nine first stage engines shut down.", at: time("+00:02:23", CRS16), burns: {}, pose: {}, ground: 1.6, air: 0.8 },
145
+ { id: "separation", name: "Stage separation", what: "The first stage falls away moments after MECO.", at: time("+00:02:26", CRS16), burns: {}, pose: { "first-stage": lower(-0.04), "second-stage": { dx: 0.14, dy: 0.04 }, trunk: { dx: 0.14, dy: 0.04 }, capsule: { dx: 0.14, dy: 0.04 } }, ground: 1.6, air: 0.9 },
146
+ { id: "second-stage", name: "Second stage ignition", what: "The vacuum Merlin lights for about five and a half minutes.", at: time("+00:02:33", CRS16), burns: { "second-stage": UPPER }, pose: { "first-stage": lower(-0.08, { pitch: 30 }), "second-stage": { dx: 0.22, dy: 0.08 }, trunk: { dx: 0.22, dy: 0.08 }, capsule: { dx: 0.22, dy: 0.08 } }, ground: 1.6, air: 1 },
147
+ { id: "boostback", name: "Boostback burn", what: "Three engines push the first stage back towards the coast.", at: time("+00:02:39", CRS16), burns: { "first-stage": THREE, "second-stage": UPPER }, pose: { "first-stage": lower(-0.1, { pitch: 150 }), "second-stage": { dx: 0.22, dy: 0.1 }, trunk: { dx: 0.22, dy: 0.1 }, capsule: { dx: 0.22, dy: 0.1 } }, ground: 1.6, air: 1 },
148
+ { id: "entry-burn", name: "Entry burn", what: "Three engines again, to slow the fall.", at: time("+00:06:35", CRS16), burns: { "first-stage": THREE, "second-stage": UPPER }, pose: { "first-stage": lower(-0.14), "second-stage": { dx: 0.22, dy: 0.08 }, trunk: { dx: 0.22, dy: 0.08 }, capsule: { dx: 0.22, dy: 0.08 } }, ground: 0.8, air: 0.5, altitude: { value: "from about 70 to 40 km", source: "wikipedia-landing-tests", note: "The landing tests article, for the burn in general." } },
149
+ { id: "landing-burn", name: "Landing burn", what: "Only the centre engine, just before touchdown.", at: blank("This timeline gives no time for its start."), burns: { "first-stage": ONE, "second-stage": UPPER }, pose: { "first-stage": lower(-0.3), "second-stage": { dx: 0.22, dy: 0.17 }, trunk: { dx: 0.22, dy: 0.17 }, capsule: { dx: 0.22, dy: 0.17 } }, ground: 0.22, air: 0 },
150
+ { id: "landing", name: "Landing", what: "The planned landing, on plain ground here.", at: time("+00:08:17", CRS16), burns: { "second-stage": UPPER }, pose: { "first-stage": { dx: -0.26, rest: true }, "second-stage": { dx: 0.22, dy: 0.19 }, trunk: { dx: 0.22, dy: 0.19 }, capsule: { dx: 0.22, dy: 0.19 } }, ground: 0, air: 1 },
151
+ { id: "seco", name: "SECO", what: "The second stage shuts down.", at: time("+00:08:51", CRS16), burns: {}, pose: { "first-stage": { dx: -0.26, rest: true }, "second-stage": { dx: 0.22, dy: 0.11 }, trunk: { dx: 0.22, dy: 0.11 }, capsule: { dx: 0.22, dy: 0.11 } }, ground: 0 },
152
+ { id: "dragon", name: "Dragon separates", what: "The spacecraft comes away from the second stage.", at: time("+00:09:51", CRS16), burns: {}, pose: { "first-stage": { dx: -0.26, rest: true }, "second-stage": { dx: 0.22, dy: 0.17 }, trunk: { dx: 0.22, dy: 0.25 }, capsule: { dx: 0.22, dy: 0.25 } }, ground: 0 },
153
+ ],
154
+ },
155
+ {
156
+ id: "falcon-heavy-test-flight",
157
+ rocket: "falcon-heavy",
158
+ variant: "falcon-heavy",
159
+ name: "Falcon Heavy test flight",
160
+ basis: "The timeline Wikipedia gives for the test flight of 6 February 2018. The side boosters landed; the centre core did not, so its return is left out.",
161
+ source: FH,
162
+ note: "The painted model's centre core, upper stage and fairing are one shell, so they stay one part here: nothing is cut to fake a separation. The side boosters stand on plain ground at the end.",
163
+ phases: [
164
+ { id: "side-start", name: "Side boosters start", what: "The two side cores light first.", at: time("-00:00:05", FH), burns: { "side-left": { engines: { value: 9, source: "wikipedia-falcon-heavy" } }, "side-right": { engines: { value: 9, source: "wikipedia-falcon-heavy" } } }, pose: {}, ground: 0, smoke: 0.5 },
165
+ { id: "centre-start", name: "Centre booster starts", what: "Then the centre core: twenty-seven engines.", at: time("-00:00:03", FH), burns: { centre: { engines: { value: 9, source: "wikipedia-falcon-heavy" } }, "side-left": { engines: { value: 9, source: "wikipedia-falcon-heavy" } }, "side-right": { engines: { value: 9, source: "wikipedia-falcon-heavy" } } }, pose: {}, ground: 0, smoke: 0.8 },
166
+ { id: "liftoff", name: "Liftoff", what: "All twenty-seven at full thrust.", at: time("+00:00:00", FH), burns: { centre: { engines: { value: 9, source: "wikipedia-falcon-heavy" } }, "side-left": { engines: { value: 9, source: "wikipedia-falcon-heavy" } }, "side-right": { engines: { value: 9, source: "wikipedia-falcon-heavy" } } }, pose: {}, ground: 0.02, smoke: 1 },
167
+ { id: "max-q", name: "Max-Q", what: "The moment of peak stress on the rocket.", at: time("+00:01:06", FH), burns: { centre: { engines: { value: 9, source: "wikipedia-falcon-heavy" } }, "side-left": { engines: { value: 9, source: "wikipedia-falcon-heavy" } }, "side-right": { engines: { value: 9, source: "wikipedia-falcon-heavy" } } }, pose: {}, ground: 1.6, air: 0.25 },
168
+ { id: "beco", name: "Side boosters cut off", what: "The side cores shut down. The centre core burns on.", at: time("+00:02:29", FH), burns: { centre: { engines: { value: 9, source: "wikipedia-falcon-heavy" } } }, pose: {}, ground: 1.6, air: 0.7 },
169
+ { id: "side-separation", name: "Side cores separate", what: "They come away from the centre core.", at: time("+00:02:33", FH), burns: { centre: { engines: { value: 9, source: "wikipedia-falcon-heavy" } } }, pose: { "side-left": { dx: -0.12, dy: -0.05 }, "side-right": { dx: 0.12, dy: -0.05 } }, ground: 1.6, air: 0.8 },
170
+ { id: "side-boostback", name: "Side cores' boostback", what: "Each side core turns back to the coast.", at: time("+00:02:50", FH), burns: { centre: { engines: { value: 9, source: "wikipedia-falcon-heavy" } }, "side-left": { engines: { value: 3, source: "wikipedia-falcon-heavy", note: "The article's table: three engines restart for boostback, reentry and landing." } }, "side-right": { engines: { value: 3, source: "wikipedia-falcon-heavy", note: "The article's table: three engines restart for boostback, reentry and landing." } } }, pose: { "side-left": { dx: -0.3, dy: -0.1, pitch: 150 }, "side-right": { dx: 0.2, dy: -0.1, pitch: -150 } }, ground: 1.6, air: 1 },
171
+ { id: "meco", name: "Centre core cuts off", what: "The centre core's engines shut down.", at: time("+00:03:04", FH), burns: {}, pose: { "side-left": { dx: -0.23, dy: -0.12, pitch: 180 }, "side-right": { dx: 0.34, dy: -0.12, pitch: -180 } }, ground: 1.6, air: 1 },
172
+ { id: "side-entry", name: "Side cores' entry burn", what: "Three engines each, to slow the fall.", at: time("+00:06:41", FH), burns: { "side-left": { engines: { value: 3, source: "wikipedia-falcon-heavy" } }, "side-right": { engines: { value: 3, source: "wikipedia-falcon-heavy" } } }, pose: { "side-left": { dx: -0.23, dy: -0.12 }, "side-right": { dx: 0.34, dy: -0.12 } }, ground: 0.5, air: 0.5 },
173
+ { id: "side-burn", name: "Side cores' landing burn", what: "The last seconds before they land together.", at: blank("The page gives no time for its start."), burns: { "side-left": { engines: blank("No page read here says how many burned; one is drawn."), drawn: 1 }, "side-right": { engines: blank("No page read here says how many burned; one is drawn."), drawn: 1 } }, pose: { "side-left": { dx: -0.23, dy: -0.28 }, "side-right": { dx: 0.34, dy: -0.28 } }, ground: 0.2, air: 0 },
174
+ { id: "side-landing", name: "Side cores land", what: "Both side cores down, side by side.", at: time("+00:07:58", FH), burns: {}, pose: { "side-left": { dx: -0.23, rest: true }, "side-right": { dx: 0.34, rest: true } }, ground: 0 },
175
+ ],
176
+ },
177
+ ];
@@ -0,0 +1,3 @@
1
+ import { type Figure, type Variant } from "./types.ts";
2
+ export declare const GEMINI_WIDE: Figure;
3
+ export declare const GEMINI_VARIANTS: readonly Variant[];
@@ -0,0 +1,22 @@
1
+ // The Gemini spacecraft as its article gives it: 5.61 m long and 3 m wide. Its parts have no figure in a source read here. NASA's model at that length comes to 2.96 m wide.
2
+ import { blank } from "./types.js";
3
+ const S = "wikipedia-gemini";
4
+ export const GEMINI_WIDE = { value: 3, source: S, note: "10 feet. Its article says wide, not a diameter." };
5
+ export const GEMINI_VARIANTS = [
6
+ {
7
+ id: "gemini",
8
+ rocket: "gemini",
9
+ name: "Gemini spacecraft",
10
+ status: "flown",
11
+ firstFlight: { value: "1964-04-08", source: S, note: "Gemini 1, uncrewed. The first crewed flight was Gemini 3, on 1965-03-23." },
12
+ slots: ["adapter", "capsule"],
13
+ note: "NASA's model, its flag and the country's name painted out, in the painted look; this package's own plain shapes in the line looks. No source read here gives where the adapter ends: that is measured from NASA's model.",
14
+ facts: {
15
+ height: { value: 5.61, source: S, note: "18 feet 5 inches." },
16
+ diameter: GEMINI_WIDE,
17
+ parts: { adapter: blank("No source read here gives its size."), capsule: blank("No source read here gives its size.") },
18
+ engines: {},
19
+ more: {},
20
+ },
21
+ },
22
+ ];
@@ -0,0 +1,3 @@
1
+ import { type Figure, type Variant } from "./types.ts";
2
+ export declare const HUBBLE_WIDE: Figure;
3
+ export declare const HUBBLE_VARIANTS: readonly Variant[];
@@ -0,0 +1,23 @@
1
+ // The Hubble Space Telescope as its article gives it: 13.2 m by 4.2 m. Its solar arrays have no size in a source read here.
2
+ import {} from "./types.js";
3
+ const S = "wikipedia-hubble";
4
+ export const HUBBLE_WIDE = { value: 4.2, source: S, note: "14 feet. Its article gives 13.2 m by 4.2 m and does not say which is which." };
5
+ export const HUBBLE_VARIANTS = [
6
+ {
7
+ id: "hubble",
8
+ rocket: "hubble",
9
+ name: "Hubble Space Telescope",
10
+ status: "flown",
11
+ firstWord: "Launched",
12
+ firstFlight: { value: "1990-04-24", source: S, note: "On Space Shuttle Discovery, STS-31." },
13
+ slots: ["telescope"],
14
+ note: "NASA's model, a lettered plate painted out of its picture, in the painted look, its arrays spread as the file has them; this package's own plain shapes in the line looks. Its arrays' size has no figure in a source read here: they are NASA's model's.",
15
+ facts: {
16
+ height: { value: 13.2, source: S, note: "43 feet." },
17
+ diameter: HUBBLE_WIDE,
18
+ parts: { telescope: { value: 13.2, source: S, note: "43 feet." } },
19
+ engines: {},
20
+ more: {},
21
+ },
22
+ },
23
+ ];
@@ -0,0 +1,5 @@
1
+ import { type Figure, type Variant } from "./types.ts";
2
+ export declare const ISS_LONG: Figure;
3
+ /** NASA's model at the sourced length. */
4
+ export declare const ISS_DRAWN_TALL = 71.66;
5
+ export declare const ISS_VARIANTS: readonly Variant[];
@@ -0,0 +1,25 @@
1
+ // The International Space Station as its article gives it: 109 m long overall, 73 m across its solar arrays. NASA's model is scaled to the 109 m, and its arrays then span 71.7 m.
2
+ import { blank } from "./types.js";
3
+ const S = "wikipedia-iss";
4
+ export const ISS_LONG = { value: 109, source: S, note: "358 feet overall; 94 m (310 feet) for the truss." };
5
+ /** NASA's model at the sourced length. */
6
+ export const ISS_DRAWN_TALL = 71.66;
7
+ export const ISS_VARIANTS = [
8
+ {
9
+ id: "iss",
10
+ rocket: "iss",
11
+ name: "International Space Station",
12
+ status: "flown",
13
+ firstWord: "First module",
14
+ firstFlight: { value: "1998-11-20", source: S },
15
+ slots: ["station"],
16
+ note: "NASA's model, of the station as it was when that was made, in the painted look, scaled to the sourced length; it is not today's station. NASA's copy leaves its materials all one grey: their colours are judged from photographs. This package's own plain shapes in the line looks. It stands with its truss across the front: height here is across its arrays.",
17
+ facts: {
18
+ height: { value: 73, source: S, note: "239 feet, across its solar arrays. NASA's model, at the sourced length, comes to 71.7 m." },
19
+ diameter: ISS_LONG,
20
+ parts: { station: blank("The sourced whole; NASA's model comes to 71.7 m across its arrays.") },
21
+ engines: {},
22
+ more: { truss: { value: 94, source: S, note: "The truss's length, in metres." } },
23
+ },
24
+ },
25
+ ];
@@ -0,0 +1,3 @@
1
+ import { type Figure, type Variant } from "./types.ts";
2
+ export declare const JUPITER_C_WIDE: Figure;
3
+ export declare const JUPITER_C_VARIANTS: readonly Variant[];
@@ -0,0 +1,22 @@
1
+ // Jupiter-C as its article gives it. It is the rocket Juno I, which launched the first American satellite, was derived from.
2
+ import {} from "./types.js";
3
+ const S = "wikipedia-jupiter-c";
4
+ export const JUPITER_C_WIDE = { value: 1.8, source: S, note: "5.8 feet." };
5
+ export const JUPITER_C_VARIANTS = [
6
+ {
7
+ id: "jupiter-c",
8
+ rocket: "jupiter-c",
9
+ name: "Jupiter-C",
10
+ status: "flown",
11
+ firstFlight: { value: "1956-09-20", source: S },
12
+ slots: ["vehicle"],
13
+ note: "NASA's model, its lettering removed with the two pictures that carried it, in the painted look; this package's own plain shape in the line looks.",
14
+ facts: {
15
+ height: { value: 21.3, source: S, note: "69.9 feet." },
16
+ diameter: JUPITER_C_WIDE,
17
+ parts: { vehicle: { value: 21.3, source: S, note: "69.9 feet." } },
18
+ engines: { vehicle: { value: "1 A-7, then 11 and 3 solid rockets", source: S } },
19
+ more: {},
20
+ },
21
+ },
22
+ ];
@@ -0,0 +1,3 @@
1
+ import { type Variant } from "./types.ts";
2
+ export declare const DRONESHIP_VARIANTS: readonly Variant[];
3
+ export declare const LANDING_ZONE_VARIANTS: readonly Variant[];
@@ -0,0 +1,51 @@
1
+ // Where a booster comes down: the drone ships and the landing zones. A landing is drawn on each with Falcon 9 Block 5's first stage, its legs out. Only the first barge's deck and the Cape's pads have a size in a source read here.
2
+ import { blank } from "./types.js";
3
+ const A = "wikipedia-asds";
4
+ const L = "wikipedia-lz";
5
+ const V = "wikipedia-slc-4";
6
+ const m = (value, source, extra = {}) => ({ value, source, ...extra });
7
+ const said = (value, source, extra = {}) => ({ value, source, ...extra });
8
+ const LANDED = blank("Falcon 9 Block 5's first stage, as its own part: its legs' span has no figure for this version in a source read here.");
9
+ const DECK = (brief, note) => blank(note, brief);
10
+ const SAME = "Its own article gives no size for this ship, so it is drawn at Of Course I Still Love You's size.";
11
+ const OCISLY_NOTE = "The landing platform of the first barge of this name was 170 by 300 feet; this ship's size is said to be nearly identical.";
12
+ const ship = (id, name, firstUse, note, deckLength, deckWidth) => ({
13
+ id,
14
+ rocket: "droneship",
15
+ name,
16
+ status: "support",
17
+ firstWord: "In service",
18
+ firstFlight: firstUse,
19
+ slots: ["deck", "landed"],
20
+ note: `${note} No name, target mark or logo is drawn: its deck carries only a plain ring. Hull and equipment are judged from photographs.`,
21
+ facts: { height: blank("No source read here gives it."), diameter: blank("A ship has a length and a width instead."), parts: { deck: blank("No source read here gives its height."), landed: LANDED }, engines: {}, more: {}, sizes: { "Deck length": deckLength, "Deck width": deckWidth } },
22
+ });
23
+ export const DRONESHIP_VARIANTS = [
24
+ ship("ocisly", "Of Course I Still Love You", said("2015-06", A, { brief: "entered service", note: "On the Marmac 304 hull. It incorporated a steel blast wall." }), "The first drone ship to carry a rocket stage that landed on one, in 2016. It has been based at Long Beach since 2021.", m(91.44, A, { brief: "nearly identical to the first barge", note: `${OCISLY_NOTE} 300 feet.` }), m(51.82, A, { brief: "nearly identical to the first barge", note: `${OCISLY_NOTE} 170 feet.` })),
25
+ ship("jrti", "Just Read the Instructions", said("2016-01-17", A, { brief: "first use", note: "On the Marmac 303 hull, the third of these ships and the second of this name. Refitted with four larger thrusters in 2019 and 2020." }), "In April 2026 it was announced that it will move from Falcon to Starship work.", DECK("no source for this ship", SAME), DECK("no source for this ship", SAME)),
26
+ ship("asog", "A Shortfall of Gravitas", said("2021-07-09", A, { brief: "first sea trials", note: "On the Marmac 302 hull." }), "It needs no tug to reach the landing area.", DECK("no source for this ship", SAME), DECK("no source for this ship", SAME)),
27
+ ];
28
+ export const LANDING_ZONE_VARIANTS = [
29
+ {
30
+ id: "lz-1",
31
+ rocket: "landing-zone",
32
+ name: "Landing Zone 1, Cape Canaveral",
33
+ status: "support",
34
+ firstWord: "In service",
35
+ firstFlight: said("2015-12-22", L, { brief: "first landing", note: "On the old Launch Complex 13." }),
36
+ slots: ["pad", "landed"],
37
+ note: "A plain round concrete pad. Its real pad is marked with a stylised letter from the company's logo, and that is not drawn.",
38
+ facts: { height: blank("A pad on the ground."), diameter: m(85.95, L, { note: "282 feet." }), parts: { pad: blank("A pad on the ground."), landed: LANDED }, engines: {}, more: {} },
39
+ },
40
+ {
41
+ id: "lz-4",
42
+ rocket: "landing-zone",
43
+ name: "Landing Zone 4, Vandenberg",
44
+ status: "support",
45
+ firstWord: "In service",
46
+ firstFlight: said("2018", V, { brief: "landings began" }),
47
+ slots: ["pad", "landed"],
48
+ note: "On the old Space Launch Complex 4W. No source read here gives its size, so it is drawn at Landing Zone 1's size, and no mark is drawn.",
49
+ facts: { height: blank("A pad on the ground."), diameter: blank("No source read here gives it.", "no source"), parts: { pad: blank("A pad on the ground."), landed: LANDED }, engines: {}, more: {} },
50
+ },
51
+ ];
@@ -0,0 +1,4 @@
1
+ import { type Figure, type Variant } from "./types.ts";
2
+ export declare const LM_WIDTH: Figure<number>;
3
+ export declare const LM_ASCENT_WIDTH: Figure<number>;
4
+ export declare const LUNAR_MODULE_VARIANTS: readonly Variant[];
@@ -0,0 +1,27 @@
1
+ // The Apollo lunar module as its article gives it. NASA's model is scaled to the sourced 7.04 m; its width with the legs out then comes to 9 m against the sourced 9.4 m.
2
+ import { blank } from "./types.js";
3
+ const S = "wikipedia-lunar-module";
4
+ const m = (value, extra = {}) => ({ value, source: S, ...extra });
5
+ export const LM_WIDTH = m(9.4, { note: "31 feet, with its landing gear out. 13 feet 10 inches (4.22 m) without." });
6
+ export const LM_ASCENT_WIDTH = m(4.29, { note: "14 feet 1 inch." });
7
+ export const LUNAR_MODULE_VARIANTS = [
8
+ {
9
+ id: "lunar-module",
10
+ rocket: "lunar-module",
11
+ name: "Apollo lunar module",
12
+ status: "flown",
13
+ firstFlight: { value: "1968-01-22", source: S, note: "LM-1, uncrewed, on Apollo 5." },
14
+ slots: ["descent", "ascent"],
15
+ note: "NASA's model, its flag and the country's name removed, in the painted look; this package's own plain shapes in the line looks. Its article gives the descent stage as 3.231 m and the ascent stage as 2.832 m; NASA's model is cut where its parts meet, so each is drawn taller, with what stands on it.",
16
+ facts: {
17
+ height: m(7.04, { note: "23 feet 1 inch." }),
18
+ diameter: LM_WIDTH,
19
+ parts: {
20
+ descent: blank("10 feet 7.2 inches (3.231 m) in its article, plus 5 feet 7.2 inches (1.707 m) of landing probes. Drawn with the frames the ascent stage stands on."),
21
+ ascent: blank("9 feet 3.5 inches (2.832 m) in its article. Drawn with its antennas."),
22
+ },
23
+ engines: { descent: { value: "1 LM descent engine", source: S }, ascent: { value: "1 LM ascent engine", source: S } },
24
+ more: {},
25
+ },
26
+ },
27
+ ];
@@ -0,0 +1,16 @@
1
+ import { type Figure } from "./types.ts";
2
+ export declare const MAKERS: {
3
+ readonly spacex: "SpaceX";
4
+ readonly nasa: "NASA and partners";
5
+ readonly "blue-origin": "Blue Origin";
6
+ readonly "rocket-lab": "Rocket Lab";
7
+ readonly russia: "Russia";
8
+ readonly "us-army": "US Army";
9
+ readonly sites: "Sites";
10
+ };
11
+ export type MakerId = keyof typeof MAKERS;
12
+ export interface MadeBy {
13
+ maker: MakerId;
14
+ madeBy: Figure<string>;
15
+ }
16
+ export declare const MADE_BY: Readonly<Record<string, MadeBy>>;
@@ -0,0 +1,29 @@
1
+ // Whose each rocket is, as its own article's infobox and first lines say, read 2026-11-02. `maker` is how the demo groups them; `by` says what the source says, with the companies that built it where it names them. The sites have no maker here: a blank, not a guess.
2
+ import { blank } from "./types.js";
3
+ export const MAKERS = { spacex: "SpaceX", nasa: "NASA and partners", "blue-origin": "Blue Origin", "rocket-lab": "Rocket Lab", russia: "Russia", "us-army": "US Army", sites: "Sites" };
4
+ const SITE = { maker: "sites", madeBy: blank("A place or a ship, not a vehicle: its maker is not read here.") };
5
+ export const MADE_BY = {
6
+ starship: { maker: "spacex", madeBy: { value: "SpaceX", source: "wikipedia-starship" } },
7
+ "falcon-9": { maker: "spacex", madeBy: { value: "SpaceX", source: "wikipedia-falcon-9" } },
8
+ "falcon-heavy": { maker: "spacex", madeBy: { value: "SpaceX", source: "wikipedia-falcon-heavy" } },
9
+ dragon: { maker: "spacex", madeBy: { value: "SpaceX", source: "wikipedia-dragon-2" } },
10
+ grasshopper: { maker: "spacex", madeBy: { value: "SpaceX", source: "wikipedia-grasshopper" } },
11
+ "falcon-1": { maker: "spacex", madeBy: { value: "SpaceX", source: "wikipedia-falcon-1" } },
12
+ "saturn-v": { maker: "nasa", madeBy: { value: "Developed by NASA; built by Boeing, North American and Douglas", source: "wikipedia-saturn-v" } },
13
+ "space-shuttle": { maker: "nasa", madeBy: { value: "Operated by NASA; built by United Space Alliance, Thiokol and Alliant Techsystems, Lockheed Martin and Martin Marietta, Boeing and Rockwell", source: "wikipedia-space-shuttle" } },
14
+ sls: { maker: "nasa", madeBy: { value: "Used by NASA; built by Aerojet Rocketdyne, Boeing, Northrop Grumman and United Launch Alliance", source: "wikipedia-sls" } },
15
+ "new-glenn": { maker: "blue-origin", madeBy: { value: "Blue Origin", source: "wikipedia-new-glenn" } },
16
+ electron: { maker: "rocket-lab", madeBy: { value: "Rocket Lab", source: "wikipedia-electron" } },
17
+ soyuz: { maker: "russia", madeBy: { value: "RKTs Progress, Russia", source: "wikipedia-soyuz-2" } },
18
+ "lunar-module": { maker: "nasa", madeBy: { value: "Operated by NASA; built by Grumman", source: "wikipedia-lunar-module" } },
19
+ "apollo-soyuz": { maker: "nasa", madeBy: { value: "Operated by NASA and the Soviet space program; Apollo built by North American Rockwell, Soyuz by NPO Energia", source: "wikipedia-apollo-soyuz" } },
20
+ gemini: { maker: "nasa", madeBy: { value: "NASA; its capsule built by McDonnell Aircraft", source: "wikipedia-gemini" } },
21
+ mercury: { maker: "nasa", madeBy: { value: "NASA; built by McDonnell Aircraft", source: "wikipedia-mercury" } },
22
+ "jupiter-c": { maker: "us-army", madeBy: { value: "Designed by the US Army Ballistic Missile Agency; built by Chrysler", source: "wikipedia-jupiter-c" } },
23
+ iss: { maker: "nasa", madeBy: { value: "Its US segment built by NASA, ESA, JAXA and CSA, its Russian segment developed by Roscosmos", source: "wikipedia-iss" } },
24
+ hubble: { maker: "nasa", madeBy: { value: "NASA's Great Observatories program; operated by STScI; built by Lockheed Martin and Perkin-Elmer", source: "wikipedia-hubble" } },
25
+ droneship: SITE,
26
+ "landing-zone": SITE,
27
+ "launch-tower": SITE,
28
+ starbase: SITE,
29
+ };
@@ -0,0 +1,3 @@
1
+ import { type Figure, type Variant } from "./types.ts";
2
+ export declare const MERCURY_WIDE: Figure;
3
+ export declare const MERCURY_VARIANTS: readonly Variant[];
@@ -0,0 +1,22 @@
1
+ // The Mercury spacecraft as its article gives it: 3.3 m long without its escape tower, and 1.8 m wide.
2
+ import {} from "./types.js";
3
+ const S = "wikipedia-mercury";
4
+ export const MERCURY_WIDE = { value: 1.8, source: S, note: "6 feet. Its article says wide, not a diameter." };
5
+ export const MERCURY_VARIANTS = [
6
+ {
7
+ id: "friendship-7",
8
+ rocket: "mercury",
9
+ name: "Mercury spacecraft, Friendship 7",
10
+ status: "flown",
11
+ firstFlight: { value: "1962-02-20", source: S, note: "Friendship 7, on Mercury-Atlas 6. The first crewed Mercury was Freedom 7, on 1961-05-05." },
12
+ slots: ["capsule"],
13
+ note: "NASA's model in the painted look, scaled to the sourced length and width, which are two scales, 19% apart, because the file is stouter than its sources. NASA's copy leaves its materials all one grey: their colours are judged from photographs. This package's own plain shape in the line looks. No name or flag is drawn.",
14
+ facts: {
15
+ height: { value: 3.3, source: S, note: "10.8 feet, without its escape tower; 25.9 feet (7.9 m) with it." },
16
+ diameter: MERCURY_WIDE,
17
+ parts: { capsule: { value: 3.3, source: S, note: "10.8 feet." } },
18
+ engines: {},
19
+ more: {},
20
+ },
21
+ },
22
+ ];
@@ -0,0 +1,2 @@
1
+ import { type Variant } from "./types.ts";
2
+ export declare const NEW_GLENN_VARIANTS: readonly Variant[];
@@ -0,0 +1,23 @@
1
+ // New Glenn as its article gives it. Its fairing has no length here: it is what the whole leaves above the second stage's figure.
2
+ import { blank } from "./types.js";
3
+ const S = "wikipedia-new-glenn";
4
+ const m = (value, source, extra = {}) => ({ value, source, ...extra });
5
+ const said = (value, source, extra = {}) => ({ value, source, ...extra });
6
+ export const NEW_GLENN_VARIANTS = [
7
+ {
8
+ id: "7x2",
9
+ rocket: "new-glenn",
10
+ name: "New Glenn 7×2",
11
+ status: "flown",
12
+ firstFlight: said("2025-01-16", S),
13
+ slots: ["first-stage", "second-stage", "fairing"],
14
+ note: "Seven engines below and two above. No source read here gives the fairing's own length, so it is what the whole leaves. Its legs and strakes are judged from photographs, and no name or mark is drawn. The 9×4, announced in 2025, is not listed: its article gives it only as about 400 feet, with no parts.",
15
+ facts: {
16
+ height: m(98, S),
17
+ diameter: m(7, S),
18
+ parts: { "first-stage": m(57.5, S), "second-stage": m(23.4, S), fairing: blank("No source read here gives its length.") },
19
+ engines: { "first-stage": said("7 BE-4", S), "second-stage": said("2 BE-3U", S) },
20
+ more: {},
21
+ },
22
+ },
23
+ ];
@@ -0,0 +1,2 @@
1
+ import { type Variant } from "./types.ts";
2
+ export declare const SATURN_V_VARIANTS: readonly Variant[];
@@ -0,0 +1,32 @@
1
+ // Saturn V as flown for Apollo. Its article states feet: each value here is that figure in metres, and its note keeps the feet. The Apollo spacecraft's parts are from their own articles.
2
+ import { blank } from "./types.js";
3
+ const S = "wikipedia-saturn-v";
4
+ const C = "wikipedia-apollo-csm";
5
+ const m = (value, source, extra = {}) => ({ value, source, ...extra });
6
+ const said = (value, source, extra = {}) => ({ value, source, ...extra });
7
+ export const SATURN_V_VARIANTS = [
8
+ {
9
+ id: "saturn-v",
10
+ rocket: "saturn-v",
11
+ name: "Saturn V (Apollo)",
12
+ status: "flown",
13
+ firstFlight: said("1967-11-09", S, { note: "Apollo 4, uncrewed. The first crewed flight was Apollo 8, in 1968." }),
14
+ slots: ["first-stage", "second-stage", "third-stage", "adapter", "service-module", "capsule", "escape-tower"],
15
+ note: "With the Apollo spacecraft on top. The lunar module rode unseen inside the adapter, and is not drawn. Its black and white paint is judged from photographs; no flag or lettering is drawn. The escape tower has no size in a source read here, so it is what the whole leaves.",
16
+ facts: {
17
+ height: m(110.64, S, { note: "363 feet, with the Apollo spacecraft." }),
18
+ diameter: m(10.06, S, { note: "33 feet. The third stage is 21 feet 8 inches." }),
19
+ parts: {
20
+ "first-stage": m(42.06, S, { note: "S-IC, 138 feet." }),
21
+ "second-stage": m(24.87, S, { note: "S-II, 81 feet 7 inches." }),
22
+ "third-stage": m(17.86, S, { note: "S-IVB, 58 feet 7 inches. The flare down from the second stage is drawn as part of it, which is the only way the sourced lengths add up to the whole." }),
23
+ adapter: m(9.45, "wikipedia-apollo-spacecraft", { brief: "added from two articles", note: "The instrument unit, 36 inches (its own article), and the spacecraft-lunar module adapter's 7 foot and 21 foot panels." }),
24
+ "service-module": m(7.49, C, { note: "24 feet 7 inches with its engine's nozzle, which nests in the adapter; 14 feet 10 inches without." }),
25
+ capsule: m(3.48, C, { note: "11 feet 5 inches, with its docking probe and heat shield." }),
26
+ "escape-tower": blank("No source read here gives its size: it and its cover over the capsule are what the sourced whole leaves."),
27
+ },
28
+ engines: { "first-stage": said("5 F-1", S), "second-stage": said("5 J-2", S), "third-stage": said("1 J-2", S), "service-module": said("1 service propulsion engine", C) },
29
+ more: {},
30
+ },
31
+ },
32
+ ];
@@ -0,0 +1,5 @@
1
+ import { type Figure, type Variant } from "./types.ts";
2
+ export declare const SHUTTLE_TANK_DIAMETER: Figure<number>;
3
+ export declare const SHUTTLE_SRB_DIAMETER: Figure<number>;
4
+ export declare const ORBITER_SPAN: Figure<number>;
5
+ export declare const SHUTTLE_VARIANTS: readonly Variant[];