Generative Assets · industry demo guide

True Form Pilates — how this demo was made

A fictional reformer & mat studio in South Perth, built as a conversion-first landing page for the kind of studio owner who knows her product is excellent and her website isn't. One job: a first-visit booking request with the plan and weekly rhythm already priced.

The concept

Most studio sites hide the maths: a grid of pack prices and a "join now" button, leaving the visitor to do per-class arithmetic on the bus. True Form leads with the Week Planner — a drawn reformer room where you pick a plan, set how many classes a week you'll actually make, and read the honest per-class figure off the front-desk card inside the scene. The page's rhetoric is the studio's own: quiet, precise, no locked doors — the membership card literally says "no lock-in" on it.

Palette — argued from the room, measured with WCAG arithmetic

Sage-washed wall, potted eucalyptus, deep moss shadow, the oiled timber of a reformer frame. Every ratio below was measured from the shipped tokens during Pass 1 (they matched the spec-time computations):

Sage#EEF1EA — page ground; the wall at 7am.
Moss#262B24 — body ink. 12.66:1 on sage.
Eucalypt#3F6B54 — CTA fill (white labels 6.10:1), links on sage 5.35:1. Hover #33573F: white 8.15:1.
Eucalypt ink#33573F — the pre-minted text twin for eucalypt-coloured copy. 7.15:1 on sage, 6.63:1 on the tint.
Timber#B9915E — reformer rails, springs, rules, leader lines. 2.53:1 — lines and marks only, never text.
Timber ink#7A5A2E — timber-coloured small copy. 5.53:1 on sage, 6.31:1 on white.

Support figures: soft ink #4C554A measures 6.80:1 on sage and 7.76:1 on white; the Sapience band runs sage-on-moss at 12.66:1 with its subline #B9C2B4 at 7.87:1; form error red #8C2F1F at 8.26:1 on white. The two-token accent rule (line/mark colour split from text ink) is why the timber ever gets to be as warm as it is.

Type

Fraunces (variable, weight ~550, optical sizing on) carries the display voice — a soft serif with just enough wonk to feel hand-finished, like the studio's timber. Karla does the workhorse duty: grotesque warmth, wide counters, legible at 16px+ on a phone in one hand. The typographic bravery moment is the rhythm set huge beside the drawn reformer: "TWENTY DOLLARS A CLASS, THREE MORNINGS A WEEK" — eucalypt ink with the timber ink taking the second phrase, the whole pricing argument in ten words.

The signature — the Week Planner

One inline SVG scene (780×520 viewBox): a side-view reformer in timber linework with a moss figure mid-footwork, a seven-day week rail above it, a light shaft with drifting dust motes, and per-plan still-lifes (ticket stub on the shelf, welcome tag on the headrest, punch card pinned low on the door, studio key tag, instructor figure). The carriage glides on a ~6.5-second breathing loop driven by one rAF loop with the delta clamped at zero and capped (dt = min(max(now−last,0), 50)/1000); the three springs are re-pathed every frame from the carriage's live edge, and the legs are solved with two-segment IK (thigh 95, shin 100 units) from the moving hip to the fixed footbar, so the knees genuinely bend as the carriage returns. Reduced motion renders a settled mid-glide frame and never starts the loop.

The price badge is drawn as the studio's front-desk card — an HTML overlay pinned on the scene's empty wall (solid white, no backdrop-filter), so its type stays crisp at every width and its text participates in DOM asserts. Plan chips and the classes-per-week stepper re-render badge, ledger, a11y mirror, week rail and still-lifes from one compute() source of truth; entrance choreography runs once (staggered fades, ~1.15s), and every subsequent change redraws snappy (≤480ms) behind a firstDraw-style settled flag. Chip handlers bump an invalidation token before the state swap, so a rapid-fire volley of clicks can never leave a stale animation indexing dead scene data. Live state (plan, n, figure, note, declarations, lit days, settled) is exposed on window.__pilates for QA.

The pricing model (pinned, then measured)

PlanBadge line 1Badge line 2 (presence pinned)Stepper
Casual $32"$32×n this week"Only at n ≥ 2 — the suggestion noteLive (badge prices the week)
Intro pack $48"$48 — your first three""= $16 a class" + new clients, onceDisabled with reason
10-pack $290"$290""= $29 a class"Disabled with reason
Unlimited week $60/wk"$60 a week""= $(60÷n) a class at n classes a week"Live (drives the per-class line)
Private $95"$95 a session"None — absence assertedDisabled with reason
Private 5-pack $430"$430""= $86 a session"Disabled with reason

Conversion decisions

Local SEO we'd implement for the real business

This demo page ships only WebPage/BreadcrumbList schema naming it a demonstration — fictional structured data in a real index would be dishonest markup. For a real studio we'd ship ExerciseGym (the exact schema.org organization subtype: SportsActivityLocation → ExerciseGym — a pilates studio is a gym-family business, not a medical one) with real NAP, geo, hours and review feed:

{
  "@context": "https://schema.org",
  "@type": "ExerciseGym",
  "name": "True Form Pilates",
  "image": "https://trueformpilates.com.au/img/studio.jpg",
  "telephone": "+61 8 XXXX XXXX",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "XX Mends St",
    "addressLocality": "South Perth",
    "addressRegion": "WA",
    "postalCode": "6151",
    "addressCountry": "AU"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": -31.98, "longitude": 115.86 },
  "openingHoursSpecification": [
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "06:00", "closes": "19:30" }
  ],
  "priceRange": "$32–$95",
  "aggregateRating": { "@type": "AggregateRating",
    "ratingValue": "4.9", "reviewCount": "180" },
  "review": [{
    "@type": "Review",
    "author": { "@type": "Person", "name": "Real Client" },
    "reviewRating": { "@type": "Rating", "ratingValue": "5" },
    "reviewBody": "Pulled from the live Google reviews feed."
  }]
}

What else changes for the real client: their photography replacing the drawn scene (or keeping it — it converts), a live class timetable and real booking through Momence or Mindbody, a ClassPass feed if they want the marketplace traffic, Stripe billing behind the weekly membership, and a Mailchimp automation on the intro offer (book class one → nudge before class three → membership offer in week two).

Techniques

Iteration log

Pass 1 — Craft

Pass 2 — Depth

Pass 3 — Hardening

True Form Pilates is a fictional business — a pilates studio industry demonstration designed & built by Sapience Analytics, part of the Generative Assets collection.