How it works!

Loading animation or Near Earth Objects GIF

I developed a web app called NEO.js, which displays near-Earth objects (NEOs) that are potentially hazardous, including meteors and asteroids. The project was primarily built using JavaScript, leveraging the three.js library for 3D visualization and CSS2DRenderer for labeling. Upon clicking the labels, users can access detailed information about each object, including impact chance, average diameter, closest approach distance, close approach date, and 3D models. The app visualizes these objects around Earth, though the sizes are not to scale, as they would be too small to represent meaningfully. Using CSS2DRenderer, I made the objects clickable through the EventListener function, and when a label is clicked, a popup appears, displaying basic data and a 3D model of the object in GIF format, created using Blender and public 3D resources from Sketchfab and NASA. I gathered data on size, closest approach distance, and date of approach from various sources, including Wikipedia, NASA’s Eyes on Asteroids, and The Sky Live; for higher-risk objects, data was readily available, but for less prominent objects like 2012 TY52 and 1998 KJ9, I expanded my search to resources like the NASA Jet Propulsion Laboratory. This project simplifies the process of educating people about potentially hazardous objects near Earth, as understanding the risks is the first step toward mitigation. Fortunately, we haven’t faced many recent incidents like the Tunguska or Chelyabinsk events, which resulted in significant injuries in Russia during different eras. Hopefully, we can avoid similar fates to the dinosaurs, and if an event occurs, we will be better prepared. I learned about this project only six days before the deadline from my coordinator at Unique World Education, and my knowledge of JavaScript, CSS, and HTML was limited to basic concepts learned in school and from personal side projects. While it may not have been the best decision to use JavaScript for a project of this scope, I’ve enjoyed the learning experience immensely. As I write this at 8:25 PM on the last day of this challenge, I am still actively developing the project, and participating in a local meet in Abu Dhabi has been a highlight, allowing me to connect with like-minded and skilled hobbyists and developers.