Skip to content

Latest commit

 

History

History
171 lines (125 loc) · 3.85 KB

File metadata and controls

171 lines (125 loc) · 3.85 KB

Motor de Simulación 3D con Renderizado

Motor híbrido en C++20 que combina simulación de universo discreto con renderizado 3D en tiempo real usando OpenGL. Modela un universo simplificado basado en reglas locales deterministas y lo visualiza en 3D.

Inicio Rápido

# 1. Clonar el repositorio
git clone https://github.com/Stivenjs/simulation.git
cd simulation

# 2. Compilar (Windows con MinGW)
cmake -B build -S . -G "MinGW Makefiles"
cmake --build build

# 2. Compilar (Linux/macOS)
cmake -B build -S .
cmake --build build

# 3. Ejecutar
./build/simulation.exe  # Windows
./build/simulation      # Linux/macOS

Características

  • Simulación discreta 3D con estados configurables por celda
  • Renderizado 3D en tiempo real con OpenGL 3.3+
  • Evolución determinista basada en reglas locales (autómatas celulares)
  • Arquitectura modular con separación entre simulación y renderizado
  • C++20 moderno con verificación estricta de lints
  • Multiplataforma (Windows, Linux, macOS)

Requisitos

Herramientas Necesarias

Windows

  • CMake 3.20+ - Descargar
  • MinGW-w64 (GCC 11+) via MSYS2 - Descargar
    # Después de instalar MSYS2, ejecutar en terminal MSYS2 UCRT64:
    pacman -S mingw-w64-ucrt-x86_64-gcc
    pacman -S mingw-w64-ucrt-x86_64-gdb
    pacman -S mingw-w64-ucrt-x86_64-make
    pacman -S mingw-w64-ucrt-x86_64-glfw
    pacman -S mingw-w64-ucrt-x86_64-glew
    pacman -S mingw-w64-ucrt-x86_64-glm
    • Agregar C:\msys64\ucrt64\bin al PATH del sistema

Linux

  • CMake 3.20+

    sudo apt install cmake  # Debian/Ubuntu
    sudo dnf install cmake  # Fedora
  • GCC 11+ o Clang 12+

    sudo apt install build-essential  # Debian/Ubuntu
    sudo dnf install gcc-c++          # Fedora
  • Librerías OpenGL/GLFW

    # Debian/Ubuntu
    sudo apt install libglfw3-dev libglew-dev libglm-dev
    
    # Fedora
    sudo dnf install glfw-devel glew-devel glm-devel
    
    # Nota: ImGui se descarga automáticamente con CMake FetchContent

macOS

  • CMake 3.20+
    brew install cmake
  • Clang (viene con Xcode Command Line Tools)
    xcode-select --install
  • Librerías OpenGL/GLFW
    brew install glfw glew glm

Extensiones para Cursor/VSCode (Recomendadas)

  • Clangd (llvm-vs-code-extensions.vscode-clangd) - IntelliSense y análisis de código
  • CMake Tools (ms-vscode.cmake-tools) - Integración con CMake
  • CMake Language (twxs.cmake) - Sintaxis de CMakeLists.txt

Estado del Proyecto

Fase actual: Desarrollo incremental en progreso

Completado

  • Estructura base del proyecto
  • Configuración completa del entorno de desarrollo
  • Sistema de ventana con GLFW
  • Inicialización de OpenGL 3.3+

En desarrollo

  • Renderizado básico (triángulo, cubo)
  • Core: Cell y Grid 2D
  • Visualización de Grid 2D en 3D
  • Extensión a Grid 3D
  • Cámara orbital
  • Reglas de simulación

Compilación

Configuración Inicial

Windows (MinGW)

cmake -B build -S . -G "MinGW Makefiles" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build build

Linux/macOS

cmake -B build -S . -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build build

Ejecución

Windows

./build/simulation.exe

Linux/macOS

./build/simulation

Compilación con Flags Estrictos

El proyecto está configurado con flags estrictos: -Wall -Wextra -Wpedantic

Para compilar con -Werror (tratar warnings como errores):

cmake -B build -S . -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wpedantic -Werror"
cmake --build build

Limpiar y Recompilar

rm -rf build
cmake -B build -S .
cmake --build build

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.