Fase F: sexto stub de pineal cerrado (6/6).
mesh resultó ser un módulo de viz de grafos, no un triangle-mesh.
Núcleo implementado:
- buffers — NodeBuffer (stride 3: x,y,radius) + EdgeBuffer (stride 2),
Vec planos contiguos, raw() para subir a GPU.
- spatial_hash — uniform grid; rebuild + query (nodo bajo un punto,
revisa celda + 8 vecinas).
- force — layout force-directed Fruchterman-Reingold naïve O(n²):
repulsión todo-par + atracción por arista + cooling. Jitter
determinista para nodos coincidentes.
- tree — layout de árbol por ancho de subárbol (post-order, padres
centrados sobre hijos), soporta bosque, ciclos sin colgar.
- camera — pan/zoom con zoom anclado al cursor (anchor-preserving).
13 tests verdes. cargo check --workspace verde.
Pendiente (follow-up): hierarchical (Sugiyama) + Barnes-Hut para
escalar el force-directed a grafos masivos.
Pineal: 6/6 stubs cerrados.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>