Home page

The SoR home page is one long scroll made of five experiences, each built on its own in a parallel folder and then joined here.

#ExperienceFolderSuggested model
1Arrival (the seeds)../01-arrival/Sonnet 5.5 (import only)
2Dawn../02-dawn/Sonnet 5.5
3The Leap../03-leap/Opus 5.5 + image/video tools for assets
4The Book../04-book/Opus 5.5 (+ 3D / motion tool)
5Flight../05-flight/Opus 5.5

Leap and Book can also stand alone on their own pages (join/movement, courses).

In this folder

  • brief.md: the whole page: feeling, medium, and the script across all five experiences.

  • common.md: shared context every experience uses (fonts, colours, words, tone). Read before working on any experience.

  • HANDOFF.md: build brief for joining the experiences into one page and writing the frame contract.

  • sketch/: rough sketch v1 of the whole page · artifact. Deep links jump to a moment, e.g. #f3-70 = experience 3 at 70% of its scroll.

  • build/: the whole page stitched from the experiences, generated by build/build.py from each experience's build/, or its sketch/ until a build exists. Never hand-edit the output.

Progress lives in beads (bd list --parent design-323), not in these files.

Viewing and sharing

Locally, serve the repo root (e.g. python3 -m http.server) and open projects/sor-experiences-2026/experiences/00-home/build/index.html. Opening the file directly (file://) won't load the images.

To share, publish to https://sor-experiences-rufuspollock.flowershow.me with the Flowershow CLI, from the repo root:

python3 projects/sor-experiences-2026/experiences/00-home/build/build.py --site projects/sor-experiences-2026/site
fl --name sor-experiences --yes projects/sor-experiences-2026/site

The first command assembles a clean static site in site/ (gitignored): the whole page at the root, and each experience on its own at /01-arrival/ … /05-flight/. Only the pages and their assets go in, not briefs or source files. The second uploads only what changed. Each piece's folder sits directly under the site root because fl skips folders named build.

Working on one experience in its own session

Each experience is first completed standalone in its folder's build/. Integrating it into the page is separate (HANDOFF.md).

Each folder's HANDOFF.md is a complete build brief: open a new session in this repo, copy everything below its line, and paste. Outside the repo (Claude Design, Open Design), also paste common.md and attach the files the brief names.

Model notes. Opus 5.5 (claude-opus-5-5) for real animation logic: scroll-scrubbed scenes, canvas/WebGL, 3D. Sonnet 5.5 (claude-sonnet-5-5) for type-and-timing pieces. Visual fine-tuning is best done where you can see and nudge: Claude Design or Open Design. Asset production (clean plates, walk cycles, a 3D book) may need tools beyond a coding model; each handoff says where.

Handoff rules (provisional)

Loose on purpose: we reconcile when joining, then write the formal frame contract (HANDOFF.md).

  • One standalone HTML page per experience, playable on its own. Assets in a sibling assets/ folder.
  • Scope styles under one class (e.g. .x-leap) so experiences can later share a page without clashing.
  • Keep to the stated start and end background; note any change in the bead.
  • Keep to how it's driven: scroll-scrubbed (tall section, sticky stage) or plays once reached.
  • Use common.md for fonts, colours and words.
  • No sound yet, but leave room for it.

Screenshots

Each handoff lists the moments to capture from the sketch. Save them in that experience's screens/ folder with the given names.