Inspiration

The inspiration behind Live Asteroid Sim comes from a desire to educate the public on near-Earth objects and space hazards in an engaging, visual way. While NASA provides extensive public data on asteroids, raw numerical feeds can be difficult to interpret. This project was created to transform real-time orbital and physical data into an accessible, interactive 3D simulation that makes tracking space hazards both informative and intuitive.

What it does

Live Asteroid Sim is an interactive 3D simulator that tracks near-Earth objects using live scientific observation data fetched directly from NASA's Near Earth Object Web Service (NeoWs) API. Key features include:

  • Real-Time Data Integration: Fetches live asteroid parameters—including orbits, sizes, speeds, approach vectors, and potential threat levels—directly from NASA's dataset.
  • 3D Solar System & Earth Modeling: Renders interactive 3D models of Earth, its atmospheric layers, an accurate SVG Moon layer, and dynamic asteroid trajectories.
  • Interactive Threat Simulators: Includes built-in scenario tools to simulate potential asteroid impact damage on Earth as well as planetary defense strategies like DART (Double Asteroid Redirection Test) to protect the planet.
  • Visualization & Data Tables: Provides side-by-side data tables with live numerical metrics to clarify physical scales alongside truncated 3D view distances.

How we built it

The project was constructed using a modern web development stack:

  • Frontend Framework: Built with React and Next.js for high-performance rendering and web structure.
  • 3D Graphics Engine: Utilized Three.js to handle spatial modeling, rendering, dynamic lighting, and orbital movement for Earth, the Moon, and asteroids.
  • Data Pipelines: Integrated NASA's NeoWs REST API to stream up-to-date orbital and physical attributes of near-Earth objects.
  • Deployment & CI/CD: Added localized safety checks and configured Android build files for GitHub Artifact runs to support cross-platform releases.

Challenges we ran into

  • Spatial Scale vs. User Experience: True astronomical distances make pinpointing relatively small asteroids in vast space nearly impossible for users. To solve this, asteroid distances relative to Earth and the Moon were strategically truncated in the 3D view, while exact real-world dimensions were clearly presented in data tables.
  • Model Precision & Layers: Building accurate visuals—such as designing an aligned SVG layer for the Moon and refining the globe model—required iterative visual and mathematical tweaks across development iterations.
  • UI & Orientation Fixes: Aligning complex 3D objects with responsive overlay UI, adjusting font text clarity, and maintaining proper spatial orientations across screen sizes required active adjustments.

Accomplishments that we're proud of

  • Successfully converting live REST API data from NASA into dynamic, performant 3D objects in real time.
  • Designing interactive features that simulate planetary defense mechanisms (like DART) and impact scenarios.
  • Creating an accurate visual system incorporating realistic globe rendering and SVG overlays.
  • Maintaining detailed devlogs across development and successfully shipping the project's very first major release ("Ship #1").

What we learned

  • Strategies for balancing real-world astronomical scale against UI/UX usability in 3D canvas environments.
  • Practical application of Three.js in conjunction with Next.js for optimizing real-time 3D web applications.
  • Methods for setting up GitHub Artifact runs and preparing Android build files for wider distribution.

What's next for Asteroid 3D Simulator

  • Refining UI element scaling and orientation controls based on community feedback to help users better understand the scope of the app.
  • Expanding simulator capabilities for additional planetary defense models and refined impact physics calculations.
  • Adding more customizable camera perspectives and deep-dive analytics for specific asteroid trajectories.

Built With

Share this project:

Updates

Submission history