Cast your thoughts into the cosmos. A spherical planetarium where confessions become stars.
Echoes in Orbit is an immersive 3D web experience that transforms confessions into stars on a cosmic dome. Users can post anonymous or authenticated messages across five emotional categories, each mapped to a unique zone in a spherical planetarium.
- 🌐 Spherical Planetarium - Navigate a 3D cosmic dome with stars positioned using Fibonacci sphere distribution
- 💫 Five Galaxies - Hope, Regret, Advice, Dream, Gratitude - each with dedicated zones
- 🔒 Privacy Options - Post anonymously or with authentication
- ⏰ Time-Locked Messages - Schedule confessions for future delivery
- ⭐ Social Interactions - Like and comment on echoes
- 🎮 Intuitive Controls - Touch, mouse, and keyboard navigation
Visit the live application: echoes-in-orbit.vercel.app
- Framework: Next.js 16 with App Router
- 3D Rendering: Three.js + React Three Fiber
- Database: Supabase (PostgreSQL)
- Authentication: Clerk
- Styling: TailwindCSS
- Language: TypeScript
- Deployment: Vercel
For detailed technical documentation, architecture, and implementation details, see the docs/ folder:
- Technical Architecture - System design, algorithms, and data flow
- Deployment Guide - Step-by-step deployment instructions
- Redeploy Instructions - How to redeploy on Vercel
- API Reference - API endpoints and usage
- Node.js 18+ and npm
- Supabase account
- Clerk account (optional, for authentication)
-
Clone the repository
git clone https://github.com/sai21-learn/echo-in-orbits.git cd echo-in-orbits -
Install dependencies
npm install
-
Set up environment variables
Create a
.env.localfile:# Supabase NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key # Clerk (optional) NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key
-
Set up database
Run the SQL schema in Supabase:
# Execute supabase_schema.sql in your Supabase SQL editor -
Seed database (optional)
npm run seed
-
Run development server
npm run dev
-
Open browser
Navigate to http://localhost:3000
echos_in_orbit/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── page.tsx # Home page
│ │ ├── planetarium/ # 3D experience
│ │ ├── documentation/ # Technical docs page
│ │ └── api/ # API routes
│ ├── components/
│ │ ├── canvas/ # Three.js components
│ │ │ ├── StarField.tsx # Star rendering
│ │ │ ├── DomeGrid.tsx # Spherical grid
│ │ │ └── ...
│ │ └── ui/ # UI components
│ └── lib/
│ ├── utils.ts # Spherical distribution algorithm
│ ├── supabase.ts # Database client
│ └── store.tsx # Global state
├── docs/ # Documentation
├── scripts/ # Utility scripts
└── public/ # Static assets
- Mouse: Click and drag to rotate view, scroll to zoom
- Touch: Pinch to zoom, drag to rotate
- Keyboard: WASD to move camera
- Click "Create Echo" button
- Choose a category (Hope, Regret, Advice, Dream, Gratitude)
- Write your message (10-500 characters)
- Select visibility (public/private)
- Optional: Set time-lock for future delivery
- Submit
- Click a star to view the echo
- Like and comment on public echoes
- Private echoes appear locked to non-owners
See docs/DEPLOYMENT.md for detailed deployment instructions.
Quick Deploy to Vercel:
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Fibonacci sphere algorithm for even star distribution
- Three.js community for 3D rendering resources
- Next.js team for the amazing framework
- Supabase for seamless database integration
- Author: Sai
- GitHub: @sai21-learn
- Project Link: https://github.com/sai21-learn/echo-in-orbits
Made with ❤️ and ✨ cosmic dust


