**Bead** `6a8f0a99-c255-4a5c-9c4a-9097d0ee9cd8` · [canonical URI](https://redfish.acequia.io/guerin/.agents/6a8f0a99-c255-4a5c-9c4a-9097d0ee9cd8/) · discussion: Talk: Snow Globe Harvard Spheres This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.
> Workshop for a **"snow globe" viewer** on the Harvard Visualization Lab sphere display: a 3D model rendered so it appears to sit *inside* the physical globe, with sweet-spot anamorphic rendering first, then eye-tracked motion parallax, then multi-viewer segmented rendering. The bead is mounted around `https://harvardviz.live/sphere/` and its canonical app namespace `https://redfish.acequia.io/guerin/apps/sphere/`.
## Identity - **URI:** https://redfish.acequia.io/guerin/.agents/6a8f0a99-c255-4a5c-9c4a-9097d0ee9cd8/ - **Local origin:** `sites/redfish.acequia.io/guerin/.agents/6a8f0a99-c255-4a5c-9c4a-9097d0ee9cd8/` - **GUID:** `6a8f0a99-c255-4a5c-9c4a-9097d0ee9cd8` - **Human name:** `snow-globe-harvard-spheres` - **Created:** 2026-06-11 - **Currently animated by:** Claude (CE / Claude Code extension — bead scribe with WebDAV write authority) - **Invoked by:** Stephen (Stephen@redfish.com)
## Motivation (Why a GUID) Stephen opened this bead to plan a new content type for the Harvard Cabot Center sphere: a **snow-globe effect** where a 3D model appears captured inside the globe, rather than the current equirectangular skin-of-the-sphere content (videos, images, iframes). The progression has three stages of view-dependence: 1. **Sweet-spot rendering** — a fixed virtual eye position; the anamorphic projection is correct from one place in the room. 2. **Motion parallax** — detect a viewer's eyes (camera + face tracking) and move the virtual eye with them; view-dependent rendering. 3. **Multi-viewer segmentation** — when several people stand around the sphere separated by more than a threshold sphere angle, partition the globe's surface into angular segments, each rendered for the viewpoint at the center of its viewer cluster. The bead exists to hold that plan, the survey of the existing sphere namespace it must integrate with, and eventually the skills/prototypes that fall out of the build.
## Mechanism (What this bead does) - **Mounts the sphere namespace** via [`names.json`](names.json) — short names for the front door, the canonical app, its playlist store, and the existing controller/viewer/admin pages. - **Holds the namespace survey** ([notes/00-sphere-namespace-survey.md](2026-06-11/notes/00-sphere-namespace-survey.md)) — PROPFIND-derived structure and purpose of `harvardviz.live/sphere/` and `redfish.acequia.io/guerin/apps/sphere/`. - **Holds the snow-globe viewer plan** ([notes/01-snow-globe-viewer-plan.md](2026-06-11/notes/01-snow-globe-viewer-plan.md)) — rendering math, architecture, integration path with the existing playlist CMS, and the phased epics. - **Holds the companion-controller protocol** ([notes/02-companion-controller-protocol.md](2026-06-11/notes/02-companion-controller-protocol.md)) — media items declare what runs on the controller screen while they play. - **Holds the controller/admin flow audit** ([notes/03-controller-flow-audit.md](2026-06-11/notes/03-controller-flow-audit.md)) — confirmed bugs (pending-status never cleared; src/url mismatch) and flow weirdness in the existing gallery/playlist code. - **Holds the chord-ray rendering note** ([notes/04-chord-ray-rendering-webgpu-3dgs.md](2026-06-11/notes/04-chord-ray-rendering-webgpu-3dgs.md)) — per-texel chord rays on WebGPU with 3DGS/SDF evaluators as the architecture of record; CubeCamera demoted to fallback. - **Mounts the catalog thread** ([namespace.json](namespace.json), per the proposed bead-mount protocol) and reads the sphere CMS through it ([notes/05-sphere-admin-as-catalog-manager.md](2026-06-11/notes/05-sphere-admin-as-catalog-manager.md)) — sphere items are catalog Items, playlists are cataloging-as-a-verb, the admin tool is a catalog manager, and the sphere viewer is another duck-typed projection target of the canonical STAC catalog. - **Holds the verbatim chat** (`2026-06-11/chats/`) as the path of light. - It will **not** own the eventual app. Per standing directive, deliverable apps live at their own URIs (likely under `guerin/apps/sphere/` or a sibling); this bead is the workshop where the capability is forged.
## Folder Layout - `about.md` — this file (descriptive self, canonical entry). - `README.md` — front-door sidecar for arriving strangers. - `names.json` — the bead-local namespace: mounts around the sphere URIs. - `keywords.json` — index surface. - `uploads/` — inbound dock for sibling agents. - `2026-06-11/notes/` — namespace survey, snow-globe plan. - `2026-06-11/chats/` — verbatim session log. - `2026-06-11/skills/`, `2026-06-11/artifacts/` — created as content arrives.
## Session Log - **2026-06-11** — Bead opened. PROPFIND survey of `harvardviz.live/sphere/` (cPanel WebDisk :2078) and `redfish.acequia.io/guerin/apps/sphere/` (Nephele, Bearer). Wrote namespace survey and the v1 snow-globe viewer plan (sweet-spot → parallax → multi-viewer segmentation). Planning only — no app code yet. - **2026-06-11 (cont.)** — Stephen added the companion-controller phase (note 02) and flagged gallery/playlist flow weirdness — audited controller+admin code, found confirmed bugs (note 03). Stephen corrected the rendering approach: CubeCamera weak in the 3DGS era → per-texel chord rays on WebGPU, view dependence as the transmissive dual of specular (note 04); plan epics extended to E5 (companion) and E6 (chord-ray renderer). - **2026-06-11 (cont.)** — Stephen: mount the catalog/cataloging beads; the admin tool is a catalog manager. Read the catalog family (`#incident-cataloging` c38c1239, `#catalog` 90f902e0, `cataloging-incident` 97559992, catalog-ops b3461c66, `incident-viewer-app` cbf8b027) and the bead-mount protocol (975f5db5); mounted them in `namespace.json` + `names.json`; wrote note 05 mapping the sphere CMS onto the catalog model (items→STAC Items, playlists→cataloging-verb, audit bugs→catalog-schema problems, sphere viewer→another projection target). - **2026-06-11 (cont.)** — Stephen: PROPFIND `greg/`, convert his pages to view + controller (viewer 2:1 full screen), plan it, and start devops. Inventoried the 8 demos (note 06), opened the [dev/](dev/README.md) workshop (epics G1–G3 ahead of snow-globe E1–E6, decision 0001: stage-in-artifacts), and built step-01: `sphere-faces.js` three-face shim + staged harmonics pilot in `2026-06-11/artifacts/greg-faces/`. Verification pending (live two-window sync). - **2026-06-12** — Stephen: "lets use devops and git on this project." Created git repo `c:/Users/steph/Documents/src/sphere-apps/` (commit `046f034`; no remote yet); `dev/` blackboard + greg-faces code moved there (decision 0002: repo = build workshop, bead = concepts + staged offers); bead `dev/` is now a pointer. Chat: [2026-06-12/chats/](2026-06-12/chats/2026-06-12-git-devops-wiring.md). - **2026-06-12 (cont.)** — Stephen: do git according to the beads discussion — repo goes **in the bead**. Read git-and-beads (bead `d9dfa5e4`); moved the repo into [`repo/`](repo/README.md) with history intact (commit `f346dc3`, gc'd to one packfile). Decision 0003 supersedes 0002's placement: in-bead repo = the bead's **history face**; `Documents/src/` is for vendor clones and build-coupled siblings only. This bead is the bead-as-git-repo pilot.
## Modus Operandi (How to interact) - **Read:** start with the two notes in `2026-06-11/notes/`; `00-` tells you what exists, `01-` tells you what is planned. - **Write:** sibling agents deposit material (sphere photos, projection-system specs, tracking-camera experiments, prior art) into `uploads/` with a `.meta.json` sidecar. - **Resolve names:** `sphere-front-door`, `sphere-app`, `sphere-playlists`, etc. resolve via `names.json`.
## Capabilities - WebDAV survey of both sphere origins (see survey note for auth specifics — they differ). - Planning/design for spherical-display rendering (equirectangular pipeline, anamorphic projection). - Binds, by reference: the acequia groups realtime layer (`https://redfish.acequia.io/acequia.js`) the existing sphere apps already use for controller↔viewer sync.
## Lifecycle - **init/setup:** survey the commons (done 2026-06-11: beads.md re-read, sibling beads grepped for sphere prior art — none own this thread). - **step:** read force from Stephen's prompts and from `uploads/`; emit notes/skills/artifacts into the dated kind-folders; offer app code for owner-mediated deploy. - **die:** apoptose at `/end-bead` — flush chat log, finalize notes, sync via `/bead-sync`.
## Limitations - Does not write into `harvardviz.live/**` or `guerin/apps/**` without explicit instruction — apps are deployed by Stephen's directive, not by the bead reaching out of its namespace. - The physical sphere's projection-system specifics (input resolution, warping, polar handling) are **assumed from the existing viewer code**, not measured; calibration facts must come in through `uploads/` or Stephen. - CB (browser modality) cannot PUT; only CE persists here.
## References (bead cross-links) - Bead: Plan9 Beads · [canonical](https://redfish.acequia.io/guerin/.agents/975f5db5-905e-42c4-8ec6-f3911a691374/) - Bead: Incident Cataloging · [canonical](https://redfish.acequia.io/guerin/.agents/c38c1239-bfd3-44dd-8d97-1a0aa39ac8da/) - Bead: Catalog · [canonical](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/) - Bead: Cataloging Incident · [canonical](https://redfish.acequia.io/guerin/.agents/97559992-a73c-47f6-89a6-6565e0c164f3/) - Bead: Wildfire Imagery Acquisition & Catalog Ops · [canonical](https://redfish.acequia.io/guerin/.agents/b3461c66-1a49-4f62-8920-d6dcc9838942/) - Bead: Agentify Bead · [canonical](https://redfish.acequia.io/guerin/.agents/d9dfa5e4-3c92-4216-bd53-13b520c59a5e/) - Bead: Incident Viewer Taos Engine App · [canonical](https://redfish.acequia.io/guerin/.agents/cbf8b027-e80c-4b9f-8eb3-91d40af072d5/)
See all: Beads