Skip to content

SapienzaInteractiveGraphicsCourse/final-project-LunarAtlas

Repository files navigation

Lunar Atlas

Lunar Atlas is an interactive 3D atlas of the moon developed with Three.js and WebGL.

The scene renders a textured, displacement-mapped sphere representing the Moon, surrounded by a starfield, an orbiting Earth and the Sun. Over a hundred real lunar features are plotted onto the sphere and rendered as floating on-screen labels that stay locked to the lunar surface as the camera moves, fading out when they rotate onto the far side.

Clicking any label opens a details panel that gives the user real information about the feature they selected.

A Satellite camera instead tracks a real spacecraft model orbiting the Moon; the player can cycle through a small catalogue of spacecraft (Lunar Gateway, Lunar Reconnaissance Orbiter, Apollo Lunar Module) and, for the Gateway, manually operate a five-joint robotic arm with the keyboard.

The user can explore the moon surface, identify craters, maria, mountain ranges and Apollo landing sites, and interact with the orbiting spacecrafts.

description


Live Demo

https://sapienzainteractivegraphicscourse.github.io/final-project-LunarAtlas/


Features

  • Interactive 3D model of the Moon with real elevation and color mapping
  • Two switchable cameras: a free-orbiting "Navigator" camera and a "Spacecraft" camera that tracks an orbiting space station
  • Real-time latitude/longitude readout and nearest-feature detection
  • Database of real lunar features: craters, maria, mountain ranges, valleys and Apollo landing sites
  • Clickable on-screen labels for every visible feature
  • Feature info panel with live Wikipedia summaries and Wikimedia Commons imagery
  • Choose between 3 different spacecrafts when you switch to satellite view
  • Read the description of the spacecrafts and inspect them by rotating the view
  • Controllable robotic arms and sun-oriented solar panels on the Lunar Gateway spacecraft
  • Physically based lighting with sunlight, earthshine and shadows
  • Starfield, Earth and Sun rendered in the background

Technologies Used

  • JavaScript
  • Three.js
  • WebGL
  • Vite
  • HTML
  • CSS

Main Interactions

The user can:

  • drag to rotate the camera around the Moon;
  • scroll to zoom in and out;
  • press C to switch between the Navigator camera and the Spacecraft camera;
  • click any feature label to view its name, description and real photos;
  • read the live latitude/longitude and nearest-feature name from the HUD;
  • control the Lunar Gateway robotic arms using Q/A, W/S, E/D, R/F and T/G;
  • inspect the spacecrafts and their animations

About

final-project-riccardoaquilanti created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages