Add filter, add READMES

This commit is contained in:
Oxy8
2026-03-06 15:35:04 -03:00
parent b44867abfa
commit 3c487d088b
56 changed files with 2495 additions and 1424 deletions

45
frontend/README.md Normal file
View File

@@ -0,0 +1,45 @@
# Frontend (React + Vite) WebGL Graph Renderer
The frontend renders the snapshot from `/api/graph` using WebGL2:
- Nodes are drawn as points
- Edges are drawn as lines only when sufficiently zoomed in
- Selection + neighbor highlighting is driven by backend “selection queries”
## Run
Via Docker Compose (recommended):
```bash
docker compose up --build frontend
```
Open: `http://localhost:5173`
## Configuration
- `VITE_BACKEND_URL` controls where `/api/*` is proxied (see `frontend/vite.config.ts`).
## UI
- Drag: pan
- Scroll: zoom
- Click: select/deselect nodes
Buttons:
- **Top-right:** selection query mode (controls how the backend expands “neighbors” for the current selection)
- **Bottom-right:** graph query mode (controls which SPARQL edge set the backend uses to build the graph snapshot; switching reloads the graph)
The available modes are discovered from the backend at runtime (`/api/selection_queries` and `/api/graph_queries`).
## Rendering / limits
The renderer uses a quadtree spatial index and draws only a subset when zoomed out:
- Points:
- Per-frame cap: `MAX_DRAW = 2_000_000` (sampling over visible leaves)
- Lines:
- Drawn only when fewer than ~20k nodes are “visible” (leaf AABB overlap with the camera frustum)
Selected and “neighbor” nodes are drawn on top using index buffers.