Skip to content

freyzo/Solar-System-Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solar System Simulator

Interactive 3D solar system visualization with OpenGL, featuring planetary orbits, textures, and real-time animation.

Preview

Solar System Simulator

Why This Project

I built this solar system simulator to explore computer graphics concepts and create an educational visualization of our solar system.
Goal: demonstrate OpenGL programming techniques including 3D transformations, texture mapping, and animation.

Context:

  • Computer graphics education often lacks interactive, visually engaging examples
  • Solar systems provide perfect subject matter for demonstrating orbital mechanics and 3D rendering
  • OpenGL remains fundamental for understanding modern graphics programming

Standout Features

  • Real-time planetary orbital animation with accurate relative speeds
  • Texture-mapped planets using BMP images for realistic appearance
  • Interactive camera controls (rotation, scaling) with mouse input
  • Dynamic lighting system with configurable light sources
  • Wireframe orbital paths for visualizing planetary trajectories
  • Support for multiple view modes (outside/inside perspective)
  • Animated helicopter blades demonstrating rotation transformations

Tech Stack

  • C++ with OpenGL/GLUT
  • FreeGLUT for window management and input handling
  • GLEW for OpenGL extension management
  • Custom texture loading for BMP images
  • 3D model loading from OBJ files
  • GLSL shader support (included but not actively used)

Architecture (Essential)

src/
├── sample.cpp                        # main application and display logic
├── drawHouse()                       # house rendering function (currently disabled)
├── Display()                         # main rendering loop
├── Animate()                         # animation update logic
└── supporting files/
    ├── bmptotexture.cpp              # BMP texture loading
    ├── loadobjfile.cpp               # OBJ 3D model loading
    ├── osusphere.cpp                 # sphere generation utilities
    └── heli.550                      # helicopter 3D model data

Quick Run

make
./sample

Controls

  • Left Mouse Button: Rotate the view
  • Middle Mouse Button: Scale the view
  • Right Mouse Button: Access context menu for options
  • ESC: Exit the application

Menu Options

  • Toggle axes display
  • Change axis colors
  • Switch between orthographic/perspective projection
  • Enable/disable depth cueing and fog effects
  • Debug mode toggle
  • Reset view and quit options

Contact

For questions or collaboration opportunities, please visit: https://www.freyazou.com/contact/

About

Interactive 3D solar system visualization with OpenGL, featuring planetary orbits, textures, and real-time animation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors