LunaVis is a beautifully designed, dark-themed Streamlit application that allows you to explore the current and future phases of the moon based on any date and location (latitude/longitude). It visually represents the moon phase against a dynamically generated starry sky, plots illumination over the next 30 days, and even plays a soothing soundtrack matching the moon phase!
- 🌖 Real-time Moon Phase Calculation: Computes the exact illumination and phase (Waxing/Waning) based on the date and coordinates.
- 🖼️ Dynamic Imagery: Displays an accurately generated starry sky with the precise moon phase image.
- 🎵 Atmospheric Soundtracks: Immersive audio that changes depending on whether it's a New Moon, Crescent, Quarter, Gibbous, or Full Moon.
- 📈 30-Day Illumination Plot: A stunning chart plotting the moon's illumination for the next 30 days.
- ℹ️ Educational Insights: Discover facts about moon libration and access NASA's moon phase visualizer directly from the sidebar.
Follow these steps to get LunaVis up and running on your local machine.
git clone https://github.com/yourusername/LunaVis-App.git
cd LunaVis-AppIt's recommended to use a virtual environment. Install the required Python packages using:
pip install -r requirements.txtLaunch the Streamlit app with the following command:
streamlit run app.pyThe application will open automatically in your default web browser at http://localhost:8501.
| Technology | Description |
|---|---|
| Streamlit | The fast way to build and share data apps. |
| Ephem | High-precision astronomy library for Python. |
| Pillow (PIL) | Image processing library for the starry sky and moon visuals. |
| Matplotlib | For plotting the 30-day illumination graph. |
In LunaVis, you simply input the Date, Latitude, and Longitude and click Show Moon Phase.
- Interactive Plotting: Click the Plot Next 30 Days button to generate a dynamic chart illustrating the moon's brightness.
- Interactive Audio: Listen to the calming soundtrack paired with your selected moon phase.
Subhransu Nanda © 2025
Explore the cosmos, one phase at a time! 🚀
