How goliasjr2/sistema_solar works
This is a Python/OpenGL 3D astronomy simulator. The main user workflow starts in the simulator: users navigate and select celestial objects, control simulated time and scale, and view the solar system and wider cosmic phenomena. A separate educational workflow presents planet-specific lessons through a virtual guide with speech, lip-sync, and animation. The graph covers the documented feature branches and the rendering layer; some subsystem links rely on the README or source index because their implementations were not excerpted.
Main entry points: main.py Simulator app · model_loader.py Model loading · guide_controller.py Guide controller · planets.py Planets and moons
Components 30
Simulation and navigation
- Simulator app
main.py - Camera controls
camera.py - Object picking
picking.py - Scale transitions
scale_manager.py - Help and data UI
ui.py
Cosmic objects
- Planets and moons
planets.py - Orbital paths
orbits.py - Asteroid belt
asteroids.py - Comets
comet.py - Meteor showers
meteors.py - Artificial satellites
satellites.py - Star field
starfield.py - Spiral galaxy
galaxy.py - Black holes
blackhole.py
Educational guide
- Virtual guide facade
guide/virtual_guide.py - Guide controller
guide/guide_controller.py - Lesson manager
educational/lesson_manager.py - Planet lesson content
educational/planet_content.py - Earth lesson content
educational/earth_content.py - Speech synthesis
speech/text_to_speech.py - Audio playback
speech/audio_player.py - Lip sync
speech/lip_sync.py - Body animation
guide/guide_animation.py - Facial animation
guide/facial_animation.py - Guide renderer
guide/guide_renderer.py
Rendering foundations
- Mesh rendering
mesh.py - Model loading
model_loader.py - Shader management
shader.py - Texture management
texture.py
Other components
- Simulator user
Connections 48
- Simulator user → Simulator app: controls
- Simulator app → Camera controls: updates
main.py - Simulator app → Object picking: routes picking
main.py - Simulator app → Scale transitions: sets scale
main.py - Simulator app → Help and data UI: updates display
main.py - Simulator app → Planets and moons: manages system
main.py - Simulator app → Asteroid belt: manages belt
main.py - Simulator app → Comets: manages comets
main.py - Simulator app → Meteor showers: manages showers
main.py - Simulator app → Artificial satellites: manages satellites
main.py - Simulator app → Star field: toggles stars
main.py - Simulator app → Spiral galaxy: toggles galaxy
main.py - Simulator app → Black holes: manages encounters
main.py - Simulator app → Virtual guide facade: opens guide
main.py - Scale transitions → Camera controls: transitions camera
scale_manager.py - Scale transitions → Spiral galaxy: sets galaxy scale
scale_manager.py - Planets and moons → Orbital paths: uses paths
planets.py - Planets and moons → Mesh rendering: uses meshes
planets.py - Planets and moons → Model loading: loads models
planets.py - Planets and moons → Texture management: uses textures
planets.py - Planets and moons → Shader management: uses shaders
planets.py - Asteroid belt → Model loading: loads models
asteroids.py - Asteroid belt → Shader management: uses shaders
asteroids.py - Comets → Orbital paths: uses paths
comet.py - Comets → Mesh rendering: uses meshes
comet.py - Comets → Model loading: loads models
comet.py - Meteor showers → Model loading: loads models
meteors.py - Artificial satellites → Model loading: loads models
satellites.py - Star field → Shader management: uses shaders
starfield.py - Spiral galaxy → Model loading: loads models
galaxy.py - Spiral galaxy → Shader management: uses shaders
galaxy.py - Black holes → Model loading: loads models
blackhole.py - Black holes → Shader management: uses shaders
blackhole.py - Virtual guide facade → Guide controller: delegates to
guide/virtual_guide.py - Virtual guide facade → Guide renderer: renders with
guide/virtual_guide.py - Guide controller → Lesson manager: advances lesson
guide/guide_controller.py - Guide controller → Speech synthesis: synthesizes speech
guide/guide_controller.py - Guide controller → Audio playback: plays speech
guide/guide_controller.py - Guide controller → Lip sync: updates visemes
guide/guide_controller.py - Guide controller → Body animation: updates motion
guide/guide_controller.py - Guide controller → Facial animation: updates expression
guide/guide_controller.py - Lesson manager → Planet lesson content: selects lessons
educational/lesson_manager.py - Lesson manager → Earth lesson content: uses fallback
educational/lesson_manager.py - Facial animation → Lip sync: consumes visemes
guide/facial_animation.py - Guide renderer → Model loading: loads model
guide/guide_renderer.py - Guide renderer → Texture management: binds textures
guide/guide_renderer.py - Guide renderer → Shader management: uses shader
guide/guide_renderer.py - Model loading → Texture management: uses textures
model_loader.py