You are browsing as a guest. Sign up (or log in) to start making projects!

Star_Gaze

  • 1 Devlogs
  • 5 Total hours

StarGaze tells you exactly what you're looking at when you point your phone at the sky. After finding that night-sky photos are far too noisy for image-recognition models, I rebuilt the app using the standard astrometry pipeline: GPS for position, timestamp for epoch, and the device's IMU to derive real-time pointing vectors. A lightweight spherical trigonometry engine maps a star catalog directly to screen coordinates entirely on-device with zero network latency or cellular signal required. The entire engine—tracking 1,009 stars, 88 constellations, 5 planets, and the Moon—runs within a compact 57 KB data footprint, verified directly against NASA JPL Horizons ephemerides across web and native Android platforms.

Ship #1 Pending review

What I Made

StarGaze is an offline, real-time sky map for Web and Android. I originally tried using AI image recognition on night-sky photos, but phone cameras are too noisy for that to work. So, I rebuilt it the right way: using GPS, the clock, your phone’s sensors, and some spherical trigonometry. It fits 1,009 stars, 88 constellations, 5 planets, and the Moon into just 57 KB of data, and works completely offline.

What Was Challenging

Phone hardware is the biggest weak link. I had to build a system that compares your phone's magnetic reading to a global model (IGRF). Now, if a nearby metal object is messing up your heading, the app warns you instead of quietly pointing the wrong way.

The most frustrating bug was realizing I wrote and tested the complex math for atmospheric refraction (which bends light near the horizon)—but never actually called the function! Fixing that one skipped line resolved the biggest visual error in the entire app.

It was tempting to use heavy, ultra-precise planetary math. But I had to accept that calculating sub-arcsecond accuracy is pointless when a phone compass is naturally off by a few degrees anyway.

What I’m Proud Of

If you open the app at noon, it won’t show you stars. A custom sky-brightness model calculates the Sun and Moon’s position to only draw objects that are actually visible right now.

Instead of just blindly thinking the math is right, I set up automated monthly tests that check the app's planetary positions directly against real NASA JPL Horizons data spanning 2021–2045.
  • 1 devlog
  • 5h
Try project → See source code →
Open comments for this post

4h 59m 16s logged

For V2, I focused on making StarGaze more accurate and reliable rather than just adding more features. I fixed a major horizon-positioning error caused by missing atmospheric refraction, then worked through smaller astrometric corrections including Delta-T, nutation, aberration, planetary parallax, and stellar proper motion. I also improved the compass system with calibration, Android sensor fusion, and magnetic-field checks to handle interference from nearby metal. On top of that, I added sky-visibility calculations using the Sun and Moon so stars aren’t displayed as visible when the sky should be too bright. The engine now tracks 1,009 stars, 88 constellations, 5 planets, and the Moon while staying around 57 KB, and I added automated checks against NASA JPL Horizons to catch positioning errors over time.

0
0
16

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…