0e6a013937179811ca66a26fd845925b3d1cd2fa
Tres mejoras de UX/escala en el demo de grafos:
1. **Wheel zoom dentro del canvas no scrollea la pagina**
En graph_viewport.cpp tras procesar MouseWheel para zoom hacemos
io.MouseWheel = 0 — consume el evento para que el BeginChild padre
(la galeria) no scrollee a la vez que el grafo se acerca. Antes
sentia "doble accion" al rodar la rueda sobre el canvas.
2. **graph_force_layout: pool dinamico (soporta 1M nodos)**
El array static QuadNode[1<<20] (~48MB siempre reservados, tope
rigido en ~250k nodos por la fan-out) se reemplaza por
std::vector<QuadNode>. graph_force_layout_step llama a
quad_pool_reserve(5*N + 1024) ANTES de construir el arbol — asi las
referencias QuadNode& que mantenemos vivas durante quad_subdivide
no se invalidan por reallocaciones a mitad del build (resize solo
ocurre en el reserve inicial). Memoria escala lineal con N: 1M
nodos ≈ 240MB de pool, una vez por programa.
3. **Demo de grafo: sliders extendidos + cluster_r escala con sqrt(N)**
- "Nodes" pasa de 100..20k a 100..1M con escala logaritmica
(ImGuiSliderFlags_Logarithmic) para que el rango medio sea util.
- Nuevos sliders "Edges/node" (1..10) e "Inter %" (0..30%) — antes
hardcoded a 3 y 5%.
- cluster_radius y scatter ahora escalan con sqrt(N): a 1k nodos
~370 px de radio, a 1M ~12000 px. Antes era constante a 200/40
y los nodos quedaban empaquetados al subir N — visualmente "sin
limite cuadrado", esparcidos sobre un area proporcional al grafo.
- Golden de graph_viewport regenerado por la nueva fila de sliders.
Notas:
- A 1M nodos sin GPU compute esta limitado por el upload de aristas
(vertex pulling con TBO llega en 0049d). Render mantenible hasta
~200-300k.
- En Linux/Windows ambos builds limpios. 27/27 tests verde.
fn-registry — Schema de documentación
Registry personal de código con búsqueda FTS. Diseñado para composición funcional y agentes.
Archivos
functions.md— Schema de la tabla functions (incluye pipelines y componentes React)types.md— Schema de la tabla typesintegrity.md— Reglas de integridad y referencias cruzadasarchitecture.md— Visión general del sistemasync_setup.md— Vincular una PC al serverregistry.organic-machine.com(env vars,fn sync, troubleshooting)
Tablas
| Tabla | Descripción |
|---|---|
functions |
Funciones atómicas, pipelines y componentes React |
types |
Tipos algebraicos (product / sum) |
kind: valores posibles
| Valor | Descripción |
|---|---|
function |
Función atómica pura o impura |
pipeline |
Composición de funciones, siempre impura |
component |
Componente React, extiende el schema base |
fn-registry schema v1.0
Description
Languages
Go
28%
C++
24.7%
Python
24.7%
Shell
11.6%
C
5.7%
Other
5.1%