biohazard-vfx/docs/brainstorming-session-results.md
nicholai ed55376b9c
Some checks are pending
Build and Push to Docker Hub / Push Docker image to Docker Hub (push) Waiting to run
Build and Push Docker Image / build-and-push (push) Waiting to run
bmad-planning-complete
2025-09-24 10:54:01 -06:00

314 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Biohazard VFX Website — Brainstorming Session Results
Session Topic: Finishing the Biohazard VFX website by adding core features and unifying UX/UI
Context
- Project type: Brownfield
- Ideation breadth: A few ideas (focused)
- Document capture: Yes
Approach Selected
- Option 2: Analyst recommends techniques
- Planned technique flow: Five Whys → SCAMPER → Mind Mapping → Role Playing
---
## Executive Summary
- To be completed after session.
---
## Technique 1: Five Whys (Root Cause Discovery)
Description: Ask “why” iteratively to uncover root causes of UX/UI fragmentation.
Prompts & Responses
- Why #1: Fonts and styling are inconsistent across the site, and the top navigation doesnt align with the sites ideology; overall, the site lacks a clear identity and feels unsatisfying.
- Why #2: Brand direction is unclear; after a year+ of development, none of the explored directions felt right/satisfying.
- Why #3: Decisions havent landed due to very high personal quality bar/perfectionism; the brand intent is clear (great VFX powered by pipeline/infrastructure; artist-first; strong ally to directors; long-term partnerships) but hasnt been distilled into a concise direction.
- Why #4: Because there were no decision criteria or timeboxed cycles to force commitment; moodboards existed but were hard to translate into shippable UI; perfectionism raised the bar beyond launchable.
- Why #5: Underlying fears: misrepresenting brand/work quality, accumulating tech debt if committing prematurely, and too many plausible directions to compare objectively.
Insights (emerging)
- Early signals: Missing design system or tokens; conflicting component libraries or ad-hoc overrides; unclear brand/positioning guiding visual hierarchy and nav model.
- Foundation gap: No finalized brand brief (audience, promise, attributes, tone, visual language) to anchor consistent UI and navigation model.
- Brand pillars (emerging): Artist-first ethos; pipeline/infrastructure excellence; director partnership & reliability; premium cinematic craft; tech-enabled artistry.
- Selected causes: No decision criteria; no timeboxed decision cycles; moodboards exist but are hard to implement; perfectionism blocking commitment.
- Brand words (chosen): Meticulous, Robust, Collaborative, Artist-first.
---
## Technique 2: SCAMPER (Feature Refinement)
Description: Substitute, Combine, Adapt, Modify/Magnify/Minify, Put to another use, Eliminate, Reverse.
Targets: Core features to be identified post-Five Whys.
Notes
- [to be filled]
Focus Targets (selected)
- T1: Global typography + color tokens (design system)
- T2: Top navigation + IA (structure & labels)
SCAMPER — T1: Global Typography + Color Tokens
- Substitute
- Typography: Choose 1 display/headline + 1 body font; remove others. Candidates from repo: Rajdhani, Kanit, Share (globals also reference Bentham, DM Serif). Proposed default: H: Rajdhani 600/700; Body: Kanit 400/500. Agree? If not, specify pair and weights.
- Color tokens: Establish base surface (Dark vs Light), primary brand, accent, neutrals scale. Preference?
- Decision: [awaiting]
- Decision (finalized): Headings Rajdhani 600/700; Body Kanit 400/500; Dark-first UI; palette direction: black + orange; standardize on shadcn/ui CSS component patterns.
- Combine
- Unify to a single type scale (e.g., 1272 with 8px step), map to tokens `--font-size-{xs..6xl}` and Tailwind `theme.extend.fontFamily` + `fontSize`.
- Combine color usage into tokens: `--color-bg`, `--color-fg`, `--brand.primary`, `--brand.accent`, `--muted`, `--border`.
- Decision (finalized): Type scale Cinematic = 12, 16, 20, 24, 32, 40, 48, 60, 72, 96. Colors = bg #0b0b0b; surfaces #121212, #181818; fg #e6e6e6; muted #a3a3a3; border #2a2a2a; brand.primary #cc3a00; brand.accent #d97706.
- Adapt
- Adapt from existing asset `Biohazard Stylesheet rev01.jpg` and current `newfonts/` to finalize specimens and usage.
- Decision: [awaiting]
- Modify/Magnify/Minify
- Tighten letter-spacing on headings; reduce palette to 35 core colors; ensure WCAG AA on text.
- Decision: [awaiting]
- Put to another use
- Extend tokens to spacing, radii, shadows, motion durations for full system consistency.
- Decision: [awaiting]
- Eliminate
- Remove ad-hoc CSS overrides, unused fonts (Bentham/DM Serif) if not in final pair; consolidate Tailwind font config.
- Decision: [awaiting]
- Reverse
- Consider “dark-first” UI (bio-industrial feel), with occasional light surfaces for case study readability.
- Decision: [awaiting]
SCAMPER — T2: Top Navigation + IA
- Substitute
- Replace labels to better reflect brand goals. Options: [Work] [Pipeline] [Studio] [Contact] or [Projects] [Process] [About] [Contact]. Choose 4.
- Decision (finalized): Top-level = Projects, Process, Studio, Contact. Sub-items = Projects: Reel, Case Studies; Process: Pipeline, Tools, Infrastructure; Studio: About, Team, Values; Contact: Smart Form.
- Combine
- Merge Reel into Projects (hero CTA to reel within Projects); merge Capabilities under Process (Pipeline, Tools, Infrastructure).
- Combine nav structure with layout: Left-aligned persistent sidebar paired with main content area; keep top bar minimal (logo + hamburger on mobile only).
- Decision (finalized): Use a vertical, left sidebar as the primary site navigation across internal pages; homepage may show the same sidebar after the hero (or collapsed to icon-only).
- Adapt
- Adapt IA to director mental model: Primary tasks = view reel, skim case studies, understand pipeline reliability, contact quickly.
- Use shadcn/ui primitives: Accordion (for expandable sections), ScrollArea (for overflow), Tooltip (for collapsed icon-only state), Sheet (mobile drawer), Command (palette shortcut).
- Decision (finalized): Sidebar groups expand/collapse on click (not hover). Persist open state per section during route changes.
- Modify/Magnify/Minify
- Keep to 4 top-level items; emphasize Projects and Contact visually.
- Styling: ALL CAPS labels, rectangular buttons, high-contrast black/orange/white palette. Use Rajdhani (caps) for nav text with slight letter-spacing for readability.
- Visual affordances: Active item has left border 2px in brand.primary (#cc3a00) and subtle bg (#121212). Hover uses brand.accent/copper (#d97706) for underline or icon tint.
- Layout: Sidebar width 240px desktop (collapsible to 72px icon-only); sticky full viewport height; content area has max-width container and grid offset.
- Decision (finalized): Click-to-expand subnav; active state with orange border; sidebar sticky; collapsed mode optional for case study focus.
- Put to another use
- Use subnav descriptions sparingly for credibility (e.g., Tools: Houdini, Nuke, Unreal, custom pipeline) within the Process section; avoid clutter.
- Add a persistent Contact CTA at bottom of sidebar using accent style; optional social icons minimal.
- Decision (finalized): Contact CTA pinned to bottom of sidebar; Process sub-items may include concise toolchain references.
- Eliminate
- Drop low-value or not-ready sections from nav; no Blog until active; avoid mega menus.
- Remove hover-to-expand patterns (reduce accidental opens); keep interactions deliberate.
- Decision (finalized): No Blog for now; no hover expansion; no mega menus.
- Reverse
- Consider icon-only collapsed sidebar with tooltips as an alternate focused mode; full-screen command palette as secondary nav.
- Decision (finalized): Provide Command palette (⌘K/CTRL+K) for power users; allow toggling between expanded/collapsed sidebar.
---
## Technique 3: Mind Mapping (IA/Flow Unification)
Description: Map central concept → primary sections → flows → components.
Branches
- Central concept: Biohazard VFX — cinematic craft, pipeline excellence, artist-first collaboration
- Projects
- Reel (landing CTA; also accessible within Projects)
- Case Studies (index grid/list, filters: type/tool/year)
- Case Study Detail `/projects/[slug]` (hero video/stills → problem → approach → pipeline highlights → results → credits → CTA)
- Components: media player, gallery, tag badges, stats, tech stack icons, CTA block
- Process
- Pipeline (overview: ingest → tracking → FX → lighting → comp → review; reliability, versioning, QC)
- Tools (Houdini/Nuke/Unreal/custom pipeline; show capability badges succinctly)
- Infrastructure (render, storage, automation, CI/CD for assets)
- Components: stepper/timeline, badge list, icon grid, diagram, code/CLI snippets optional
- Studio
- About (mission, ethos: meticulous, robust, collaborative, artist-first)
- Team (select bios, lightweight)
- Values (principles; client partnership focus)
- Components: text sections, avatars, quote/testimonial, logo wall (if any)
- Contact
- Smart Form (brief intake: project type, timeline, budget range, references/links)
- Confirmation page (what happens next, SLA)
- Components: form fields, file/url inputs, privacy note, success state
- Global
- Sidebar Nav (left, persistent 240px; collapsible 72px; click-expand groups)
- Command Palette (⌘K/Ctrl+K) for quick navigation
- Footer (copyright, minimal links)
- Theme tokens (dark-first; black/orange; type scale)
Primary user journeys (directors/producers)
- J1: Home → Watch Reel → Scan 23 Case Studies → Contact via Smart Form
- J2: Home → Process (Pipeline reliability) → Contact → Follow-up reel/case study as validation
- J3: Google/Bing → Deep link to Case Study → Explore Process → Contact
Success signals and CTAs
- Reel completion or 50% watch → suggestion: view Case Studies
- Case Study end → CTA: Contact / See Process
- Process page → CTA: Contact / View Projects
Information architecture → suggested routes
- `/projects` (index) → `/projects/reel`, `/projects/case-studies`, `/projects/[slug]`
- `/process``/process/pipeline`, `/process/tools`, `/process/infrastructure`
- `/studio``/studio/about`, `/studio/team`, `/studio/values`
- `/contact`
Shadcn/ui primitives to standardize
- Navigation: `Accordion`, `ScrollArea`, `Tooltip`, `Sheet`, `Command`
- Content: `Tabs`, `Card`, `Badge`, `Separator`, `Table`, `Breadcrumb`
- Forms: `Form`, `Input`, `Textarea`, `Select`, `Button`, `Checkbox`, `RadioGroup`, `Toast`
- Media: custom player wrapper for consistency (poster overlays, controls)
---
## Scrolling Behavior Standardization (Sticky Split Pattern)
Goal: Consistent splitscreen, sticky scrolling interactions sitewide (inspired by Basement Foundry) without scrolljacking, with graceful fallbacks.
Pattern: Sticky Split Section
- Layout
- Desktop: Two columns. Left = sticky narrative (copy, headings, CTAs). Right = scroll track that reveals media/panels as the user scrolls each section. Optionally invert sides.
- Mobile: Stack vertically. Narrative above media. Sticky reduced or disabled to avoid awkward behavior; use reveal-on-view.
- Mechanics
- Each section height: 150250vh (tunable by content). The narrative column is `position: sticky; top: clamp(64px, 8vh, 96px)`.
- The media track contains panels (1..N). As scroll progresses through the section, panels transition (fade/scale/translate) or pin/unpin.
- Implementation: use native sticky + `IntersectionObserver` for entering/leaving + `framer-motion` for progress interpolation. Optional `lenis` for smoothing, with reducedmotion disabling.
- Fallbacks: if reduced motion is enabled or JS disabled, show panels as a static vertical stack.
- Tokens/Vars
- `--sticky-top`: sticky offset; `--panel-gap`: spacing; `--reveal-ease`: cubicbezier; `--reveal-duration`.
- Color tokens from brand palette apply to active states and progress indicators.
- Accessibility
- Respect `prefers-reduced-motion`; maintain keyboard focus order; ensure content is reachable without scrolling effects; provide visible focus rings.
- Avoid scrolljacking; use passive listeners; do not block native wheel/touch.
- Performance
- Avoid large `position: fixed` layers; prefer `will-change: transform` on animating elements; lazyload media; compress images/video.
Suggested Component API (no code yet)
- `<StickySplit.Section id height="200vh" side="left|right" className>` wraps one split section.
- `<StickySplit.Sticky>` holds the narrative area (sticky column).
- `<StickySplit.Track>` holds the scrollable/revealed media panels.
- `<StickySplit.Panel index in|out variants>` one panel within the track; reveals based on section progress.
- Hook: `useSectionProgress(id)` returns 0..1 progress for motion transforms.
Where to Apply
- Home hero (narrative left, brand reel teaser right) → CTA to Reel.
- Case Studies (problem → approach → pipeline highlights → results) with perphase panels.
- Process (pipeline steps) with stepper timeline and panel per step.
- Studio (values/ethos) with subtle reveals rather than heavy motion.
Adoption Steps
1) Define CSS vars and Tailwind utilities for sticky offsets, spacing, and motion tokens.
2) Build `StickySplit` primitives using shadcn/ui conventions and `framer-motion`.
3) Integrate on Home, Projects index/detail, and Process pages first.
4) QA across breakpoints; verify reduced-motion and keyboard navigation.
Acceptance Criteria
- All major pages use the same Sticky Split interaction pattern where applicable.
- No scrolljacking; reducedmotion mode provides static content with reveals on view.
- FPS remains smooth on desktop and mobile; LCP unaffected significantly on hero.
- Visuals adhere to darkfirst palette with orange accents for active/progress.
---
## Technique 4: Role Playing (Stakeholder Perspectives)
Perspectives: Producer, Client, Artist
Findings
- Producer: [to be filled]
- Client: [to be filled]
- Artist: [to be filled]
---
## Idea Categorization
- Immediate Opportunities: [to be filled]
- Future Innovations: [to be filled]
- Moonshots: [to be filled]
- Insights & Learnings: [to be filled]
---
## Action Planning
- Top 3 Priorities: [to be filled]
- Next Steps: [to be filled]
- Resources/Research Needed: [to be filled]
- Timeline Considerations: [to be filled]
---
## Reflection & Follow-up
- What worked well: [to be filled]
- Further exploration areas: [to be filled]
- Recommended follow-up techniques: [to be filled]
- Open questions: [to be filled]
---
## Brand Brief (Draft)
Audience
- Primary: Film/TV directors and producers seeking dependable, cinematic VFX partners
- Secondary: Studio/agency partners evaluating technical reliability and collaboration fit
Positioning Statement
- Biohazard VFX delivers meticulous, robust, artist-first visual effects—engineered by a modern pipeline and infrastructure—to help directors realize their vision with confidence and speed.
Value Proposition
- Cinematic craft × engineered pipeline = predictable excellence. You get elite artistry backed by systems that scale, version, and qualitycheck the work endtoend.
Brand Attributes (must read in the experience)
- Meticulous • Robust • Collaborative • Artistfirst • Trusted • Cinematic
Voice & Tone
- Precise, confident, minimal. Show more than tell. Avoid hype; be specific.
Visual Language
- Darkfirst UI; high contrast (black/orange/white). Primary #cc3a00, accent #d97706.
- Typography: Rajdhani (caps) for headings; Kanit for body; tight spacing, clean rhythm.
- Motion: purposeful; conveys process and transitions; honors reducedmotion.
Interaction Principles
- Sticky Split sections to reveal depth as you scroll; no scrolljacking.
- Clear CTAs; frictionless paths to reel, case studies, and contact.
Information Architecture Priorities
- Projects first (Reel, Case Studies) → Process (Pipeline, Tools, Infrastructure) → Contact.
- Studio (About, Team, Values) supports credibility; keep it concise.
Trust Signals
- Pipeline/infra highlights; selected logos/quotes; toolchain badges used sparingly.
Content Priorities
- What we did (case studies), how we work (pipeline), how to start (contact).
---
## Decision Checklist (Ship Gate)
Mark Pass/Fail for each before merging a change.
1) Brand Alignment
- Does the page communicate Meticulous, Robust, Collaborative, Artistfirst within 5 seconds (type, color, layout, copy)?
2) IA & CTA Clarity
- Is the primary CTA obvious (Reel/Projects/Contact) with 1 clear next step per view?
3) Design System Compliance
- Uses tokens (type scale, colors), Rajdhani/Kanit pairing, shadcn/ui patterns. No adhoc inline styles unless justified.
4) Accessibility & Motion
- Contrast AA+, keyboard navigation, focus states, alt text, reducedmotion fallbacks.
5) Performance Budget
- Hero media optimized; LCP < 2.5s (desktop), CLS < 0.1; defer noncritical JS; lazyload galleries/video.
6) Decision Discipline
- Work was timeboxed; options compared against this checklist; decision recorded and committed.
Ship Threshold
- Ship when all 6 Pass, or 5 Pass with one Minor Waived (documented) and a followup task scheduled.
Recommended Cadence
- Explore (≤45m) Decide (≤15m) Implement (≤2h) Review (≤30m) with this checklist.