FirstRig
firstrig.com

Observatory build 3D model

The 3D model

The deck, pier and dome generated from the build spec, as designed and as built. Orbit it, take it apart layer by layer, or download either .glb.

Generated from the build spec; approximate where marked.

Read this

This is one person’s build, not engineering guidance. Local codes, soils and loads vary.

Everything but the future bay, from the door side. The dome is drawn translucent so the pier shows through.

Design

Loading the design model…

Drag to orbit · scroll or pinch to zoom · right-drag or two-finger drag to pan. The presets put the camera back. Hatched parts are approximate: the spec does not give their size or position.

Layers

Files: design 181 KB, as built 185 KB. The as-built model loads when you choose it.

Where the model is approximate

A script builds both models from build-spec.json, the same file every number in this guide comes from. Where the spec has no figure a part needs, the part is drawn as a plain proxy or left out, never given a made-up size. Framing is drawn at standard dressed lumber sizes (a 2×8 is 1½″ × 7¼″), which the spec’s own spacings assume.

Hatched in the viewer

  • 2×8 rim (as built). Drawn top-flush with the joists. Its height was never re-measured (open item: 2×8 rim as built).
  • Front wrap (as built). One 5/4 × 6 board on the east (door) face, full length, top flush with the deck. The spec says front face only; its length and position were not recorded.
  • Ripped board (as built). The middle (11th) of 21 boards, 4⅝″ wide. The spec gives its width, not exactly where it lands.
  • Pier adapter. One plain cylinder of the assembled height (4⅞″), drawn at the pier diameter on the concrete top. The rotors' diameter and thickness are not in the spec, so the two rotors, the spacers and the 2½″ as-built gap cannot be drawn.
  • Posts. From the block top to the joist top. Each post was cut individually; no length is recorded.

Simplified or left out

  • Decking layout. Boards laid from the west edge at the ⅛″ gap, leaving the remainder at the east edge. The spec gives the count, width and gap, not where the remainder went.
  • Pier opening and hatch. Boards stop at the 14½″ opening; the hatch is not drawn. The hatch panel's size and fit around the pier are not in the spec.
  • Pier column. The 13″ hole up to grade, the column above it. Where the form tube starts below grade is not recorded.
  • Pier height (design). Placed 29⅝″ above the deck surface (top_above_floor), which puts it 41⅜″ above grade. The spec's form height_cut_to is 40¼″ above grade, 1⅛″ lower. The spec makes the deck surface the datum, so the deck-relative figure wins.
  • Deck height (as built). Kept at the design joist top; the pier top is placed from the deck surface. The deck surface is the spec's datum; grade was not re-measured.
  • Dome. Walls as one surface on the 88″ ring; the shell as a hemisphere of the 92″ outer diameter. Wall thickness, the ring's section and the shell profile are not in the spec.
  • Blocking. Joist stock (2×8). The spec gives blocking lengths, not sizes.
  • Blocks. Plain boxes at the spec's size. The block's taper and post pocket are not in the spec.
  • Left out. Gravel pads, rebar ties and footing cross bars, conduit runs, nuts and washers, joist hangers, carriage bolts, the door and the aperture, the entry step. Their positions or sizes are not in the spec.

The layers, and where each is explained

How the files are made

apps/web/scripts/generate-observatory-model.mjs reads build-spec.json and writes both .glb files directly: no modeling program, no dependencies, the same bytes every time. The site’s tests regenerate them, require an exact match, and re-measure the pier, the deck, the board count and the dome ring from the files against the spec. The viewer colors every material from the site’s design tokens.