-
-
AquaAI home page — marine species identification and coral reef health monitoring platform powered by Amazon Nova on AWS Bedrock
-
Fish species identification — Blue Tang (Paracanthurus hepatus) identified at 95% confidence with health assessment and ecological profile
-
Coral reef health monitoring — automated bleaching detection with danger level scoring, causes analysis, and conservation recommendations
-
AquaAI chat assistant — conversational AI powered by Amazon Nova for deep-dive species information and conservation status
inspiration
The ocean covers 71% of our planet, yet we know more about the surface of Mars than the deep sea. Every year, 50% of the world's coral reefs are dying due to bleaching events caused by rising ocean temperatures and most people cannot even identify what they're looking at when they see marine life.
I wanted to build something that puts the power of marine science in everyone's hands. Whether you're a reef conservationist, a marine biology student, a scuba diver, or just someone who found a strange creature on the beach AquaAI gives you instant, expert-level identification and health assessment powered by AI.
What It Does
AquaAI is a full-stack marine ecosystem intelligence platform with three core capabilities:
1. Marine Species Identification Upload any photo of a fish, coral, or marine creature and get instant species identification with confidence scoring, ecological profile, habitat info, and interesting facts powered by Amazon Nova's multimodal vision.
2. Coral Reef Health Monitoring Upload a coral image and AquaAI performs automated bleaching severity assessment estimating bleaching percentage, deriving a danger level (healthy -> critical), and suggesting specific conservation actions. The danger level is locked to the visual evidence and cannot be overridden by the language model.
3. Health & Disease Detection For every creature analyzed, AquaAI reports visible health conditions infestations, parasites, missing limbs, fin damage, wounds, and shell damage with detailed natural language health reports.
4. AI Chat Assistant Every result includes a conversational AI assistant where users can deep-dive into any species behavior, diet, conservation status, threats, fun facts, and more.
5. Text-Based Species Search No image needed search any species by name and get full ecological data, sensitivity levels, and conservation information instantly.
🛠️ How I Built It
Architecture
AquaAI uses a two-stage AI pipeline:
Stage 1 - Vision: Amazon Nova analyzes the uploaded image and extracts structured visual features (body shape, color, bleaching percentage, health observations, creature class, appendages)
Stage 2 - Identification: Amazon Nova receives both the image AND the extracted features to perform precise species identification, ecological profiling, and health assessment
This two-stage approach produces significantly more accurate results than a single-prompt approach.
Tech Stack
- AI Model: Amazon Nova (multimodal) via AWS Bedrock Converse API
- Cloud Storage: AWS S3 for image uploads
- Backend: FastAPI (Python) with Pydantic validation
- Frontend: Next.js 16 with TypeScript and Tailwind CSS
- Deployment: Render (backend) + Vercel (frontend)
Key Design Decisions
- Image bytes sent directly to Nova no base64 overhead
- Image placed FIRST in content array for better visual grounding
- Coral danger levels derived from vision output and locked language model cannot override physical evidence
- Dynamic image format detection (PNG/WEBP/JPEG/GIF) prevents format mismatch failures
Challenges
1. Species Misidentification Early versions forced species matches based on rigid rules (e.g. "blue body = Blue Tang"). I replaced this with open-ended visual description prompts that let Nova reason freely from the actual image dramatically improving accuracy.
2. Coral Health Always Returning "Healthy" The vision prompt was too strict and defaulted to "none" for bleaching. Fixed by adding explicit color-to-health mapping ("white/pale = bleaching, brown/green = healthy") and lowering temperature to 0.05 for literal observation.
3. Marine Creature Type Mismatch
Nova returned notable_features as a list but the Pydantic schema expected
a string causing 500 errors for all marine uploads. Fixed with a type
normalization layer that joins lists to strings before schema validation.
4. CORS & Deployment
The Vercel domain (aquai-ai.vercel.app) had a hyphen that didn't match the
CORS allowlist (aquaai.vercel.app) a one-character difference blocking all
requests. Taught me to always verify exact domain strings.
🌍 Impact
AquaAI is designed for:
- Marine conservationists tracking reef bleaching events in real time
- Citizen scientists identifying invasive species like Lionfish in Atlantic waters
- Researchers monitoring fish health and disease spread
- Educators teaching marine biology interactively
With climate change threatening 90% of coral reefs by 2050, accessible tools for reef monitoring and species identification have never been more critical.
🔮 What's Next
- Mobile app with real-time camera identification
- Time-series reef health tracking upload the same reef monthly and track bleaching progression
- Community species sighting map
- Integration with global reef databases (Coral Triangle, GBIF)
Built With
- amazon
- amazon-web-services
- bedrock
- css
- fastapi
- next.js
- nova
- pydantic
- python
- render
- s3
- tailwind
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.