{{tag>celestial_coordinate virtual_night_sky}} ===== Developing the Celestial Sphere Platform (i.e., Virtual Night Sky) ===== The main goal for this topic is to develop a platform for simulating a realistic night sky in Unity or Unreal Engine. The virtual night sky can be used in a handful of other simulations such as 'diurnal motions of celestial objects', 'seasonal constellations', 'time and calendar', etc. In the past, this model was developed in Blender, however, for several reasons (mainly for real-time user interactions), a virtual sky model is to be developed in Unity (or Unreal Engine). Check this YouTube video [[https://www.youtube.com/watch?v=tpTzwyiGByE]] for some introductory information on starting the creation of the model in Unity. The first task is to create a Unity model of recreating the model seen in the above video. ---- The following is an old information based on the Blender model. ^ [{{ topics:skytracker_image1.png?0x450&nolink | **Blender Virtual Night Sky 3D-Viewport** This is one of the many windows in Blender for the ''SkyTracker'' (aks Virtual Night Sky) model development. A final rendered model of the Solar System with a real night sky image as the background will be added soon. }}] ^ [{{ topics:skytracker_fullwindow.png?0x500&nolink | ** A Full-Screen view of the SkyTracker Blender window ** A full window screenshot taken during the development of the SkyTracker Blender Model. 3D-viewport, Script editor, (object) Properties window, Scene, ViewLayer, and Console are displayed. }}] ^ ===== General Description of the Simulation ===== To create a model of virtual night sky, we need to be able to (1) project various celestial coordinate systems (equatorial, horizontal, etc.), (2) display real astronomical images of the night sky, (3) add various solar system objects including planets, moons, and other smaller bodies (e.g, comets, asteroids). Within the scope of Astro-3D STEMin3D project, we want to create a virtual sky model with the first two (projecting coordinate systems and real deepsky images). Then, the created virtual sky is to be controlled by a Python interface from which we can change parameters such as observation time, observer's location, viewing direction, atmospheric effects, toggle landscape images, etc. In general, celestial objects in the night sky appear to be projected on the surface of an infinite radius sphere, called the Celestial Sphere. Positions on the Celestial Sphere can be uniquely defined with two angles where two angles vary based on the choice of a particular coordinate system. Commonly used coordinate systems are Horizontal, Equatorial, Ecliptic, and Galactic. This simulation can describe the basics of various celestial coordinate systems and the benefits of using a particular system for a given situation. ~~ =========================================================== ~~ ~~ Important/key tasks to be completed for this simulation ~~ Important pending tasks (or notes/ideas) to complete. * Project deepsky images as the background image <= relevant images can be downloaded from GSFC Deep Star Maps [[https://svs.gsfc.nasa.gov/4851/]] * Add a capability (toggle?) to display the coordinate grids (equatorial coordinate grid first; then Alz/Az grid) * Add a capability to display constellation art images (toggle; [1] constellation shapes, [2] constellation boundaries, [3] constellation arts images) * Add a User Interface to rotate/zoom night sky with mouse button/wheel * Add a toggleable horizon landscape * Add a toggleable atmosphere effect (use Unity's Skybox?) * Create a map of Hevelius constellation art map using individual constellation art images: download them from [[https://www.wilmslowastro.com/software/downloads/hevelius-v11.zip|here]]. * Add a toggleable constellation art map * Add a Python control interface to rotate the sky for given observer location and date/time * Render a model into (1) a WebGL and/or (2) a VR headset ~~ =========================================================== ~~ ~~ Technical Aspects of the simulation: prerequisites, products, etc. ~~ === Prerequisites === These are technical prerequisites (3D model components) to create this simulation. * None. This is a fundamental platform that can be used as a base for other simulations. === Newly created components from this simulation === These are newly created components (functions, materials, cameras, etc.) from this topic simulation. * Celestial sphere environment where objects can be added. * Coordinate systems (horizontal and equatorial) that can be toggled for display * Togglable horizon (i.e., horizon landscape image) * Displayable (and togglable) constellation shapes (polygons not images) * Python interface As of early 2024, Michael Cai has finished developing the preliminary version of the platform in Blender. Its source codes and a tutorial are stored in the project team's [[https://github.com/STEMin3D/STEMin3D/tree/main/Scripts/SkyTracker|SkyTracker]] (login required to access). For the high precision, physically-based night sky image synthesis including various light sources such as sunlight, moonlight, zodiacal light, airglow, etc., see {{ :topics:nightsky_jensen_et_al.pdf |this paper}} by Jensen et al. ~~ =========================================================== ~~ ~~ Astronomical/Astrophysical Concepts ~~ These are underlying astronomical concepts to teach with this simulated topic. * Celestial Sphere * Locating an object on the celestial sphere * Understand various celestial coordinate systems * Location of an observer and a visible sky * Observable objects/hemisphere -> relationship b/w the celestial horizon and the equatorial plane * Motion of the Celestial Sphere due to Earth's rotation and orbital motion These videos show the changing celestial sphere due to Earth's rotation. The second video shows a moving camera orbiting around the Earth.\\ {{topics:0001-0240.mp4}}{{topics:earth_in_starrybackground.mp4}} ~~ =========================================================== ~~ ~~ Scenes created in the simulation ~~ [[:astro-3d|Go back to the list of topics.]]