What better way to get people to touch grass than showing them what they're missing when they never look up?
So I built NightSky to get people interested in the night sky and give them something to look for when they go outside. With NightSky you can explore a total of 88 constellations, learn about them, and make a short plan to find one from where you live.
The idea is to make stargazing easy for anyone to get into. You don't need to know the names of a hundred stars or own a telescope. Just pick a constellation that interests you, follow the guide, and spend a few minutes looking for it in the sky.
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass. NightSky lets you explore the sky and discover many constellations. Click a star pattern to read its story, a bit of its history, how to recognise it, and what else you might see nearby. Some have a galaxy you can look for with binoculars. Others are worth learning just for their shape or the story behind their name.
The idea is to let curiosity do some of the work. If a constellation catches your attention, the next question should be: how can I see this for myself?
That's what the Sky guide is for. Set your location and time, and the Sky compass shows the patterns above your horizon. The scrolling Star Map is for exploring; the compass gives you directions for the real sky.
The “Plan to see it” button in a description takes that constellation straight to the observing planner. You can choose a 10, 15, or 20-minute session and whether you're using your eyes, binoculars, or a telescope. If the constellation isn't suitable at that place and time, the app tells you instead of pretending it'll be visible.
Gemma can personalise the plan's instructions. You can then download it and take it outside. Afterwards, My observations tab lets you record what you found, what you partly found, or what you'll try again another night. Not finding it the first time still counts as getting outside and having a look.
Try opening a constellation that interests you, reading its finding tips, and pressing “Plan to see it.” Set your location and an evening time, then create a plan. You can explore the catalogue without sharing your location. It's built with HTML, CSS, JavaScript, Canvas, WebGL and Three.js, with a small Node server for the connected features.
The interactive sky uses Three.js and WebGL for rendering, with D3 Celestial providing constellation coordinates and star data.
Astronomy Engine handles the astronomical calculations, including constellation positions, directions, and visibility based on the selected location and time.
OpenSource models, connected through ollama, generates personalised observing instructions using the calculated targets and selected equipment.
The generated instructions are checked against the astronomical calculations, so the app keeps the calculated directions and altitudes rather than relying on the model for those values.
Each constellation also has its own finding notes with specific stars and landmarks to help users recognise it.
For location related features, NightSky uses Open-Meteo for city lookup and SerpApi for finding nearby observatories and astronomy events I wanted the AI part to be something people could change. Gemma is an open-weight model, and Settings lets you switch to your own Ollama endpoint and an installed model. You aren't stuck with the app's hosted connection or the model I picked.
With a local Ollama setup, the model requests can stay on your machine. Observation notes stay in your browser too. The same target checks apply whichever model you use, and the calculated planner works without AI.
Best Use of Gemma — Gemma 4 personalises short observing plans around constellations calculated for the selected location and time.
Best Use of SerpApi — Finds nearby stargazing spots, astronomy clubs, and events through live search.
Best Use of Render — Hosts the app and Node.js API, keeping API keys secure on the server.
I'd like someone who normally walks past the night sky without thinking about it to recognise one constellation. Maybe they come back to find another. Maybe they get a friend to look for it with them.
That's the goal of NightSky: make the sky interesting enough that people want to go outside and see it for themselves.