feat(dominium): dominium-core — núcleo del simulador de campo medio

- grid — el Sustrato Plano: grilla SoA de 5 capas f32 (materia, psique,
  poder, oro, degradación), indexada y*width+x.
- lemmings — Agentes Vectoriales en SoA: pos_x/y, edad, energia,
  vector_psi [Orden,Miedo,Curiosidad,Corruptibilidad], accion u8.
  spawn / swap_remove / nearest (determinista, empate por menor índice).
- world — World + las 6 acciones atómicas fijas: Mover (gravedad mental
  hacia el vecino más afín al psi), Extraer, Sincronizar, Intercambiar,
  Replicar, Degradar. step_lemming despacha por el byte accion.
- params — SimParams (las constantes que los sliders del panel ajustan).

Cero deps gráficas — sólo serde (regla inviolable de la spec).
11 tests verdes (acciones verificadas: Mover sigue la materia, Extraer
degrada, Replicar engendra, Intercambiar conserva energía, etc.).
cargo check --workspace verde.

Pendiente dominium: physics (difusión/entropía/cinemática), iso,
render-plan, canvas/panel GPUI.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-20 16:01:42 +00:00
parent 191e6b06e1
commit d1727b1374
8 changed files with 544 additions and 0 deletions
@@ -0,0 +1,27 @@
//! `dominium-core` — el núcleo lógico del simulador de campo medio.
//!
//! Laboratorio de complejidad emergente: los agentes (Lemmings) no toman
//! decisiones cognitivas — reaccionan mecánicamente a los campos de una
//! grilla plana ejecutando una de 6 acciones atómicas fijas. Civilización,
//! guerra, fe y poder son patrones emergentes, no algoritmos.
//!
//! - [`grid`] — el Sustrato Plano: 5 capas SoA de `f32`.
//! - [`lemmings`] — los Agentes Vectoriales en Structure-of-Arrays.
//! - [`world`] — el `World` + las 6 acciones atómicas (`Action`).
//! - [`params`] — `SimParams`, las constantes que los sliders ajustan.
//!
//! Cero dependencias gráficas (regla inviolable de la spec): sólo `serde`.
//! La difusión/entropía/cinemática viven en `dominium-physics`; el
//! renderizado isométrico en `dominium-iso` + `dominium-render-plan`.
#![forbid(unsafe_code)]
pub mod grid;
pub mod lemmings;
pub mod params;
pub mod world;
pub use grid::Grid;
pub use lemmings::Lemmings;
pub use params::SimParams;
pub use world::{Action, World};