Earthmoon: An Interactive Lunar World in the Browser
A live browser experience that connects spacecraft selection, lunar flight, and an on-foot Earth overlook.
Interactive 3D & Web Engineering
2026 · Live project
Game & Web Developer


The business problem
Bring a spatial experience into a browser while keeping flight, camera behavior, asset loading, and clear controls connected. The world needs to remain understandable as visitors move between a spacecraft and an on-foot lunar overlook.
Approach
- 01
Build on Three.js and TypeScript with distinct systems for the environment, vehicles, camera, and interaction.
- 02
Use a spacecraft selection screen as a clear entry point and provide a separate Moonwalk mode.
- 03
Combine authored world systems with documented image sources and licensed asset kits.
What I built and changed
A Browser Flight Experience
The repository documents a single-player lunar flight campaign with settlements, survey sites, rescue and reactor-defense stages.
- Provide three selectable spacecraft variants with different handling parameters.
- Separate flight and combat behavior from environment presentation.
A Second Way to Explore
Moonwalk offers an on-foot Earth overlook with walking, running, hopping, and a controllable camera.
- Load the astronaut on entry to Moonwalk instead of including it in the initial experience.
- Keep return-to-flight and overlook controls directly accessible.
An Earth Seen From the Moon
The project records NASA-derived Earth day/night maps and lunar imagery, with smaller Earth textures for constrained devices.
- Keep source and credit records alongside the textures.
- Use separate environment systems for Earth, lunar terrain, and the procedural sky.
Business results
Published Earthmoon as a live browser experience at earthmoon.site; the launch screen and spacecraft selector were observed on September 7, 2026.
Connected spacecraft selection, a documented lunar flight campaign, and an on-foot exploration mode in one project.
Kept the implementation in a TypeScript, Three.js, and Vite codebase with dedicated verification scripts and documented assets.
What the work proved
A navigable world needs more than scenery: its camera, controls, modes, and loading behavior must form a coherent experience. These statements describe the repository and observed build; they do not assert audience metrics, independent performance measurements, or a completed production QA pass.