An advanced interactive GitHub visualization system that transforms repositories, commits, and activity into a real-time explorable 3D universe.
CodeNebula visualizes a GitHub profile as a dynamic 3D galaxy where:
- Repositories become planets orbiting in space
- Commits manifest as glowing particles orbiting each planet
- Stars (GitHub stars) determine planet size
- Languages are represented by unique planet colors
- Contributions create pulsing energy waves throughout the galaxy
- Interactive 3D galaxy with procedurally generated planets
- Each repository rendered as a unique planet with language-based coloring
- Orbiting commit particles that animate around planets
- Moons represent forked repositories
- Rings indicate highly popular repositories (100+ stars)
- Procedural nebula background using Perlin noise shaders
- Animated starfield with 3000+ stars
- Bloom and depth of field post-processing
- Contribution energy waves emanating from the galaxy center
- Glassmorphism UI panels with neon glow accents
- Hover over planets to see repository names and languages
- Click planets to zoom in and view detailed information
- Smooth camera transitions between viewpoints
- Auto-tour mode for cinematic exploration
- Full orbit controls (pan, zoom, rotate)
- Filter repositories by programming language
- Search repositories by name or description
- Timeline slider to visualize repository growth over time
- React 18 with Vite
- Three.js for 3D rendering
- React Three Fiber (R3F) for declarative 3D scenes
- @react-three/drei for helpers and abstractions
- @react-three/postprocessing for visual effects
- Zustand for state management
- GLSL shaders for custom effects
- Custom GLSL vertex and fragment shaders
- Postprocessing pipeline (Bloom, DOF, Vignette)
- GPU-accelerated particle systems
- Instanced rendering for optimal performance
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/Manavarya09/CodeNebula.git
cd CodeNebula
# Install dependencies
npm install
# Start development server
npm run devnpm run buildThe build output will be in the dist/ directory.
- Open the application in your browser
- Enter a GitHub username in the search box
- Press Enter or click "Explore" to fetch data
- Navigate the 3D galaxy:
- Click and drag to rotate the view
- Scroll to zoom in/out
- Hover over planets to see repository names
- Click on planets to view detailed information
- Use filters to focus on specific languages
- Use the timeline slider to see repository history
- Click "Auto Tour" for a cinematic experience
codnebula/
├── src/
│ ├── components/
│ │ ├── Scene.jsx # Main 3D scene setup
│ │ ├── Galaxy.jsx # Galaxy container
│ │ ├── Planet.jsx # Individual planet component
│ │ ├── OrbitParticles.jsx # Commit particles
│ │ ├── Starfield.jsx # Background stars
│ │ ├── Nebula.jsx # Procedural nebula
│ │ ├── ContributionWaves.jsx # Energy waves
│ │ └── CameraController.jsx # Camera management
│ ├── hooks/
│ │ └── useGithubData.js # GitHub data fetching hook
│ ├── utils/
│ │ ├── api.js # GitHub API utilities
│ │ └── dataMapper.js # Data transformation
│ ├── store/
│ │ └── useStore.js # Zustand state store
│ ├── App.jsx # Main application
│ ├── main.jsx # Entry point
│ └── index.css # Global styles
├── public/
├── index.html
├── package.json
├── vite.config.js
└── README.md
The application uses the GitHub REST API to fetch:
- User profile information
- Repository list with metadata
- User events for contribution data
No authentication required for public data.
MIT License - Copyright (c) 2026 Manav Arya
Built with React Three Fiber and Three.js communities.