FUFundamental
Universe
Todos los escenarios ↗

Documentación / Auditoría de Orbit Universe

Auditoría de reutilización de Orbit Universe

Fecha de corte: 4 de octubre de 2026 Proyecto destino: Fundamental Universe Fuente: Z:\modulos ps mios finalizados y ok\modulos IA\orbit universe

Resultado de este corte

La fuente no es un proyecto con bundler: es una aplicación web estática basada en módulos ES nativos, un importmap y Three.js incluido localmente. La entrada real es index.html, que carga js/main.js; las entradas del importmap no son puntos de arranque independientes.

El estado de Orbit está muy modificado antes de esta auditoría: Git informa 1.083 rutas sucias, con 490 modificadas, 49 borradas y 544 sin seguimiento. No se ha escrito nada en Orbit. Las carpetas temporales pytest-cache-files-* no son legibles y quedan fuera del inventario de código.

Entrada y composición

PiezaUbicaciónHallazgoDecisión
Entrada HTMLindex.html:202-206, index.html:542Define el importmap, carga consentimiento y arranca js/main.js.Reutilizar el patrón, no copiar la página completa.
Aplicaciónjs/main.js:127App concentra renderer, escena, reloj, carga de escenarios, interacción y bucle. Tiene 523.275 bytes y 9.999 líneas.Adaptar por extracción progresiva; no duplicar el monolito.
Catálogojs/data/scenarios.js:347, js/data/scenarios.js:1830Catálogo repartido en varios módulos y fusionado con Object.assign; admite alias y familias.Reutilizar el contrato de catálogo y cambiar el modelo físico.
UIjs/ui/panel.js, js/ui/ficha.js, js/ui/aula.js, js/ui/tutorial.jsPanel, ficha, aula y tutoriales están desacoplados mediante clases y eventos del App.Reutilizar infraestructura con textos y controles cuánticos propios.
Internacionalizaciónjs/i18n/i18n.js:52-465Idiomas es y en, diccionarios, traducción del árbol DOM y cambio de idioma.Reutilizar el sistema y ampliar claves desde el principio.
Despliegueserver.js, dev/version.py, index.htmlServido como estático, con control de versión e importmap.Mantener sin introducir build innecesario.

Mapa de subsistemas

Subsistema OrbitArchivos principalesQué haceEstadoAcción Fundamental
Catálogo de escenariosjs/data/scenarios*.js, js/data/supernovas.jsDefine cuerpos, parámetros, familias, alias y acciones.Funciona; catálogo grande y modular.ADAPTAR al contrato de escenario científico.
Renderer 3Djs/main.js, js/view/materials.js, js/core/gpu.jsWebGL, EffectComposer, bloom, materiales, resolución y calidad.Funciona en el producto fuente.REUTILIZAR como infraestructura visual.
Partículasjs/core/nbodyGPU.js, js/view/motas.js, js/view/polvoGPU.jsN-body GPU, puntos, muestras y capas de partículas.Funciona con supuestos clásicos o visuales según el módulo.ADAPTAR; muestras de Monte Carlo y eventos, nunca bolitas por defecto.
Nebulosasjs/view/nebulosa.js, js/view/nebulosaEmision.jsVolúmenes, emisión, perfiles y acumulación de nebulosas.Funciona; parte integrada en la aplicación.ADAPTAR a densidades, amplitudes y campos declarados.
Nebula/Dust Enginenebula-dust-engine/src/index.js, system.js, outflow.js, gpu-profile.jsNubes sembradas, GPU, LOD, presupuesto, picking, toque, serialización y presets.Subsistema separado, versión 0.4.0, con pruebas propias.REUTILIZAR mediante un adaptador de capas físicas.
Gravedadjs/core/physics.js, js/core/warp.js, js/core/orbital.jsIntegración orbital, aceleración, potencial, dilatación y curvatura visual.Funciona para los modelos de Orbit.ADAPTAR solo para quantum-cosmos; no usarlo como solver de Schrödinger o QFT.
Mareasjs/core/roche.js, js/view/rocas.js, js/view/debris.jsLímite de Roche, rotura, escombros y corrientes.Funciona en escenarios astronómicos.NO APLICA al núcleo cuántico; posible reutilización en cosmología híbrida.
Choquesjs/view/impacto.js, js/core/debris.js, js/view/explosionSupernova.jsImpactos, eyecciones, restos y sucesos dirigidos.Funciona como modelo astrofísico.ADAPTAR para detectores y eventos, sin arrastrar el modelo de impacto.
Cámarasjs/controls/flight.js, métodos de cámara de js/main.jsÓrbita, vuelo, encuadre, escalas y navegación táctil.Reutilizable.REUTILIZAR.
Navegaciónindex.html, hash de js/main.js, js/ui/panel.jsURL directa de escenario, alias, historial y carga diferida.Funciona.REUTILIZAR y ampliar con rutas de laboratorio.
Tutorialesjs/data/tutoriales.js, js/ui/tutorial.jsPasos, focos, paneles, escenarios y progreso.Funciona y tiene pruebas de uso en dev/tuto.py.REUTILIZAR el flujo; rehacer contenido científico.
Aulajs/data/lecciones*.js, js/ui/aula.jsLecciones por pasos vinculadas a escenarios.Funciona y se comprueba contra el catálogo.REUTILIZAR el motor; crear 100 lecciones cuánticas y relativistas.
Buscadoresjs/ui/panel.js, js/galerias.js, galerias.htmlBúsqueda, filtros, familias y galería.Funciona.ADAPTAR a fenómeno, teoría, nivel, laboratorio y pregunta.
Panel administrativopanel/, dev/insta/, dev/noticias/Herramientas operativas y agentes fuera del simulador principal.No es un panel único integrado en index.html.ADAPTAR; diseñar panel de escenarios, validación y rollback.
Instagram/socialdev/insta/, dev/subir*.py, panel/Generación, planificación y publicación de piezas.Existe como sistema auxiliar.ADAPTAR solo después del catálogo científico.
Agentesdev/noticias/, dev/insta/Noticias, piezas y automatizaciones de desarrollo/publicación.Existe fuera del runtime principal.ADAPTAR con revisión, fuentes, changelog y rollback.
Exportacionesindex.html, galería y serialización del motor de polvoURL, galería y escenas de polvo serializables; no hay contrato general de datos científicos.Parcial.ADAPTAR para datos, mediciones, semillas y resultados reproducibles.
i18njs/i18n/i18n.js, js/i18n/es.json, js/i18n/en.jsonTraducción de interfaz, escenarios, lecciones y consentimiento.Funciona.REUTILIZAR la infraestructura; separar textos científicos por dominio.
Analytics/consentimientojs/i18n/consentimiento.js, index.htmlConsentimiento previo y carga de Analytics solo con aceptación.Funciona con Analytics denegado por defecto.REUTILIZAR con identificadores nuevos.
Cachéindex.html, server.js, dev/nginx_nocache.confControl de versión, caché de estáticos y recarga tras cambio.Existe a nivel de servidor/cliente.ADAPTAR para datasets, escenarios y versiones de solvers.
Workers/WASM/WebGL/WebGPUjs/core/nbodyGPU.js, nebula-dust-engine/src/*, js/i18n/i18n.jsWebGL2 y GPU; hay detección de capacidades y uso de OffscreenCanvas para compatibilidad. No se ha localizado un worker/WASM/WebGPU activo en el código inspeccionado.WebGL2 probado; WebGPU/WASM pendientes.REUTILIZAR WebGL/GPU; evaluar Worker/WASM para solvers, sin prometer WebGPU todavía.

Núcleo físico reutilizable y frontera científica

js/core/physics.js aporta Body, Integrator, aceleración, potencial, dilatación, post-Newtoniano, fotones y sondas. Es una base útil para los laboratorios de relatividad y para el bloque quantum-cosmos, pero no representa estados cuánticos por sí sola.

El adaptador de Fundamental debe separar:

  1. estado matemático y parámetros del solver;
  2. observables y mediciones;
  3. capas de renderizado declaradas;
  4. muestras de Monte Carlo o eventos del detector;
  5. aproximaciones clásicas, siempre etiquetadas.

El motor de polvo es especialmente reutilizable: expone semillas, morfologías, paletas, volumen, presupuesto GPU, LOD, picking, serialización y pruebas de conservación de luz. La equivalencia correcta en Fundamental será representar densidad, amplitud, fase o muestras declaradas; no afirmar que una mota es una partícula elemental.

Validación observada

Se ejecutó npm test dentro de nebula-dust-engine:

Decisión de arquitectura para Fundamental

No se debe copiar js/main.js entero ni crear otro motor orbital paralelo. La primera implementación después de esta auditoría debe ser un shell pequeño que reutilice:

El primer escenario canónico recomendado es doble rendija: solver reproducible, |psi|², fase, corriente, detector, histograma, semilla y comparación controlada con decoherencia. No se debe comenzar por una escena decorativa ni por el catálogo masivo.

Siguiente bloque

  1. Crear el contrato de escenario y el registro de solvers.
  2. Portar únicamente el shell de renderer, cámara, tiempo, URL, panel e i18n.
  3. Implementar el solver de doble rendija con pruebas numéricas.
  4. Conectar sus capas físicas al renderer y al detector.
  5. Validar que el renderer no cambia los resultados del solver.

Este documento es el primer entregable de la Fase 0. La auditoría de tiempocuerda.gmartos.es y la comprobación de su posible código local quedan como bloques posteriores y no se han presentado como realizados.

← Volver a la documentación