Last October, my team Masons embarked on an exciting journey to create something truly out of this world for the NASA Space Apps Cairo 2024 hackathon. Our project, Orbit, is an interactive 3D web application that simulates the solar system and tracks Near-Earth Objects (NEOs). Built with Next.js, Three.js, and a Golang backend, Orbit is designed to educate, inspire, and provide real-time insights into the cosmos. Today, I’m thrilled to share the story behind this project and how we brought it to life.
What is Orbit?
Orbit is more than just a web app—it’s a gateway to the universe. It allows users to explore the solar system in stunning 3D, track NEOs, and learn about the celestial bodies that surround us. By leveraging NASA’s open-source datasets, we’ve created a platform that combines education, science, and cutting-edge technology to make space exploration accessible to everyone.
Our goal was to build a tool that not only visualizes the solar system but also highlights the potential threats posed by NEOs and Potentially Hazardous Asteroids (PHAs). Post-hackathon, we’ve decided to keep Orbit open-source, inviting the community to contribute and help us refine and expand its features.
Key Features of Orbit
1. Interactive 3D Solar System
At the heart of Orbit is a fully interactive 3D orrery built with Three.js. Users can:
- Explore the Solar System: Zoom, rotate, and pan to view planets, moons, and asteroids in real-time.
- Control Time: Speed up, slow down, or reverse time to see how celestial bodies move over days, months, or even years.
- First-Person View: Experience the solar system from a first-person perspective, as if you’re flying through space.
2. Near-Earth Object (NEO) Tracking
Orbit integrates with NASA’s Small Body Database to provide up-to-date information on NEOs and PHAs. Users can:
- View NEO Orbits: See the trajectories of NEOs and understand their paths relative to Earth.
- Detailed Information: Access detailed pages for each NEO, including Keplerian parameters like eccentricity, semi-major axis, and inclination.
- Personalized Dashboard: Save and manage favorite NEOs for quick access.
3. AI-Powered Chatbot
We integrated the Gemini API to create an AI chatbot that answers user questions about space, NEOs, and the solar system. Whether you’re curious about the position of a specific asteroid or want to learn more about orbital mechanics, the chatbot is there to help.
4. Complex Astronomical Computations
Using Claude, we handle complex orbital calculations in the background. This ensures that the app runs smoothly while providing accurate predictions of future NEO positions and potential threats to Earth.
The Tech Stack
- Frontend: Next.js for a responsive and intuitive user interface.
- 3D Rendering: Three.js for the interactive solar system and NEO visualizations.
- Backend: Golang for API management, data retrieval, and session tracking.
- AI Integration: Gemini API for the chatbot and Claude for complex computations.
- Data Source: NASA’s Small Body Database for real-time NEO data.
Our Hackathon Journey
1. Planning and Ideation
We started by brainstorming ideas that aligned with NASA’s themes and datasets. We wanted to create something that was both educational and visually engaging. After reviewing NASA’s Small Body Database, we decided to focus on NEOs and the solar system, combining real-time data with an interactive 3D experience.
2. Development
We split into two teams:
- The frontend team worked on the UI and 3D orrery using Next.js and Three.js.
- The backend team built the API with Golang, integrated NASA’s database, and implemented session tracking.
3. Challenges and Solutions
One of the biggest challenges was rendering real-time data updates in the 3D visualization without compromising performance. We also had to optimize the AI chatbot’s response time and ensure that complex orbital calculations didn’t slow down the app. By leveraging Claude for intensive computations and implementing efficient caching strategies, we were able to overcome these hurdles.
4. Testing and Optimization
We tested Orbit across multiple devices and browsers to ensure a seamless experience. The 3D orrery was optimized for smooth interactions, and the app was made responsive for both desktop and mobile users.
The Impact of Orbit
Orbit is more than just a hackathon project—it’s a tool that brings the wonders of space to everyone. Whether you’re a student, a space enthusiast, or just curious about the universe, Orbit provides a unique way to explore and learn. By highlighting the potential threats posed by NEOs, we hope to raise awareness and inspire a deeper interest in space science.
What’s Next for Orbit?
Post-hackathon, we’re committed to keeping Orbit open-source and continuing its development. We’re excited to incorporate community feedback and explore new features, such as:
- Multiplayer Mode: Allow users to explore the solar system together in real-time.
- Augmented Reality (AR): Bring the 3D orrery into the real world with AR technology.
- Educational Modules: Add interactive lessons and quizzes to make learning about space even more engaging.
How to Get Involved
Orbit is open-source, and we welcome contributions from the community! Whether you’re a developer, designer, or space enthusiast, there’s a place for you in this project. Check out our GitHub repository to get started.
Final Thoughts
Working on Orbit with Team Masons was an unforgettable experience. We pushed the boundaries of what we thought was possible, learned new technologies, and created something we’re truly proud of. We hope Orbit inspires others to explore the cosmos and continue pushing the frontiers of space science and technology.
Thank you to NASA Space Apps for this incredible opportunity, and to everyone who supported us along the way. The universe is vast, and with Orbit, we’re just getting started.
References
- NASA Small Body Database: NASA SBD
- Gemini API: Used for the AI chatbot functionality.
- Claude AI: Used for complex astronomical computations.
- Next.js: Framework for frontend development.
- Three.js: Library for rendering 3D graphics and the interactive orrery.
- Golang: Backend for API management and data retrieval.
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.