An interactive AI-powered presentation about the Blue Catfish invasion in the Chesapeake Bay. Features professor-style voice narration, adaptive learning with confusion detection, and motion graphics.
- Professor-style narration by Professor Marine
- Web Speech API for text-to-speech
- Voicebox integration (optional - for enhanced AI voices)
- Adjustable speech speed (0.7x, 0.85x, 1.0x)
- "I'm Confused" button on each slide
- Multi-level explanations:
- Simple explanations with analogies
- Detailed scientific explanations
- Key vocabulary terms
- Real-world examples
- Tracks which sections the learner found confusing
- Motion graphics with swimming fish animations
- Floating bubbles effect
- Interactive hover effects on all elements
- Progress indicator
- Smooth slide transitions
- Ask questions to Professor Marine
- Get answers based on lecture content
- Node.js 18+ installed
- npm or yarn package manager
-
Download/Clone the project
git clone <your-repo-url> cd bluecatfish-presentation
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open in browser
http://localhost:3000/presentation
Run this one-liner to start everything:
npm install && npm run dev- Click "Start Class" on the intro screen
- Click the Play
▶️ button to hear narration - Use Previous/Next buttons or dots to navigate
- Click anywhere on the page first (required for Web Speech API)
- Click the Play
▶️ button in the header - Allow audio permissions if prompted
- Try Chrome for best compatibility (Firefox has limited Web Speech support)
- Scroll to bottom of any slide
- Click "I'm Confused - Explain This" button
- View breakdown with:
- Simple explanation
- Key terms
- Real-world example
- Click "Show More Details" for scientific explanation
bluecatfish-presentation/
├── app/
│ ├── presentation/
│ │ └── page.tsx # Main presentation component
│ ├── layout.tsx # App layout
│ └── globals.css # Global styles
├── public/
│ └── images/ # SVG images
├── package.json # Dependencies
├── next.config.ts # Next.js config
└── tsconfig.json # TypeScript config
- Next.js 16 - React framework
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS - Styling
- Web Speech API - Voice narration
- Framer Motion concepts - Animations (via CSS)
Voicebox provides more natural AI voices. To enable:
- Download Voicebox from voicebox.sh
- Run Voicebox on your computer (port 17493)
- The presentation will auto-detect and use it
If Voicebox is not running, it falls back to Web Speech API.
rm -rf .next
npm run build
npm run dev# Kill existing process
pkill -f "next"
# Or use a different port
npm run dev -p 3001- Web Speech API requires user interaction first
- Try clicking the page then the play button
- Chrome recommended for best audio support
The presentation covers 5 topics:
- A New Predator Arrives - History of introduction
- Explosive Growth - Population statistics
- Eating Everything - Ecological impact
- No Natural Enemies - Why they're successful
- A Delicious Solution - Commercial harvesting
This project is for educational purposes.
- Content based on UMD Extension Factsheet
- Created with Next.js, React, and Tailwind CSS
Professor Marine says: "Learning about ecology can be fun - especially when the solution is on your dinner plate!" 🐟