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

BUILDERSconstant

The kit's builders, for a ship that needs a module of its own size: a 40 m container, an 80 m tank, a 165 m ring, a 24 m truss bay. Each takes the numbers a module is made from and gives a KitModule with the same collars, detail and cutaway; the ship adds it to its list by putting it in its own table, or by shipParts.

Import it

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

Definition

const BUILDERS: { readonly container: (id: string, name: string, L: number, cold: boolean, mass: number) => KitModule; readonly tank: (id: string, name: string, R: number, L: number, top: CollarClass, bottom: CollarClass, mass: number, propellant: number, note: string) => KitModule; readonly habitatRing: (id: string, name: string, major: number, mass: number) => KitModule; readonly habitatDrum: (id: string, name: string, R: number, L: number, mass: number, farm: boolean) => KitModule; readonly truss: (id: string, name: string, L: number, cls: CollarClass, mass: number) => KitModule; readonly radiatorArray: (id: string, name: string, deployed: boolean, mass: number) => KitModule; readonly engineCluster: (count: 1 | 3 | 4 | 7, id: string, name: string, mass: number) => KitModule; readonly adapter: (id: string, from: CollarClass, to: CollarClass, mass: number) => KitModule; readonly dockingNode: (id: string, name: string, count: number, cls: CollarClass, mass: number) => KitModule; readonly bay: (o: { id: string; name: string; note: string; R: number; L: number; mass: number; furniture: Furniture; digits: string; glass: "glass" | "plant" | "none"; livery: LiveryName; spacing?: number; slot?: string; extra?: (ctx: Ctx, y0: number, y1: number) => Piece[]; }) => KitModule; readonly missionPod: (kind: "survey" | "medical") => KitModule; } = { container, tank, habitatRing, habitatDrum, truss, radiatorArray, engineCluster, adapter, dockingNode, bay, missionPod } as const

Members

NameTypeDescription
container(id: string, name: string, L: number, cold: boolean, mass: number) => KitModule
tank(id: string, name: string, R: number, L: number, top: CollarClass, bottom: CollarClass, mass: number, propellant: number, note: string) => KitModule
habitatRing(id: string, name: string, major: number, mass: number) => KitModule
habitatDrum(id: string, name: string, R: number, L: number, mass: number, farm: boolean) => KitModule
truss(id: string, name: string, L: number, cls: CollarClass, mass: number) => KitModule
radiatorArray(id: string, name: string, deployed: boolean, mass: number) => KitModule
engineCluster(count: 1 | 3 | 4 | 7, id: string, name: string, mass: number) => KitModule
adapter(id: string, from: CollarClass, to: CollarClass, mass: number) => KitModule
dockingNode(id: string, name: string, count: number, cls: CollarClass, mass: number) => KitModule
bay(o: { id: string; name: string; note: string; R: number; L: number; mass: number; furniture: Furniture; digits: string; glass: "glass" | "plant" | "none"; livery: LiveryName; spacing?: number; slot?: string; extra?: (ctx: Ctx, y0: number, y1: number) => Piece[]; }) => KitModule
missionPod(kind: "survey" | "medical") => KitModule

Examples

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

const container40 = BUILDERS.container("my-container-40", "Container, 40 m", 40, false, 400);
console.log(container40.length, container40.pieces({ detail: 0.4 }).length > 100);
40 true

What it prints (run when this page was built)

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