Skip to the content

Uchusen Rockets宇宙船

Rockets drawn from sourced sizes: line drawings and painted 3D views you drop into a page, take apart and turn round, and a typed model that checks whether a rocket really goes together.

Uchusen is the Japanese word 宇宙船 for spaceship. About the name

Contents

Explanation

Variants and sourced sizes

Why every rocket comes in versions, how a figure names its source, and what a blank or a disagreement means.

Rockets change. Starship Block 1 is not Block 3, and a Falcon 9 from 2012 is not a Block 5. So the package never has one "Falcon 9"; it has the variants a source documents, each with its own sizes.

Every rocket at one scale: Starship, Falcon 9, Falcon 9 with Dragon 2, Falcon Heavy, Grasshopper and Dragon 2.

A figure names its source, or is blank

Every size, count and date in the data is a Figure: a value, the id of the source it came from, and a date where the source has one. A figure with no source is blank (value is null) and is never estimated to fill a gap.

import { SOURCES, variantOf } from "@johnmorrisdotca/uchusen-rockets";

const v3 = variantOf("starship", "v3");
const height = v3?.facts.height;
console.log(height?.value, height?.source, height?.source ? SOURCES[height.source].url : "");
124.4 wikipedia-starship https://en.wikipedia.org/wiki/SpaceX_Starship

SOURCES is the table every id points into: title, publisher, address, the date on the page, and whether it was read directly, found by search or cited by another page.

Where sources disagree

Sources do not always agree. The figure keeps the value the package chose and lists the others in others, each with who said it and why it was not chosen.

import { variantOf } from "@johnmorrisdotca/uchusen-rockets";

const booster = variantOf("starship", "v3")?.facts.parts.booster;
for (const other of booster?.others ?? []) console.log(other.value, other.source, other.note);
72 spacex-starship SpaceX's page as quoted by a search engine: 72 m (236 ft), rounded.
81 wikipedia-starship 81 m is Block 4's cell in Wikipedia's table, where colspans shift the columns. A site that printed it for Block 3 misread it: 81 m plus 52.1 m does not make 124.4 m.

Words that must stay beside a number

Some figures are announced and not built, or stated in a form that is not the whole story. Such a figure has a brief: a few words that must stay beside the value wherever it is shown. figureWords writes a figure the way a table should.

import { figureWords, variantOf } from "@johnmorrisdotca/uchusen-rockets";

const v4 = variantOf("starship", "v4");
console.log(v4?.status, figureWords(v4?.facts.height, " m"));
announced 142 m, announced, an estimate

Block 4 is announced, not built, so its height reads as an estimate. A reader cannot take it for a measured size.

Statuses

A variant's status is flown, announced, artist-model, test-vehicle or support. A rocket labelled as a real version uses only parts true for it. Anything that mixes parts is a custom build and says so.

Finding what exists

ROCKETS is a record by id. Each entry lists its variants in order and names its default.

import { ROCKETS } from "@johnmorrisdotca/uchusen-rockets";

for (const rocket of Object.values(ROCKETS).slice(0, 5)) console.log(rocket.id, rocket.variants.map((variant) => variant.id).join(" "));
starship v1-flight1 v1 v2 v3 v4 2019
falcon-9 v1.0 v1.0-dragon v1.1 ft block-5 block-5-dragon-2
falcon-heavy falcon-heavy
dragon dragon-1 dragon-2 cargo-dragon-2 crew-dragon-inside
grasshopper grasshopper

PLANNED_ROCKETS lists rockets with sourced facts and no shape yet.

Why it is built this way

A drawing that looks right and is wrong by ten metres is worse than no drawing. Because a mesh and a drawing come from the same sourced numbers, they cannot disagree with each other or with the table beside them. See Architecture.

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/uchusen-rockets 0.14.0.