A Unity Astronomy Visualisation Exploring Real-Time Celestial Rendering
VR Stargazing is a Unity application that explores the engineering principles behind real-time astronomical visualisation, procedural star rendering and immersive spatial exploration. Using the Bright Star Catalogue as its primary data source, the project transforms astronomical data into an interactive three-dimensional night sky through mathematical coordinate conversion, custom rendering and runtime scene generation.
Developed as an ongoing learning project, the application serves as a foundation for understanding astronomical simulation before progressively re-engineering the implementation and expanding it to support virtual reality, planetary rendering and additional celestial bodies.
The Engineering Problem
Rendering an interactive night sky requires significantly more than displaying textured points. Astronomical catalogues must be interpreted, celestial coordinates transformed into three-dimensional space, stellar properties converted into visual characteristics and thousands of objects rendered efficiently while maintaining responsiveness for real-time interaction.
The challenge of this project is to understand these underlying systems before redesigning them into a more modular architecture capable of supporting increasingly sophisticated astronomical simulation.
My Role
I developed the Unity implementation that imports astronomical catalogue data, generates the procedural star field, applies physically inspired colour and brightness calculations and provides interactive constellation visualisation. Alongside implementing these systems, I am using the project to deepen my understanding of astronomical rendering before progressively refactoring the codebase using improved software engineering practices and extending the simulation beyond stars to include planets and other celestial objects.
Simulation Demonstration
Procedural Star Field Generation
Demonstrates the complete runtime generation of the night sky by loading astronomical catalogue data, calculating star positions and rendering of procedurally generated stars in real time.
Constellation Visualisation
Demonstrates the interactive constellation system by highlighting connected stars, generating runtime constellation overlays and visualising recognised celestial patterns across the procedural star field.
Constellation Visualisation
Demonstrates real-time exploration of the procedurally generated night sky through interactive camera movement, showcasing smooth rendering, spatial navigation and immersive astronomical visualisation.
Architecture Overview
VR Stargazing is organised around a data-driven pipeline that transforms astronomical catalogue data into an interactive three-dimensional star field. Runtime systems separate data processing, procedural generation, rendering and interaction, providing a modular foundation for future expansion.

The application loads and processes astronomical data before generating runtime star objects that drive rendering and constellation visualisation. By keeping data loading, visual presentation and interaction focused on separate responsibilities, the project establishes a scalable architecture that can evolve to support virtual reality, planetary simulation and additional celestial systems.
Core Simulation Systems
The application is organised into three focused areas that transform astronomical data into an interactive visualisation. Each system maintains a distinct responsibility while contributing to the complete rendering and exploration of the night sky.

Astronomical Data Processing
Imports the Bright Star Catalogue, parses binary star records and converts astronomical properties into runtime data suitable for visualisation. Coordinate transformations, spectral classification and magnitude calculations provide the foundation for every rendered star.

Procedural Star Rendering
Generates the star field dynamically using custom shaders, runtime object creation and mathematically calculated spatial positions. Star size and colour are derived directly from astronomical data, producing a scalable visual representation of the night sky.

Constellation Visualisation
Utilising the catalogue to implement interactive constellation highlighting through runtime line generation and dynamic material updates. Individual constellations can be enabled and disabled independently while preserving the underlying procedural star field.
Together, these systems establish a data-driven foundation that separates astronomical processing from visual presentation, providing a scalable architecture for future virtual reality features, planetary simulation and additional celestial bodies.
Engineering Principles
| Principle | Application |
| Astronomical Data Processing | Loads and parses the Bright Star Catalogue, converting astronomical measurements into runtime data structures used throughout the visualisation pipeline. |
| Mathematical Coordinate Systems | Converts right ascension and declination into three-dimensional Cartesian positions, accurately distributing stars across the celestial sphere for real-time rendering. |
| Procedural Rendering | Dynamically generates thousands of stars at runtime using Unity primitives, custom shaders and data-driven visual properties rather than manually authored scene content. |
| Scientific Data Visualisation | Maps stellar spectral classifications to representative colours and converts apparent magnitude into visual size, producing an intuitive representation of astronomical observations. |
| Extensible Architecture | Serves as the foundation for future refactoring, virtual reality support and the addition of planets, moons and other celestial bodies while progressively improving the overall software architecture. |
Key Design Decisions
Progressive Re-Engineering
Rather than simply reproducing the reference implementation, each completed section is analysed, redesigned and rewritten using improved software engineering practices that emphasise readability, modularity and maintainability.
Separation of Simulation and Rendering
Astronomical calculations remain independent from rendering systems, allowing simulation accuracy and visual presentation to evolve separately without introducing unnecessary coupling.
Modular VR Systems
Virtual reality input, camera management and interaction remain isolated from simulation logic, enabling future interaction features without impacting the underlying astronomical systems.
Extensible Celestial Architecture
The project is designed to grow beyond stellar rendering, providing an architecture capable of supporting planets, moons, constellations, deep-sky objects and additional astronomical simulations through reusable components.
Technologies
Development
Unity
C#
Visual Studio
Git
Engineering Approach
Modular Software Architecture
Object-Oriented Design
Mathematical Simulation
Gameplay System Architecture
Character Progression Systems
Real-Time Rendering
Procedural Content Generation
Spatial Transformations
Separation of Concerns
Data-Driven Development
Custom Shader Development
Incremental Software Development
Engineering Outcome
VR Stargazing demonstrates how astronomical catalogue data can be transformed into an interactive real-time visualisation within Unity. By combining binary data processing, coordinate conversion, procedural star generation, custom shader rendering and constellation overlays, the project establishes a functional foundation for exploring celestial simulation.
As the implementation is progressively rewritten and expanded, the project will evolve into a more modular system capable of supporting virtual reality, planets and additional celestial bodies while reflecting improved software architecture and engineering practices.
Application Gallery
Repository
Explore the source code to see how the architectural principles are implemented throughout the framework.
