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.
# 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- 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)
- 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\binal PATH del sistema
- Agregar
-
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
- 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
- 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
Fase actual: Desarrollo incremental en progreso
- Estructura base del proyecto
- Configuración completa del entorno de desarrollo
- Sistema de ventana con GLFW
- Inicialización de OpenGL 3.3+
- 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
cmake -B build -S . -G "MinGW Makefiles" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build buildcmake -B build -S . -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build build./build/simulation.exe./build/simulationEl 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 buildrm -rf build
cmake -B build -S .
cmake --build buildEste proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.