
Inspiration
I have always wanted to build my own space simulator. I love the scale and ambition of tools such as SpaceEngine, but I often find them overwhelming, difficult to verify, and a little raw as a learning experience.
I wanted something scientifically careful and beautiful, because exploring space should feel mesmerizing without hiding where the information comes from or pretending that every visual detail is directly observed.
That became the central idea behind SpaceSim: make the universe approachable for students, teachers, and curious learners, while showing the evidence and limitations behind every representation.
What it does
SpaceSim is a free, browser-based universe simulator that helps astronomy learners understand scale, time, motion, and scientific uncertainty by letting them manipulate a sourced universe and inspect how each view was produced.
You can explore the Solar System, including the Sun, Earth, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, and Neptune.
For a guided starting point, I built a Grand Tour of the Solar System that begins at the Sun and visits every planet in sequence. Narration starts automatically at each destination, with a complete on-screen transcript, live audio progress, clickable tour stops, and automatic travel two seconds after narration ends. The interface becomes minimal when inactive so the universe remains the focus, while Previous, Pause or Replay, Next, Restart, and Exit keep the experience interruptible.
The planets use sourced positions, radii, orientation models, and a shared UTC clock. Learners can change the date, time, and simulation speed, compare physical scale with an explicitly labelled Diagram mode, move from a close planet view to the enormous scale of the Solar System, and inspect the source and limitations behind the visible state.
The ISS observer uses a pinned NASA trajectory product. It is clearly described as a centre-of-mass observer with missing attitude data, not as a claimed astronaut window view.
I also built an experimental stellar laboratory covering normal stars, giants, brown dwarfs, white dwarfs, neutron stars, binary systems, pulsars, and rotating black holes. The long-term goal is to use catalog properties as inputs for transparent procedural representations of known stellar objects.
To make learning feel inviting, every Solar System destination has optional narration, its own original soundtrack, and a collectible 3D postcard. The homepage uses a retro-futuristic travel-catalog style that makes the first interaction feel like choosing a journey rather than opening a technical instrument.
A five-minute learning journey
A student or teacher can use SpaceSim without creating an account:
- Open the Solar System and compare True scale with Diagram mode.
- Change UTC and simulation speed to see how position, phase, and lighting respond.
- Travel to Earth or the Moon and open Settings to read the source and limitations behind the view.
- Return to the Atlas, select a body, and inspect its UTC state and source-linked scientific receipt.
- Decide which parts are observed or source-backed and which are representative, reconstructed, procedural, or experimental.
The learning outcomes are concrete: compare physical and diagrammatic scale, connect time with celestial motion and illumination, distinguish evidence from visual reconstruction, and learn to ask what source and limitations sit behind a scientific image.
How I built it
I opened Codex in a new folder on July 13 and asked GPT-5.6 Sol to begin with research rather than code. The starting goal was simple but ambitious: study how a realistic browser-based space simulator could work, identify primary scientific sources, decide what could be represented honestly in real time, create visual mockups, and turn the work into a staged roadmap.
My exact starting prompt was:
We want to create the most realistic possible space simulator that runs in the browser.
Our goal is to have something as realistic as SpaceEngine https://spaceengine.org/ but very optimized to run in the browser. Everything needs to be as realistic as possible, mapping all known space objects with their realistic style, size, distance, etc...
Interace should however be very minimalistic and have smooth travel transitions.
We also want to have trajectories simulations with speed control.
For example, simulate view from space station, or from Artemis mission around the moon.
We want to also have a big atlas of all known object in the universe, where we can search and easily travel to with smooth transition (no cut) as desired speed.
We also want a VR mode. Ideally, this would be collaborative and allow people to share positions of interesting objects. This should be fun, but also scientific.
First start to study how spaceengine was made.
Then all sources we can use to build the most accurate space simulator ever.
Then research the best possible technical implementation.
Then use GPT Image Pro to make some mockups.
This is the study phase, do not write any code, just do some research, prepare the repo with readme and documentaion, and roadmap. Each stage of roadmap must work on itself so we can quickly build an mvp"
This prompt established the research-first process, the scientific ambition, the browser constraint, the visual direction, and the staged roadmap that guided the build.
That initial prompt was intentionally broader than the Build Week submission. Research led me to narrow the shipped scope to a source-backed Solar System, an ISS observer, and an explicitly experimental stellar laboratory. VR, collaboration, an Artemis mission simulation, and a complete atlas of known objects remain roadmap goals. The most important change was replacing "everything realistic" with explicit labels for what is source-backed, representative, reconstructed, procedural, or experimental.
After discussing scope and technical boundaries, I asked for a convincing interactive Earth-from-space proof of concept. I then iterated outward from Earth to the Moon, the Solar System, the ISS, the travel homepage, narration, postcards, and the experimental stellar laboratory.
SpaceSim is built with TypeScript, Vite, and Three.js. It uses WebGPU where supported and falls back to WebGL 2. Planet and Moon states come from pinned NASA JPL and NAIF products. Other scientific inputs include NASA ISS data, IERS and SOFA Earth orientation, Gaia, SIMBAD, ATNF, VizieR, Gaia XP, 2MASS, and cited scientific papers.
The submitted repository contains more than 240 Build Week-period commits, more than 120 test files, 72 documentation files, independent scientific validators, and retained desktop and throttled-mobile performance evidence.
How I used Codex and GPT-5.6
I used Codex with GPT-5.6 Sol as an active research and engineering partner throughout the build:
- Research: locate and compare primary scientific sources before implementation.
- Architecture: separate authoritative scientific state from renderer-friendly camera state and define explicit truth boundaries.
- Implementation: build the TypeScript, Three.js, WebGPU, WebGL, navigation, search, audio, postcard, and provenance systems.
- Scientific validation: create independent TypeScript, Rust, direct CSPICE C, and SOFA checks instead of validating the implementation only against itself.
- Testing: build unit, semantic, accessibility, production, performance, cache, and scientific-state gates.
- Visual iteration: compare fixed-camera screenshots and correct instability, seams, blur, scale, framing, and misleading presentation.
- Browser feedback loop: use Codex's built-in browser to run the real site, interact with it, inspect rendering and browser errors, and test desktop and mobile-sized views immediately after changes.
I had tried earlier models on parts of this idea, but they struggled to preserve a coherent visual style and repeatedly lost correct 3D positioning, scale, and camera relationships. GPT-5.6 Sol was the first model that maintained the scientific, architectural, visual, and performance constraints across the evolving product. It was the first time the project really clicked.
I remained responsible for the product direction, source selection, scientific claims, scope, performance budgets, and final acceptance decisions.
Key decisions
Three decisions shaped the result:
- Keep scientific state separate from visual presentation. True scale is physical, while Diagram mode is explicitly a nonlinear presentation transform.
- Preserve source, epoch, reference frame, units, quality, and limitations so learners can inspect how a view was produced.
- Keep heavy experimental stellar features separate from the ordinary Solar System path so the main experience stays fast.
This is also the main difference from existing universe simulators. SpaceSim treats provenance and representational limits as visible product features, then combines them with an approachable travel experience.
Generated media
I created all original SpaceSim brand, postcard, destination, thumbnail, and promotional illustrations with GPT Image Pro. These images are labelled and kept separate from source-backed celestial rendering.
I used GPT-5.6 to help write the educational narration, which I produced with ElevenLabs. I also used it to develop prompts for 21 original destination soundtracks, which I generated with Suno 5.5 while I had an active Pro subscription. The music is optional atmosphere and never presented as sound travelling through space.
Challenges
The hardest challenge was balancing scientific care, beautiful graphics, and browser performance.
A physically meaningful Solar System contains extreme differences in distance and size. Smooth travel can easily conflict with truthful scale. Detailed rendering can make mobile devices struggle. Scientific inputs also come with different epochs, coordinate frames, uncertainties, and usage terms.
I handled this by keeping authoritative state independent from rendering, disclosing every visual transform, loading heavy features only when requested, and measuring readiness, transfer size, frame-time percentiles, long tasks, errors, and visual regressions instead of reporting only average frame rate.
Accomplishments
I built one connected experience rather than a collection of separate demos. SpaceSim includes ten close Solar System worlds, a narrated Grand Tour, a true-scale 3D atlas, continuous travel between destinations, shared UTC controls, an ISS observer, visible scientific receipts, an experimental stellar laboratory, narration, original soundtracks, and collectible postcards.
I am especially proud that the product does not use scientific language as decoration. When a view is representative, reconstructed, procedural, experimental, or missing important information, SpaceSim says so.
What I learned
A trustworthy simulator needs to explain both what it knows and how it is showing that knowledge. Sources and uncertainty should be product features, not hidden footnotes.
I also learned that the best performance optimization is often to avoid unnecessary work. SpaceSim does not load or render an expensive feature until someone chooses to visit it, and visual optimizations are checked against their intended scientific meaning.
What's next
Next I want to add more catalog-backed stars and more guided classroom journeys. One journey could compare stellar evolution paths, and another could let learners follow a mission timeline while inspecting the difference between measured trajectory data and visual presentation.
The long-term goal is not to claim that every object is already mapped. It is to build an honest, extensible universe explorer where coverage, evidence, uncertainty, and visual reconstruction remain visible as the catalog grows.
Built With
- codex
- gaia
- gpt
- jpl
- nasa
- openai
- simbad
- three.js
- typescript
- vite
- vitest
- webgl
- webgpu
Log in or sign up for Devpost to join the conversation.