SpaceEngine is a free space simulation program and game engine developed by Russian astronomer and programmer Vladimir Romanyuk.
The program allows players to explore the universe in three dimensions, from planet Earth to the most distant galaxies. Areas of the known universe are represented using actual astronomical data, while regions uncharted by astronomy are generated procedurally.
- All types of celestial objects are represented: galaxies, nebulae, stars and star clusters, planets and moons, comets and asteroids.
- Known celestial objects are represented using data from the catalogs: galaxies (NGC/IC), stars (HIPPARCOS), star clusters, nebulae, planets (our Solar system data and known extrasolar planets).
- Uncharted regions of space feature procedurally generated objects: galaxies, stars, star clusters, nebulae and planetary systems.
- The observer is free to move around the universe. Transition between any celestial body and any scale occurs seamlessly.
- The observer can move around in space using the WASD keys, like in First Person Shooters. Movement with inertia is made possible in Spacecraft mode or Aircraft mode.
- "Select and fly" autopilot: just click on any object with the mouse and hit the 'G' key to automatically go directly to the object.
- Automatic binding of the observer to a moving object and automatic selection of optimum flight speed.
- Search for celestial objects by name. Search for stars in the viscinity. Scalable map of the Universe and a planetary system browser. Saving locations and autopilot's journal.
- Built-in wiki system with descriptions of many known objects and ability to extend by user. Possibility of renaming and describing of any object, including procedural ones.
- The orbital motion of planets and stars is calculated in real time, with the ability to accelerate, decelerate, or reverse the flow of time.
- Display of orbital paths of celestial objects, their rotation and motion vectors, labels and markers, celestial grid, current selection pointer and user velocity vector.
- Volumetric 3D models of galaxies and nebulae with interstellar dust clouds.
- 3D landscapes of planets and stars: for many solar system bodies actual data from space probes is used; for uncharted and procedural planets the surface is generated procedurally on the GPU.
- The exact model of the Earth's atmosphere (code by Eric Bruneton), adapted for the other planets.
- Lighting effects: lens flares, solar eclipses, shadows of planetary rings. Celestial objects cast light and shadows onto each other.
- Controllable space ships (alpha).
- Original background music with context-dependent switching of tracks.
- Localization to many languages, with the ability to add new ones.
- Ability to import user addons: models, textures, catalogs.
Development of SpaceEngine began in 2005, with first public release in June 2010. The program is currently is beta.
The software is written in C++. The engine uses OpenGL as its graphical API and uses shaders written in GLSL.