product

Open Energy Constellations — UX Roadmap

Living document for the /open-energy/experiments constellation pathway. Phases are designed to ship independently and compose over time.

Vision

Turn 768 patents and 29 experiments into a participatory pathway. Each experiment is a star. Each pattern is a constellation. The sky lights up as the community participates. The endgame: 50+ independent replications per experiment, all open, all verifiable, all published.

Current State (shipped)

  • 9 constellations, ~3 stars each, grouped by pattern
  • Local progress: not started → in progress → completed (localStorage only)
  • Star modal: full experiment content + status toggle
  • Visual states: dim → pulsing colored → bright glowing
  • Animated starfield + shimmering hero
  • No login required — anyone can browse and track personally

Phase 1 — Server-Side Progress Sync

Goal: Logged-in users see their progress across devices.

UX

  • Same constellation page, but progress hydrates from server when authenticated
  • Falls back to localStorage when logged out
  • "Sign in to sync progress" prompt at top when localStorage has progress but no session

Backend

  • New table: open_energy_progress
    user_id UUID
    experiment_id UUID  -- references journal_entries.id
    status TEXT  -- 'available' | 'in_progress' | 'completed'
    notes TEXT  -- optional user notes about their attempt
    started_at TIMESTAMPTZ
    completed_at TIMESTAMPTZ
    
  • Endpoints:
    • GET /api/open-energy/progress — current user's progress
    • PUT /api/open-energy/progress/:experimentId — update one
    • POST /api/open-energy/progress/migrate — bulk import from localStorage on first sign-in

Files to touch

  • apps/backend/src/routes/open-energy.ts (new)
  • supabase/migrations/0XX_open_energy_progress.sql (new)
  • apps/frontend/src/app/open-energy/experiments/page.tsx (hydrate from API when authenticated)

Phase 2 — Achievements & Badges

Goal: Reward participation with visible, shareable badges.

UX

  • Bottom strip on /open-energy/experiments showing earned badges
  • Badge unlocks animate (a shooting star arcs across the sky to deliver it)
  • Each badge has: icon, name, criteria, earned date
  • "Share" button generates an OG image card

Badge tiers

TierCriteria
First LightMark any experiment "in progress"
First StarComplete your first experiment
ConstellationComplete all stars in any one pattern
TrinityComplete one experiment from each meta-pattern element (non-linear + resonance + pulsed)
CartographerComplete 1 experiment from every constellation (9 total)
Sky WalkerComplete all 29 experiments
ReplicatorHave your build independently confirmed by another user
LightkeeperBe the 50th confirmation on any experiment (the threshold)

Backend

  • open_energy_badges table — earned badges per user
  • Badge logic runs as a trigger on open_energy_progress updates
  • Reuses existing badge display patterns from BadgeDisplay.tsx

Files to touch

  • supabase/migrations/0XX_open_energy_badges.sql (new)
  • apps/frontend/src/app/open-energy/experiments/components/BadgeStrip.tsx (new)
  • Server-side trigger or backend function to award badges

Phase 3 — Build Logs (User Contributions)

Goal: People who actually build the experiments can publish their results.

UX

  • "Publish my build" button in the experiment modal
  • Form: photos, videos, materials sourced (BOM with prices), measurements taken, what worked, what didn't
  • Each star has a "builds" counter that grows as people publish
  • Click "X builds" → opens a feed of all published builds for that experiment
  • Each build is a journal entry (notebook: "Open Energy Builds")

Why journal entries?

HiveJournal already has entries with images, tags, and visibility controls. Reuse the existing infrastructure:

  • Build = journal entry tagged ["Build", experiment_id, pattern_slug]
  • Public visibility for shared builds
  • Existing photo upload + entry editor handles the content

Visual

  • Each completed star gets a small numeric badge showing build count
  • Hovering shows "47 people have built this"
  • Build feed uses card layout matching the dashboard

Files to touch

  • New notebook Open Energy Builds (created by import script)
  • apps/frontend/src/app/open-energy/experiments/[id]/builds/page.tsx (new)
  • apps/frontend/src/app/open-energy/experiments/[id]/builds/new/page.tsx (new)

Phase 4 — Replication Tracking

Goal: Move toward the 50-confirmation goal per experiment.

UX

  • Each experiment shows a replication progress bar: 12 / 50 independent confirmations
  • Other builders can mark "I confirm this works" or "I tried this and it did not work"
  • Replication metadata: who, when, materials variance, measurement values
  • A separate "Replication Quality" score (peer-rated, like StackOverflow)

Visual

  • Stars get an additional "halo" ring whose brightness is the replication count / 50
  • Constellations with high replication form brighter, more intricate light webs
  • Replication count shown above the existing build count

Why this matters

The whole point of this project is to either confirm or refute the meta-pattern claims. A replication count is the rigor metric. 50 confirmations is the gold standard from your CLAUDE.md.

Files to touch

  • open_energy_replications table
  • New components for the replication UI in the experiment modal
  • Replication progress bars on each star

Phase 5 — Meta-Pattern Cross-Constellation Lines

Goal: Visualize how patterns combine into the meta-pattern (non-linearity + resonance + pulsed).

UX

  • Toggle button: "Show Meta-Pattern Connections"
  • When enabled, draws faint cross-constellation lines between experiments that share meta-pattern elements
  • Three "spine" lines emerge for each meta-pattern element: non-linear, resonance, pulsed
  • When a user has completed at least one experiment from each spine, the spine glows fully
  • The meta-pattern revealed = the user has experienced the synthesis firsthand

Technical

  • Tag each experiment with which meta-pattern elements it tests (non_linear, resonance, pulsed)
  • Calculate cross-constellation positions in absolute viewport coords
  • SVG overlay layer above the constellations grid

Files to touch

  • Update import script to tag experiments with meta-pattern elements
  • Add overlay SVG to constellation page
  • New toggle UI

Phase 6 — Live Activity Feed

Goal: Make the page feel alive — show that real people are doing this right now.

UX

  • Right rail (collapsible) showing recent activity
  • "Sandon J. just completed Bifilar Coil Resonance"
  • "Maria K. published a build of PAGD Replication"
  • "Ben T. confirmed Pulsed Electrolysis #47/50"
  • Live updates via Supabase realtime subscriptions
  • Anonymized for users who opt out

Files to touch

  • apps/frontend/src/app/open-energy/experiments/components/ActivityFeed.tsx (new)
  • Subscribe to open_energy_progress and open_energy_replications tables via Supabase realtime

Phase 7 — Leaderboard / Top Contributors

Goal: Recognition for the most active replicators.

UX

  • /open-energy/contributors page
  • Ranked by: experiments completed, builds published, replications submitted
  • Each contributor has a profile card showing their badge collection
  • Top 10 displayed prominently; full list searchable

Files to touch

  • apps/frontend/src/app/open-energy/contributors/page.tsx (new)
  • Backend aggregation query

Phase 8 — Public Embeds & Sharing

Goal: Let people share their progress and the project itself outside HiveJournal.

UX

  • Share button on each constellation: "Share my progress on the Coil Geometry constellation"
  • Generates an OG image showing the constellation with their stars lit
  • Share button on the whole /open-energy/experiments page → "I'm lighting the constellations on @hivejournal"
  • Embed code for blog posts: <iframe src="...">

Files to touch

  • apps/frontend/src/app/api/og/open-energy/[type]/route.tsx (new — OG image generation)
  • Use @vercel/og or existing OG infrastructure

Phase 9 — Mobile-First Experiment Tracker

Goal: People in the lab need to update their progress from their phone.

UX

  • Mobile-optimized version of the experiment modal
  • Camera access for build photos
  • Voice notes for measurement logging
  • Haptic feedback when a star transitions to completed
  • Could be a PWA addition or part of the React Native mobile app

Files to touch

  • apps/mobile/src/screens/OpenEnergy/ (new — if doing native)
  • Or PWA enhancements to the existing web page

Phase 10 — The Synthesis Reveal

Goal: A payoff moment when someone completes the meta-pattern.

UX

  • When a user completes at least one experiment from each of the 3 meta-pattern elements...
  • ...the entire sky animates: all constellations they've touched draw lines toward a central point
  • A new "Synthesis" star appears at the center
  • Modal explains: "You have just experienced what 768 inventors discovered independently. Non-linearity + resonance + pulsed excitation produces operating regimes that linear theory does not predict. You are now part of the open record."
  • Generates a personal "synthesis certificate" PDF

Files to touch

  • apps/frontend/src/app/open-energy/experiments/components/SynthesisReveal.tsx (new)
  • Trigger: meta-pattern element completion check

Build Order Recommendation

OrderPhaseWhy first
1Server-side progress syncFoundation for everything else; small backend lift
2Build logsHighest community value; reuses existing notebook infra
3Replication trackingThe actual scientific point of the project
4Achievements/badgesDrives ongoing participation once #2 and #3 exist
5Live activity feedMakes it feel alive once there's real activity
6Meta-pattern cross-linesVisualization payoff once data is rich enough
7Synthesis revealThe emotional climax — only meaningful after #6
8LeaderboardAfter enough contributors exist to rank meaningfully
9Sharing/OG embedsGrowth lever once there's something worth sharing
10Mobile-first trackerLast because the web works fine for now

Guiding Principles

  • Honest about scale: never inflate numbers. If 3 people have replicated something, say "3 replications" not "growing community"
  • Progress is permanent: once a user marks something completed, that record is theirs forever
  • Negative results count: failed replications are just as valuable as successful ones; they get equal weight in the UI
  • No paywall ever: this is the open record. If it's behind auth, it's only because of personal data sync
  • Reuse what exists: every phase should lean on existing HiveJournal infrastructure (notebooks, entries, visibility, badges) before building new tables

Measurement

Track these to know if it's working:

  • Unique visitors to /open-energy/experiments per week
  • % of visitors who toggle at least one star to "in progress"
  • Number of published builds
  • Number of confirmed replications
  • Time-to-50-confirmations on the easiest experiment (likely Bifilar Coil)
OPEN ENERGY ROADMAP — Docs | HiveJournal