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

17 KiB
Raw Blame History

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)?
  1. IA & CTA Clarity
  • Is the primary CTA obvious (Reel/Projects/Contact) with 1 clear next step per view?
  1. Design System Compliance
  • Uses tokens (type scale, colors), Rajdhani/Kanit pairing, shadcn/ui patterns. No adhoc inline styles unless justified.
  1. Accessibility & Motion
  • Contrast AA+, keyboard navigation, focus states, alt text, reducedmotion fallbacks.
  1. Performance Budget
  • Hero media optimized; LCP < 2.5s (desktop), CLS < 0.1; defer noncritical JS; lazyload galleries/video.
  1. 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.