Skip to content

Explore traditional musical instruments from around the world through an interactive 3D globe. Discover the rich diversity of global music cultures.

Notifications You must be signed in to change notification settings

trekar99/EthnoSphere

Repository files navigation

EthnoSphere

An interactive 3D globe for exploring traditional musical instruments from around the world. Discover the rich diversity of global music cultures through an immersive web experience.


✨ Features

  • Interactive 3D Globe — Navigate a beautifully rendered Earth with realistic atmosphere, day/night cycle, and warm terminator glow
  • 85+ Traditional Instruments — Explore instruments from every continent, each with detailed descriptions and geographic origins
  • Live Audio Samples — Listen to authentic instrument sounds powered by the Freesound API
  • Modern UI — Clean, minimal cyberpunk-inspired interface with smooth animations and glass morphism design
  • Responsive Controls — Drag to rotate, scroll to zoom, click markers to explore

🎵 Instrument Coverage

Region Instruments
Europe Flamenco Guitar, Balalaika, Hardingfele, Bouzouki, Nyckelharpa, Gaita, Cimbalom, Hurdy-Gurdy, Kantele, Bodhrán
Asia Koto, Shamisen, Sitar, Tabla, Erhu, Pipa, Gamelan, Guzheng, Dizi, Bansuri
Africa Djembe, Kalimba, Kora, Balafon, Ngoni, Shekere, Masenqo, Nyatiti, Mbira
Americas Charango, Quena, Cajón, Bandoneón, Steelpan, Maracas, Marimba, Berimbau
Oceania Didgeridoo, Ukulele, Pate, Nose Flute
Middle East Oud, Ney, Tar, Kamancheh, Bağlama, Santur

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/trekar99/Etnosphere.git
cd Etnosphere

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:5173 in your browser.

Build for Production

npm run build
npm run preview

🛠️ Tech Stack

Technology Purpose
React 18 UI framework
React Three Fiber React renderer for Three.js
Three.js 3D graphics and WebGL
TypeScript Type safety
Tailwind CSS v4 Utility-first styling
Zustand State management
Vite Build tool
Freesound API Audio samples

📁 Project Structure

src/
├── components/
│   ├── 3d/           # Globe, Scene, Markers, Atmosphere
│   ├── cesium/       # Alternative Cesium implementation
│   └── ui/           # Header, DetailsPanel, StatsBar
├── data/
│   └── ethnoData.ts  # Instrument database (85+ entries)
├── services/
│   └── freesound.ts  # Freesound API integration
└── store/
    └── useAppStore.ts # Zustand state management

🎨 Design

EthnoSphere features a cyberpunk-inspired aesthetic:

  • Neon cyan (#00d4ff) accent color
  • Dark immersive backgrounds
  • Glass morphism UI panels
  • Animated beacon markers
  • Subtle atmospheric effects

📝 License

MIT License — feel free to use and modify.


🙏 Credits


Future Work

  • Check Museu de la Música Instrument Catàleg
  • Improve Freesound queries
  • Include more instruments


Made with 🎶 for music lovers worldwide

About

Explore traditional musical instruments from around the world through an interactive 3D globe. Discover the rich diversity of global music cultures.

Resources

Stars

Watchers

Forks