AETHERIA es un entorno de simulación e investigación para estudiar la emergencia de complejidad en autómatas celulares cuánticos (QCA). El sistema utiliza un modelo de Deep Learning, denominado "Ley M", para gobernar la evolución del estado cuántico mediante la Ecuación Maestra de Lindblad.
Este proyecto es una aplicación web interactiva con un backend de aiohttp y un frontend de React, permitiendo el entrenamiento de modelos en GPU y la visualización de simulaciones en tiempo real.
- Autómatas Celulares Cuánticos (QCA): Simulación 2D de sistemas cuánticos en cuadrículas
- Ecuación Maestra de Lindblad: Implementación completa con evolución unitaria y términos disipativos
- Múltiples Arquitecturas de Modelos: U-Net, U-Net Unitaria, MLP, DEEP_QCA, SNN_UNET
- Motores de Simulación: Motor Python (PyTorch) y Motor Nativo C++ (LibTorch) para máximo rendimiento
- Optimizaciones de Rendimiento: Live feed opcional, frame skipping, control de FPS, lazy conversion, ROI-based rendering
- Básicas: Densidad (
|ψ|²), Fase, Energía, Parte Real/Imaginaria - Análisis: Entropía, Coherencia, Actividad de Canales, Mapa de Física
- Flujo: Campo vectorial
delta_psicon visualización y estadísticas - Atractores: Atractor de Fase, Visualización Poincaré (2D y 3D)
- Evolución Temporal 3D: Stacking de frames 2D a lo largo del eje temporal
- Espacio Complejo 3D: Visualización Real vs Imaginario vs Tiempo
- Poincaré 3D: Proyección esférica con renderizado de alta calidad
- t-SNE: Atlas del Universo y Química Celular
- Histogramas: Distribución estadística de valores
- Overlays: Grid, coordenadas, Quadtree, estadísticas en tiempo real
- Checkpointing: Guardado automático de pesos y estados del optimizador
- Transfer Learning: Continuar entrenamiento desde checkpoints
- Historia de Simulación: Guardar y cargar frames completos para análisis posterior
- Notas y Metadatos: Anotaciones asociadas a checkpoints
- Rendimiento: Hasta ~10,000 steps/segundo con motor nativo C++
- Lazy Conversion: Conversión sparse→dense solo cuando se necesita
- ROI Support: Renderizado basado en Region of Interest para eficiencia
- Compilado: Motor C++ con PyBind11 para integración perfecta con Python
- Live Feed Activo: Calcula y envía visualizaciones en tiempo real
- Live Feed Desactivado: Solo evoluciona la física sin calcular visualizaciones
- Modo Manual:
steps_interval = 0permite control manual de actualizaciones - Beneficio: Permite simulaciones más rápidas para experimentos largos sin visualización
- MessagePack Binario: Frames de visualización en formato binario eficiente (3-5x más compacto que JSON)
- JSON para Comandos: Solo comandos y metadatos usan JSON (pequeños y rápidos)
- Separación Clara: Datos grandes en binario, comandos en JSON
- Grid: Líneas de cuadrícula configurables
- Coordenadas: Referencias espaciales
- Quadtree: Visualización de estructura de compresión
- Estadísticas: Min/Max/Promedio, tamaño de grilla, zoom
- Zoom Limitado: Mantiene la grilla siempre visible
- Reset de Vista: Botón para recuperar la vista inicial
- Pan Constreñido: Previene perder la vista de la simulación
La documentación completa está disponible en el directorio docs/. Este es un vault de Obsidian para navegación avanzada y RAG (Retrieval Augmented Generation).
- Guía de Aprendizaje Progresivo: Aprende desde lo básico hasta experimentos avanzados
- Guía de Experimentación: Estrategias y mejores prácticas
- Pruebas por Visualización: Cómo probar e interpretar cada visualización
- CLI Tool: Uso del CLI
atheriapara desarrollo - Motor Nativo C++: Arquitectura y optimizaciones del motor nativo
- Protocolo WebSocket: Protocolo binario (MessagePack) vs JSON
- Sistema de Historia: Guardar y analizar simulaciones completas
- Quadtree Binario: Estructuras de datos eficientes para 2D
- Octree Binario: Estructuras de datos para 3D
- Sistema TimeTree: Almacenamiento eficiente de historia temporal
- Python 3.10+
- Node.js 18+ y npm
- CUDA-capable GPU (opcional pero recomendado)
-
Backend:
python3 -m venv ath_venv source ath_venv/bin/activate # En Windows: ath_venv\Scripts\activate pip install -r requirements.txt python3 setup.py build_ext --inplace # Compilar extensiones C++ pip install -e . # Instalar en modo desarrollo (habilita CLI)
-
Frontend:
cd frontend npm install npm run build cd ..
El CLI atheria (alias ath) simplifica el flujo de desarrollo:
source ath_venv/bin/activate # En Windows: ath_venv\Scripts\activate
# Modo desarrollo completo (Build + Install + Run)
atheria dev # Sin frontend (solo WebSocket API)
atheria dev --frontend # Con frontend estático
atheria dev --port 8080 # Puerto personalizado
# Comandos individuales
atheria build # Solo compilar extensiones C++
atheria install # Solo instalar paquete
atheria run --frontend # Solo ejecutar servidor
atheria clean # Limpiar archivos de buildNota: El CLI está disponible después de pip install -e . (ver instalación).
source ath_venv/bin/activate # En Windows: ath_venv\Scripts\activate
export AETHERIA_ENV=development # En Windows: set AETHERIA_ENV=development
python3 run_server.py # En Windows: python run_server.py
# Solo WebSocket API (sin frontend)
ATHERIA_NO_FRONTEND=1 python3 run_server.py
# Puerto personalizado
python3 run_server.py --port 8080La aplicación estará disponible en http://localhost:8000 (o el puerto especificado).
atheria --help
atheria dev --help- En la pestaña Laboratorio, haz clic en Nuevo Experimento
- Configura los parámetros del modelo (d_state, hidden_channels, etc.)
- Selecciona la arquitectura (U-Net, U-Net Unitaria, etc.)
- Haz clic en Crear y Entrenar
- En la pestaña Gestión de Experimentos, selecciona un experimento
- Haz clic en Cargar Modelo para Inferencia
- La simulación comenzará automáticamente (en pausa)
- Usa el dropdown Mapa de Visualización para cambiar entre visualizaciones
- Activa Modo Live Feed para visualización en tiempo real
- Usa los controles de zoom y pan en el canvas
- Activa overlays desde el botón de configuración (⚙️)
- En Controles Avanzados, activa Habilitar Historia
- Ejecuta la simulación
- Cuando termines, haz clic en Guardar Historia
- Ve a la pestaña Historia para cargar y reproducir la simulación guardada
density: Densidad cuántica|ψ|²phase: Fase del estado cuánticoenergy: Energía localreal: Parte realimag: Parte imaginaria
entropy: Entropía local (complejidad/información)coherence: Coherencia de fase entre vecinoschannel_activity: Actividad por canal cuánticophysics: Mapa de la matriz de física aprendida
flow: Campo vectorial de cambio (delta_psi)phase_attractor: Evolución del estado en el espacio de fasespoincare: Visualización Poincaré 2Dpoincare_3d: Visualización Poincaré 3D (proyección esférica)
history_3d: Stacking de frames 2D en el eje temporalcomplex_3d: Real vs Imaginario vs Tiempo
spectral: Análisis espectralgradient: Gradientes espacialesuniverse_atlas: t-SNE de snapshots temporalescell_chemistry: t-SNE del estado actual
- Selección de Motor: Cambia entre Motor Python y Motor Nativo C++ desde el header
- Motor Nativo: Mayor rendimiento (~10,000 steps/segundo), ideal para simulaciones largas
- Motor Python: Más flexible, mejor para experimentación y debugging
- Cambio Dinámico: Puedes cambiar de motor sin reiniciar (requiere recargar modelo)
- Activar/Desactivar: Switch en la pestaña de Visualización
- Modo Manual: Configura
steps_interval = 0para control manual de actualizaciones - Intervalos Grandes: Soporta hasta 1,000,000 pasos entre frames
- Efecto: Cuando está desactivado, la simulación corre más rápido sin calcular visualizaciones
- Uso: Ideal para experimentos largos donde no necesitas ver cada frame
- Velocidad de Simulación: Multiplicador (0.1x - 100x)
- FPS Objetivo: Frames por segundo objetivo (0.1 - 120 FPS)
- Frame Skip: Saltar frames para acelerar (0 = todos, 1 = cada otro, etc.)
- FPS Real: Muestra steps/segundo de simulación y frames/segundo de visualización
- Grid: Tamaño de cuadrícula configurable
- Quadtree: Threshold para visualización de estructura
- Estadísticas: Min/Max/Promedio en tiempo real
- Coordenadas: Referencias espaciales
- Arquitectura estándar convolucional
- Flexible, no garantiza conservación de energía
- Ideal para experimentación general
- Conserva energía por diseño
- Usa matrices antisimétricas
- Más estable para simulaciones largas
- Red densa simple
- Menor capacidad pero más rápida
- Útil para experimentos rápidos
- Arquitectura específica para QCA
- Optimizada para patrones espaciales
- Red neuronal espiking
- Dinámicas temporales más complejas
Atheria/
├── src/ # Backend Python
│ ├── cli.py # CLI tool (atheria/ath)
│ ├── pipelines/
│ │ ├── pipeline_server.py # Servidor principal
│ │ └── pipeline_viz.py # Generación de visualizaciones
│ ├── engines/
│ │ ├── qca_engine.py # Motor Python (PyTorch)
│ │ └── native_engine_wrapper.py # Wrapper para motor C++
│ ├── cpp_core/ # Motor nativo C++ (LibTorch)
│ ├── models/ # Arquitecturas de modelos
│ └── ...
├── frontend/ # Frontend React
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── modules/ # Módulos grandes (Dashboard, etc.)
│ │ ├── hooks/ # Hooks personalizados
│ │ └── context/ # Context API
│ └── ...
└── docs/ # Documentación completa
El CLI simplifica el flujo de desarrollo:
Comandos disponibles:
atheria dev [--frontend]- Build + Install + Run (ciclo completo)atheria build- Compilar extensiones C++atheria install- Instalar paquete en modo desarrolloatheria run [--frontend]- Ejecutar servidoratheria clean- Limpiar archivos de build y caché
Ejemplos:
# Desarrollo rápido (sin frontend)
atheria dev
# Desarrollo con frontend
atheria dev --frontend
# Solo compilar
atheria build
# Limpiar
atheria cleanVer docs/30_Components/CLI_TOOL.md para más detalles.
// Habilitar historia
simulation.enable_history({enabled: true})
// Guardar historia
simulation.save_history({filename: "experimento.json"})
// Capturar snapshot para t-SNE
simulation.capture_snapshot({})
// Configurar FPS
simulation.set_fps({fps: 30})
// Configurar velocidad
simulation.set_speed({speed: 2.0})
// Controlar live feed
simulation.set_live_feed({enabled: true})
// Configurar intervalo de pasos (0 = manual)
simulation.set_steps_interval({steps_interval: 1000})
// Actualización manual de visualización
simulation.update_visualization({})
// Cambiar motor
simulation.switch_engine({engine: "native"}) // o "python"- Entender física básica (QCA, unitariedad, Lindblad)
- Dominar visualizaciones básicas
- Comparar arquitecturas simples
- Dominar todas las visualizaciones
- Usar t-SNE para análisis
- Guardar y analizar historia
- Encontrar mejores parámetros
- Optimizar para tu hardware
- Documentar configuraciones exitosas
- Buscar gliders (estructuras móviles)
- Buscar osciladores
- Buscar replicadores
- Caracterizar estructuras encontradas
Si encuentras errores o tienes sugerencias:
- Documenta tus hallazgos
- Comparte configuraciones exitosas
- Contribuye con mejoras al código
- Ecuación Maestra de Lindblad: Para sistemas cuánticos abiertos
- Autómatas Celulares Cuánticos: Modelado de sistemas cuánticos discretos
- Artificial Life: Búsqueda de emergencia de complejidad
El proyecto usa SemVer (Semantic Versioning) para todas las componentes:
- Aplicación Principal:
src/__version__.py→4.1.0 - Motor Python/Wrapper:
src/engines/__version__.py→4.1.0 - Motor Nativo C++:
src/cpp_core/include/version.h→4.1.0 - Frontend:
frontend/package.json→4.0.2
Las versiones se exponen en la UI del dashboard.
# 1. Activar entorno
source ath_venv/bin/activate
# 2. Desarrollo completo (build + install + run)
atheria dev --frontend
# 3. Solo recompilar después de cambios C++
atheria build
# 4. Limpiar cuando sea necesario
atheria cleanEl motor nativo C++ requiere compilación separada:
# Automático con CLI
atheria build
# Manual
python3 setup.py build_ext --inplace
pip install -e .- Instala el proyecto y activa el CLI:
pip install -e . - Lee la Guía de Aprendizaje Progresivo
- Prueba las visualizaciones según VISUALIZATION_TESTING.md
- Experimenta siguiendo EXPERIMENTATION_GUIDE.md
- Explora el motor nativo para simulaciones de alto rendimiento
- Busca A-Life usando todas las herramientas disponibles
AETHERIA - Explorando la emergencia de complejidad en sistemas cuánticos 🚀
El proyecto incluye flujos de trabajo automatizados con Gemini AI para revisión de código y triaje.
Ver [[CI_CD_SETUP.md]] para instrucciones de configuración (Secrets y Variables).