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

Reference · Rockets, variants, parts and the fit check

KitModuletype

One module of the kit: its name, mass and size in metres, the collars at its ends, the ports on its side, and how to draw it. The origin is the middle of its base on the spine, Y up the spine, and the module stands from y = 0 to y = length.

Import it

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

Definition

interface KitModule {
    id: string;
    name: string;
    kind: ModuleKind;
    note: string;
    mass: number;
    propellant: number;
    length: number;
    width: number;
    depth: number;
    top?: CollarClass;
    bottom?: CollarClass;
    ports: readonly Port[];
    ancestor: string;
    inside: boolean;
    slot?: string;
    livery: LiveryName;
    pieces: (options?: ModuleOptions) => Piece[];
}

Members

NameTypeDescription
idstring
namestring
kindModuleKind
notestring

What it is, in a line a catalogue could print.

massnumber

Dry mass in tonnes.

propellantnumber

Propellant it holds when full, in tonnes; 0 for a module with none.

lengthnumber

Metres along the spine (Y).

widthnumber

Metres across its widest reach in X and in Z.

depthnumber
top (optional)CollarClass | undefined

The collar on its top (the end the spine continues to) and on its bottom. A module with neither is not on a spine: it hangs from a port.

bottom (optional)CollarClass | undefined
portsreadonly Port[]

Ports on its side.

ancestorstring

The real hardware it descends from, in a line a reader can look up.

insideboolean

Whether it has an inside to show.

slot (optional)string | undefined

A slot name shared by modules that swap for one another: the same collars, the same size.

livery"foil" | "industrial" | "science" | "command" | "transport"
pieces(options?: ModuleOptions) => Piece[]

The pieces, in metres.

Examples

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

const tank = KIT["tank-cryo-12"];
console.log(tank.name, tank.mass, tank.length, tank.width);
Cryogenic fuel tank, 12 m 160 12 13.4

What it prints (run when this page was built)

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