Inspiration
I’ve always dreamed of becoming an astronaut, but due to educational limitations, I wasn’t able to pursue that path. Years later, I became a software engineer, yet my desire to contribute to space exploration and planetary defense never faded.
While exploring the space industry, I noticed a lack of accessible automation tools. I searched for systems that could automatically track asteroids for public use, but I couldn’t find one. Seeing this gap inspired me to create this project to address the problem and make asteroid monitoring more accessible.
What it does
NeoPulse is a real-time asteroid intelligence platform that helps people understand near-Earth risk before it becomes a headline. It pulls live Near-Earth Object data from NASA NeoWs, ranks and visualizes objects by threat signals, and turns raw orbital metrics into human-readable insights. Users can explore upcoming close approaches, open detailed object profiles, run AI-generated impact narratives, and chat with an in-app planetary defense assistant for context.
How we built it
We built NeoPulse with Next.js (App Router) + TypeScript, styled with Tailwind, and powered by a persistent React Three Fiber/Three.js Earth scene for an immersive “planetary monitoring” experience. On the backend, we created API routes that fetch NASA NeoWs feed data, normalize it into a usable asteroid schema, and derive practical fields like threat level, classification proxy, and sorting by miss distance. For intelligence features, we integrated Amazon Nova ( Amazon Nova 2 Lite ) with streaming responses (SSE) to generate impact analysis and conversational planetary-defense answers in real time. On the frontend, we focused on responsive filtering, pagination, modal deep-dives, and smooth loading states so users can move from “wow” to “understand” quickly.
Challenges we ran into
One challenge was translating NASA’s raw feed into meaningful, user-friendly risk signals without overclaiming certainty. Another was performance: keeping a cinematic 3D Earth always mounted while ensuring page transitions remained smooth and interaction layers didn’t conflict. We also had to handle streaming AI UX (partial tokens, typing state, malformed chunks, fallback states) so responses felt fast but reliable. Finally, balancing scientific seriousness with accessibility was tricky because the app needs to be both accurate and emotionally compelling.
Accomplishments that we're proud of
We’re proud that NeoPulse feels like a complete product, not just a data viewer: live NASA ingestion, threat-oriented exploration, AI impact interpretation, and an expert chat loop all work together in one experience. The visual identity is strong and memorable, especially the persistent Earth observatory effect across the app. We also shipped meaningful resilience features like loading skeletons, retry paths, and graceful error handling. Most importantly, we made complex asteroid telemetry understandable for non-experts in seconds.
What we learned
We learned that the hardest part of “space data apps” isn’t fetching data, it’s trustworthy interpretation and communication. We got much better at designing around uncertainty: using derived heuristics clearly, surfacing confidence implicitly, and avoiding fearbait. On the engineering side, we learned practical patterns for combining WebGL-heavy UI with modern React app architecture and streaming AI interactions. We also learned that good planetary-defense UX must feel urgent without feeling sensational.
What's next for NeoPulse
Next, we want to add true orbital simulation layers, historical flyby timelines, and richer risk scoring grounded in more complete orbital/physical datasets. We plan to introduce user alerts/watchlists for selected objects, plus shareable “threat brief” snapshots for educators and communities. We also want to improve explainability by showing why each threat label was assigned and what data points drove it. Longer term, NeoPulse can evolve into a public-facing planetary defense companion: real-time, transparent, and globally accessible.

Log in or sign up for Devpost to join the conversation.