← DomeSketch studio

The design format

A DomeSketch design is one small JSON object — every input the studio needs to rebuild the dome. It travels as a .domesketch.json file or as a URL, and anyone can read it without DomeSketch code. Version 1. Unknown keys are ignored; out-of-range values are adjusted and reported, so a hand-edited or older file still opens.

Example

{
  "format": "domesketch",
  "version": 1,
  "kind": "geodesic",
  "style": "glamping",
  "frequency": 3,
  "fraction": 0.625,
  "diameterFt": 20,
  "strut": "emt-1",
  "cover": "canvas",
  "hub": "star-plate",
  "shell": {
    "profile": "catenary",
    "diameterFt": 20,
    "heightFt": 14
  }
}

The same design as a link: https://domesketch.ai/?v=3&p=0.625&d=20&s=emt-1&c=canvas&h=star-plate&st=glamping&sp=catenary&sd=20&sh=14

Fields

FieldURL keyMeaning
format—Always "domesketch".
version—Integer; this is version 1.
kind—"geodesic". Other kinds are reserved.
stylestOptional preset the design started from (informational).
frequencyvClass I icosahedral subdivision frequency, 1–6.
fractionpPortion of the sphere kept, by height: 0.5, 0.625 or 0.375. Snapped to what the frequency supports.
diameterFtdSphere diameter in feet, 6–60.
strutsOne of 2x42x6emt-3/4emt-1pvc-1alu-1.5
hubhOne of wood-flatpipe-flattenstar-plateball-hub
covercOne of nonepoly-filmpolycarbonatecanvasplywood-shinglewood-sidingglass
shellsp, sd, shOptional monolithic shell for cement-print and AirCrete planning: profile (hemisphere, catenary, pointed), diameterFt, heightFt.
padpa, pt, pe, pw, pd, prOptional concrete pad: apronFt, thicknessIn, edge (thickened edge, URL 0|1), edgeWidthIn, edgeDepthIn, reinforcement (mesh|rebar, URL m|r), plus rebarSpacingIn and boltIn in JSON. Absent = none.
rainwaterrr, rs, rg, roOptional rainwater capture: annualRainIn, designStormIn, drumGal, dripRingOffsetFt in the URL; JSON also carries firstFlushGal, drum dimensions, emitter spacing/rate and hours per day. Absent = none.
riserrwOptional riser (stem) wall under the base ring: heightFt (0–8; 0 = none), plus studSpacingIn in JSON. The door is measured from the ground, so a riser taller than the door needs no dormer.
windowswOptional list (up to 6) of vertical boxed windows: azimuthDeg, widthFt (1–8), heightFt (1–8), sillFt (0.5–12, from the ground). URL: w=az:width:height:sill,….
claddingzOptional cladding zones (up to 6), applied in order over cover: each has a cover, optional rows (panel rows from the base ring, 0 = base; omitted = all) and an optional arc azimuthDeg + spanDeg (10–360). URL: z=cover:rows:az:span,… with rows as 0.1, blanks for "all".
vestibuleta, tl, tw, tf, th, td, teOptional hexagonal-section entry tunnel from the base row with the door in its end wall: azimuthDeg (direction it runs out), lengthFt past the base ring (3–20), widthFt at mid-height (4–14), floorFt (the flat bottom and the ridge, ≤ width), heightFt floor to ridge (6–11), doorWidthFt, doorHeightFt. Absent = none.
deckka, kh, ks, kzOptional timber deck the dome stands on (instead of a pad): apronFt (1–14), heightFt above grade (0.5–8), shape (square|round, URL s|r), stairAzimuthDeg; JSON also carries boardWidthIn and joistSpacingIn. Absent = none.
hivehp hd hs ht hw hk hr hg hpath hc palOptional Hive Domes settlement: people, days, stay, toilet, water, kitchen, site (radius, separation, paths, common domes) and a palette of plain designs for the kitchen, sanitation and common domes (URL: pal=v:p:d:s:c:h,…). This design is the sleeping dome. Rate overrides ride in JSON only.
doorda, dw, dhOptional dormer doorway: azimuthDeg (direction it faces, 0 = +x, counter-clockwise from above), widthFt (2–8), heightFt (5–10). Absent = no door.

Units and geometry

Feet throughout. The geometry is a Class I (alternate) icosahedral breakdown with a vertex at the pole; the cut snaps to the nearest vertex ring, so the achieved fraction can differ slightly from the requested one on odd frequencies. Strut counts and chord factors reproduce the published 2V/3V/4V tables.

The reference implementation is utils/dome/design.ts in the DomeSketch source. The format is free to implement.