Northline

Generative Assets · Industry Demos · how it was made

How the Northline Building Design demo was built

Northline Building Design is a fictional Joondalup building design practice — concept design and 3D views, working drawings, council and engineering coordination for new homes, extensions, second storeys and renovations across Perth's northern corridor. The page exists for one reader: the owner with a block or a house and a brief, who wants the design fee priced honestly before they book a consult. Its single job is a design-consult request with the project, floor area and scope already attached.

The Design Planner

The signature element is a drawn SVG elevation on a drafting sheet — white sheet, thin ultramarine border, tan ruled margin with fold marks, a faint drafting grid, a legend, an honest "NTS" notes block and the sheet note "concept elevation · not for construction". The project chip redraws the elevation; every other control redraws a detail and reprices the fee from the pinned anchors:

Pinned anchors (GST inclusive design fees)

ProjectConcept design & 3D viewsArea floorWorking drawingsTimeline with working drawingsCheapest output (grid floor)
New home$3,800 + $8/m²120 m²$1,200 + $14/m²about 8 weeks to council-ready drawings$4,760
Extension$2,600 + $8/m²40 m²$900 + $14/m²about 6 weeks$2,920
Second storey$3,200 + $8/m²60 m²$1,100 + $16/m²about 7 weeks$3,680
Renovation drafting$1,900 + $6/m²40 m²$700 + $10/m²about 5 weeks$2,140

Council & engineering coordination is +$1,200 flat and requires working drawings; the NatHERS energy assessment is +$450 flat at every combination. The concept per-m² and the working-drawings per-m² multiply the floor area; the bases, council and energy are flat. Structural engineering, surveys, soil tests and council lodgement fees carry no number anywhere — the footnote wherever the total prints, the declaration line in the ledger and mirror, the services note and the FAQ. There is no empty state: a project chip is always selected and the area has a floor. Every rate is a whole dollar and every area a whole multiple of 20, so no total ever needs rounding — totals display to the whole dollar with thousands separators.

Worked examples measured from the running page

ScenarioArithmeticTotalLine 2Footnote
Rest state — extension, 80 m², working drawings, council, energy2,600 + 640 · 900 + 1,120 · 1,200 · 450$6,910about 6 weeks to council-ready drawingspresent
Renovation drafting, 40 m², concept only (grid floor)1,900 + 240$2,140about 3 weeks to concept and 3D viewsabsent
Extension 40 · second storey 60 · new home 120, concept only2,600 + 320 · 3,200 + 480 · 3,800 + 960$2,920 · $3,680 · $4,760about 3 weeks…absent
New home, 200 m², all on3,800 + 1,600 · 1,200 + 2,800 · 1,200 · 450$11,050about 8 weeks…present
Renovation drafting, 120 m², all on1,900 + 720 · 700 + 1,200 · 1,200 · 450$6,170about 5 weeks…present
New home, 400 m², all on3,800 + 3,200 · 1,200 + 5,600 · 1,200 · 450$15,450about 8 weeks…present
Lock drive — second storey, 100 m², working drawings, no council, no energy → council on → working drawings off → working drawings on3,200 + 800 + 1,100 + 1,600 → +1,200 → 3,200 + 800 → restored$6,700 → $7,900 → $4,000 → $7,9007 weeks → 7 weeks → 3 weeks concept → 7 weeksabsent → present → absent → present
Rapid-fire — 80 m², all on, then new home → renovation → second storey → extension in one evaluatenew home clamps the area to 120; 2,600 + 960 · 900 + 1,680 · 1,200 · 450$7,790about 6 weeks…present

All twelve pinned worked figures, the four cheapest-output floors (equal to the services grid), the display-line variants, the lock drive by click, forty random control vectors and two rapid-fire bursts were cross-checked against an oracle reimplemented from the anchors in the verification harness, not from the page's own code — 603 assertions in the final pass (the site's 584 plus 19 on this guide), all green.

Palette — argued from drafting paper, a graphite pencil, ultramarine ink and tan trace

Warm-white paper ground, graphite body ink, ultramarine for CTAs, links and the drawn lines, tan trace for fills only. Contrast ratios below were computed with WCAG arithmetic from the shipped tokens in Pass 1 (role, hex and ratio from the same script row).

Paper#F8F7F3 page ground; cards #FFFFFF, inputs #F3F1EA
Graphite#2A2C30 body ink · 13.05:1 on paper, 13.99:1 on white; the existing house's lines
Ultramarine#2E4FB5 CTAs with white labels 7.24:1 (hover #26419A 9.11:1); as link ink 6.75:1 on paper, 7.24:1 on white, 6.07:1 on its own tint; the new work, dimension strings, chip outlines, the title block
Tan trace#D8C8A6 the sheet margin, grid, sun path · 1.54:1 on paper — fill and lines only, never text
Tan-ink#7A6840 eyebrows, the badge footnote, sheet notes · 5.05:1 on paper, 5.41:1 on white
Graphite-soft#5A5D66 secondary copy, hints, "not selected" lines · 6.14:1 on paper, 6.58:1 on white, 5.51:1 on the ultramarine tint
Ocean#DCE3F5 the map's sea · graphite labels on it 10.89:1, ultramarine routes 5.63:1
Footer light ink#D9DBE0 on graphite 10.10:1; quiet links #A9ADB7 6.23:1
Error ink#A23B2A form errors · 6.57:1 on white, 5.88:1 on the error tint

Every spec figure measured within 0.1 of its computed hypothesis (graphite 13.05 vs 13.1, ultramarine CTA 7.24 vs 7.2, link 6.75 vs 6.8, tan-ink 5.05 vs 5.1). One derived pair was held back: tan-ink on the tan tint measures 4.51:1, so tan-coloured small copy sits only on paper or white, never on the tint. Map labels are graphite with a paper or ocean halo (paint-order: stroke) and measure 10.89–13.05:1 against every fill they cross.

Type

$6,910 · Extension
Manrope 700/800 — a clean geometric that sets like a title block. Headings, the display line over the sheet, the title-block price, stepper values, the LODGED stamp and dimension text.
Concept plans, elevations and 3D views you can stand in, then working drawings a builder will quote from without a question.
Source Sans 3 400–700 — the workhorse: 17 px body (16 px minimum on mobile), labels, ledger, form, sheet notes. Eyebrows in 12.5 px caps at .14 em tracking.

The display moment is the rest-state line set over the sheet — "$6,910 · EXTENSION · 80 M² · COUNCIL-READY IN 6 WEEKS" — rebuilt from state on every change (the separators travel with the token that follows them, so a wrap never strands a middle dot at a line end). With working drawings off the last token becomes "CONCEPT & 3D VIEWS IN 3 WEEKS".

Techniques

Conversion decisions

Local SEO we'd implement for the real business

The live page carries only WebPage, WebSite and BreadcrumbList structured data naming it a demonstration — a fictional practice must not mark itself up as a real one. For the real client we would ship the block below. The top-level type is ProfessionalService: a building design practice is a design service, not HomeAndConstructionBusiness, which would imply a builder — and this practice says plainly that it is not one. Real reviews would be pulled from Google Business Profile and marked up only with the reviewer's consent.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Northline Building Design",
  "description": "Building designers in Joondalup — concept design and 3D views, working drawings, council and engineering coordination for new homes, extensions, second storeys and renovations across Perth's northern suburbs.",
  "url": "https://www.example-northline.com.au/",
  "telephone": "+61 8 9000 0369",
  "image": "https://www.example-northline.com.au/studio.jpg",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Joondalup",
    "addressRegion": "WA",
    "postalCode": "6027",
    "addressCountry": "AU"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": -31.74, "longitude": 115.77 },
  "areaServed": ["Joondalup", "Hillarys", "Kingsley", "Currambine", "Duncraig", "Wanneroo", "Scarborough", "Mindarie", "Padbury"],
  "openingHoursSpecification": [
    { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "08:30", "closes": "17:00" }
  ],
  "knowsAbout": ["building design", "concept design", "3D visualisation", "working drawings", "building permit documentation", "NatHERS energy assessment", "second storey additions", "home extensions"],
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Design services",
    "itemListElement": [
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Renovation drafting — concept design and 3D views" }, "priceSpecification": { "@type": "PriceSpecification", "price": "2140", "priceCurrency": "AUD", "description": "from, 40 m²" } },
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Extension — concept design and 3D views" }, "priceSpecification": { "@type": "PriceSpecification", "price": "2920", "priceCurrency": "AUD", "description": "from, 40 m²" } },
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Second storey — concept design and 3D views" }, "priceSpecification": { "@type": "PriceSpecification", "price": "3680", "priceCurrency": "AUD", "description": "from, 60 m²" } },
      { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "New home — concept design and 3D views" }, "priceSpecification": { "@type": "PriceSpecification", "price": "4760", "priceCurrency": "AUD", "description": "from, 120 m²" } }
    ]
  },
  "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.9", "reviewCount": "64" },
  "review": [
    {
      "@type": "Review",
      "author": { "@type": "Person", "name": "Real client, with consent" },
      "datePublished": "2026-05-02",
      "reviewRating": { "@type": "Rating", "ratingValue": "5" },
      "reviewBody": "Pulled from the live Google Business Profile feed — never hand-written."
    }
  ]
}
</script>

Alongside the schema: a Google Business Profile with the studio pinned, "building designer Joondalup" / "second storey addition Perth northern suburbs" / "house extension design Hillarys" as the page's core phrases with the suburbs above as secondary, NAP consistency across the Building Designers Association listing and the council-adjacent directories, and a reviews feed that updates without anyone touching the page.

What changes for the real client

Iteration log

Spec semantics resolved by the builder and worth flagging: the concept pinned no SHORT form for the footnote or the timeline line, so the badge carries the full strings at every width (the docked badge at 375 has the room); the dimension strings are declared illustrative on-page; the rest-state total measured from the running page is $6,910 and the cheapest output is $2,140 — both equal to the spec.