Skip to content

zzfadi/deeptime

Repository files navigation

🦖 DeepTime - Journey Through Earth's History

Explore 4.5 billion years of geological time at your location

🌋 What is DeepTime?

DeepTime is an educational web app that lets you explore the geological history beneath your feet. Using real geological data and AI-powered narratives, discover what your location looked like millions of years ago—from dinosaur-filled Cretaceous landscapes to ice age tundra.

Travel through time, right where you stand. Point your phone at the ground and journey through Earth's geological layers, learning about ancient climates, prehistoric life, and the forces that shaped our planet.

✨ Features

  • 🗺️ Location-Based Geology - Real geological data from USGS for any location worldwide
  • Time Travel Slider - Scrub through millions of years of Earth's history
  • 🎙️ AI-Powered Narratives - Rich, contextual descriptions generated by Google Gemini
  • 🦕 AR Visualization - See prehistoric environments in augmented reality (WebXR supported devices)
  • 🌍 Global Coverage - Explore geological history anywhere on Earth
  • 📱 Progressive Web App - Install on any device, works offline
  • 🎨 Beautiful UI - Dark theme with smooth animations and intuitive controls

🌐 Try It Now

Live App: https://studio-5849128303-2d9db.web.app

No installation required - just open in your browser and start exploring!

🛠️ Tech Stack

Layer Technology
Frontend React 18 + TypeScript + Tailwind CSS
3D/AR Three.js + WebXR + model-viewer (iOS)
AI Google Gemini 2.5 (Flash & flash-lite)
Backend Firebase (Firestore + Hosting)
Geological Data USGS Macrostrat API
Geocoding Nominatim (OpenStreetMap)
State Zustand
Build Vite + PWA Plugin
Caching IndexedDB (Dexie.js)

🚀 Quick Start

# Clone the repo
git clone https://github.com/zzfadi/deeptime.git
cd deeptime

# Install dependencies
npm install
cd deep-time-app && npm install

# Set up environment variables
cp deep-time-app/.env.example deep-time-app/.env
# Edit .env with your API keys

# Run development server
cd deep-time-app && npm run dev

🔑 Environment Variables

Create deep-time-app/.env:

VITE_FIREBASE_API_KEY=your-firebase-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.firebasestorage.app
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-id
VITE_GEMINI_API_KEY=your-gemini-api-key

🤖 Built with AI

This project was built entirely using Kiro, an AI-powered IDE that combines:

Spec-Driven Development

  • 3 complete specifications defining requirements, design, and implementation
  • EARS-formatted requirements with acceptance criteria
  • Architecture diagrams and correctness properties
  • Full requirement traceability

AI-Assisted Development

  • Google Gemini 2.5 for dynamic content generation
  • Kiro AI for code generation, refactoring, and testing
  • Property-based testing with fast-check
  • Automated documentation generation

Modern Tooling

  • Firebase MCP integration for deployment
  • Playwright for E2E testing
  • TypeScript for type safety
  • Comprehensive error handling and offline support

📁 Project Structure

deeptime/
├── .kiro/                    # Kiro specs, hooks, steering (REQUIRED for hackathon)
│   └── specs/
│       ├── deep-time/        # Core types spec
│       ├── deep-time-pwa/    # PWA spec
│       └── enhanced-ar/      # AR experience spec
├── src/                      # Core library (types, services)
├── deep-time-app/            # React PWA application
│   ├── src/
│   │   ├── ar/              # AR session, creatures, transitions
│   │   ├── components/      # React components
│   │   ├── services/        # Firebase, Gemini, geological APIs
│   │   └── data/            # Creature manifest
│   └── public/
│       └── models/          # GLTF creature models
└── tests/                    # Property-based tests

🌍 Educational Value

DeepTime helps you understand:

  • Geological Time Scale - Visualize the vast spans of Earth's history
  • Plate Tectonics - See how your location has changed over time
  • Climate Change - Learn about ancient climates and ecosystems
  • Evolution - Discover how life evolved through different eras
  • Local Geology - Understand the rocks and fossils beneath your feet

Perfect for:

  • 🎓 Students learning about Earth science
  • 👨‍🏫 Teachers looking for engaging educational tools
  • 🌱 Nature enthusiasts exploring their local environment
  • 🔬 Anyone curious about our planet's history

🚧 Roadmap

Future enhancements planned:

  • More detailed creature models and animations
  • Educational quiz mode
  • Social sharing of discoveries
  • Multi-language support
  • Fossil identification guide
  • Time-lapse animations of geological changes
  • Integration with museum collections

📜 License

MIT License - see LICENSE

🙏 Acknowledgments

  • USGS Macrostrat for comprehensive geological data
  • Google Gemini for AI-powered narratives
  • OpenStreetMap/Nominatim for geocoding services
  • Kiro for AI-assisted development
  • Three.js community for WebXR support

🤝 Contributing

Contributions are welcome! This is an educational project aimed at making Earth science accessible and engaging. Feel free to:

  • Report bugs or suggest features via GitHub Issues
  • Submit pull requests for improvements
  • Share your geological discoveries on social media
  • Use it in educational settings and provide feedback

📧 Contact

Built by @zzfadi


Explore the past, understand the present, imagine the future 🌍

Releases

No releases published

Packages

No packages published