Files
glpi-neural-brain/VISUALIZATION-PERFORMANCE.md
groot 18255e4b98
All checks were successful
release-tag / release-image (push) Successful in 2m25s
Update 8 - LowPowerMode + Bugfixes
2026-08-05 06:34:02 +02:00

103 lines
4.2 KiB
Markdown

# Visualisierungen, weiche Übergänge und ECO-Modus
## Ansichten
### Neural
Die Neural-Ansicht bleibt die detailreichste Darstellung. Sie zeigt Cortex-Regionen, hierarchisches Level-of-Detail, Synapsen, Aktivitätspartikel, Recherchepfade und semantische Verdichtungen.
### Honeycomb
Honeycomb verteilt Notes auf einem stabilen, gleichmäßig beabstandeten 3D-Gitter in Gehirnform. Die Zuordnung eines Nodes zu einem Gitterplatz bleibt über Graphupdates hinweg erhalten. Neue Nodes belegen freie Plätze, statt die komplette Wabe neu anzuordnen.
### Constellation
Constellation ist die dritte Ansicht für große und stark verknüpfte Wissensbasen. Semantische Themen bilden ruhige Zentren; ihre Notes liegen als Sterne in stabilen Umlaufbereichen. Aggregierte Verbindungen zwischen Themen zeigen Übergänge, ohne sämtliche Einzelkanten zu zeichnen.
Die Ansicht eignet sich besonders für:
- Überblick über Wissensdomänen und deren Größen;
- Erkennen von thematischen Inseln und Brücken;
- Beobachten von Learning-, Thinking- und Research-Aktivität;
- große Graphen, bei denen Einzelkanten in Neural zu dicht werden.
## ECO-Modus
Der Schalter **ECO** ist sowohl in der unteren Steuerleiste als auch unter **FILTER → Performance** verfügbar. Die Einstellung wird in `runtime-settings.json` gespeichert.
```env
BRAIN_LOW_POWER_MODE=false
```
Im ECO-Modus bleiben die charakteristischen Animationen erhalten, ihre Kosten werden jedoch begrenzt:
- Zielintervall ungefähr 30 FPS;
- maximale Device-Pixel-Ratio 1,15 statt 2;
- weniger inaktive Synapsen, Partikel, Cortex-Wolken und Hintergrundsterne;
- günstigere Halos und Recherchepakete ohne viele radiale Gradienten;
- selteneres Tiefensortieren;
- kleinere Übergangspuffer;
- weniger gleichzeitig dargestellte Constellation-Verbindungen.
Der Modus ändert keine Graphdaten und entfernt keine Wissens-Nodes. Für eine harte Obergrenze sichtbarer Nodes bleibt `BRAIN_MAX_DISPLAY_NODES` zuständig.
## Update- und Übergangsmodell
Graphpolling und SSE-Events führen nicht mehr automatisch zu einem vollständigen visuellen Neuaufbau.
- Identische Graphversion und identische Anzeigefilter werden ignoriert.
- Parallele Reload-Anforderungen werden zusammengeführt und leicht entprellt.
- Vorhandene Node-Objekte und ihre Koordinaten bleiben erhalten.
- Reine Kantenänderungen aktualisieren Links, ohne sämtliche Nodes neu zu platzieren.
- Honeycomb-Slots sind stabil und werden wiederverwendet.
- Neue Nodes erhalten einen Fade-in-Status.
- Entfernte Nodes und Edges bleiben für die Fade-out-Dauer in einem begrenzten Übergangspuffer.
- Beim Wechsel zwischen Neural, Honeycomb und Constellation werden alte Bildschirmpositionen kurz als Ghosts gehalten und Nodes zwischen den 3D-Koordinaten gemorpht.
Standardzeiten:
```text
Node Fade-in: 720 ms
Node/Edge Fade-out: 680 ms
Positionsmorphing: 620 ms
Ansichtswechsel: 760 ms
```
Die SearXNG-Animation besitzt weiterhin ihren eigenen Lebenszyklus und wird durch Graphupdates oder Ansichtswechsel nicht abgebrochen.
## Renderoptimierungen
Zusätzlich wurden folgende Hotpaths reduziert:
- Kameratrigonometrie und Perspektivparameter werden einmal pro Frame berechnet;
- der statische Hintergrund wird in einem Offscreen-Canvas gecacht;
- inaktive Edges werden deterministisch bis zum Profil-Limit abgetastet;
- aktive Edges werden unabhängig vom Limit weiterhin gezeichnet;
- vorhandene Cluster und Node-Positionen werden wiederverwendet;
- bei unveränderten Clustern läuft nur eine kurze Relaxation;
- Tiefensortierung wird im ECO-Modus gedrosselt;
- Partikel- und Übergangspuffer besitzen feste Obergrenzen.
## Runtime-API
Beispiel:
```json
{
"view_mode": "constellation",
"low_power_mode": true
}
```
Unterstützte Ansichten:
```text
neural
honeycomb
constellation
```
## Hinweis zur Research-Evidence-Korrektur
Ältere externe Nodes können in SQLite ein fehlendes `evidence_path` als `null` beziehungsweise als Zeichenfolge `<nil>` enthalten. Diese Werte werden nun als nicht vorhandener Pfad behandelt und übersprungen. Dadurch wird nicht mehr versucht, unter Windows eine Datei wie `data\\<nil>` zu öffnen, und die wiederholten Warnmeldungen entfallen. Gültige Evidenzpfade werden unverändert weiterverwendet.