@andespindola/brainlink 0.1.0-beta.106 → 0.1.0-beta.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/application/frontend/client-js.js +13 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -604,7 +604,7 @@ The graph UI shows:
|
|
|
604
604
|
- WebGL node and edge acceleration when supported, falling back to Canvas 2D without changing graph behavior
|
|
605
605
|
- compact macro-to-micro density progression so reset keeps the graph mass oriented and zoom-in separates local neighborhoods progressively
|
|
606
606
|
- graph camera treats hub-centered navigation as structural only when the hub is dominant; diffuse stress graphs reset and zoom around the full graph mass
|
|
607
|
-
- graph LOD progression: hierarchical rendering now follows one recursive graph-of-graphs standard whenever a graph has more than one hierarchy level; each level expands through intermediate subgraph sizes (instead of jumping directly to leaves), starts from a memory-hub-centered mesh, and each supernode can expand into another same-shape subgraph level (up to 999 children) with latent fade-in, aggregated real links and local sibling mesh links so org-heavy-like and stress-50k-like structures share the same layered behavior at different depths; layered clusters also receive perspective depth projection (Z-depth) so expansion reads as a true depth field instead of a flat 2D switch; for massive graphs the first expansion starts deeper in zoom and is additionally gated by focus readiness (screen-space isolation of the focused parent) so child levels open only when that subgraph is truly centered and separated in view
|
|
607
|
+
- graph LOD progression: hierarchical rendering now follows one recursive graph-of-graphs standard whenever a graph has more than one hierarchy level; each level expands through intermediate subgraph sizes (instead of jumping directly to leaves), starts from a memory-hub-centered mesh, and each supernode can expand into another same-shape subgraph level (up to 999 children) with latent fade-in, aggregated real links and local sibling mesh links so org-heavy-like and stress-50k-like structures share the same layered behavior at different depths; layered clusters also receive stronger perspective depth projection (Z-depth) with vertical camera tilt/parallax so expansion reads as a true depth field instead of a flat 2D switch; for massive graphs the first expansion starts deeper in zoom and is additionally gated by focus readiness (screen-space isolation of the focused parent) so child levels open only when that subgraph is truly centered and separated in view
|
|
608
608
|
|
|
609
609
|
The server indexes before starting by default. Use `--no-index` to skip that step:
|
|
610
610
|
|
|
@@ -31,10 +31,12 @@ const massiveEcosystemClusterScaleThreshold = 4.2
|
|
|
31
31
|
const ecosystemSubgraphScaleThreshold = 0.18
|
|
32
32
|
const ecosystemMicroScaleThreshold = 0.08
|
|
33
33
|
const ecosystemFocusedParentLimit = 2
|
|
34
|
-
const ecosystemDepthNear =
|
|
35
|
-
const ecosystemDepthFar =
|
|
36
|
-
const ecosystemDepthPerspective =
|
|
37
|
-
const
|
|
34
|
+
const ecosystemDepthNear = 80
|
|
35
|
+
const ecosystemDepthFar = 2600
|
|
36
|
+
const ecosystemDepthPerspective = 620
|
|
37
|
+
const ecosystemDepthTiltY = 0.24
|
|
38
|
+
const ecosystemDepthMinScale = 0.24
|
|
39
|
+
const ecosystemDepthOpacityFloor = 0.2
|
|
38
40
|
const zoomRecoveryGuardMs = 4200
|
|
39
41
|
const zoomCapTargetViewportShare = 0.72
|
|
40
42
|
const meshEdgeScaleThreshold = 0.09
|
|
@@ -1177,10 +1179,12 @@ const ecosystemDepthForCluster = (cluster, levelIndexMap) => {
|
|
|
1177
1179
|
}
|
|
1178
1180
|
|
|
1179
1181
|
const projectEcosystemPoint = (x, y, depth, anchor) => {
|
|
1180
|
-
const
|
|
1182
|
+
const safeDepth = Math.max(0, depth)
|
|
1183
|
+
const factor = ecosystemDepthPerspective / (ecosystemDepthPerspective + safeDepth)
|
|
1184
|
+
const verticalTilt = safeDepth * ecosystemDepthTiltY
|
|
1181
1185
|
return {
|
|
1182
1186
|
x: anchor.x + (x - anchor.x) * factor,
|
|
1183
|
-
y: anchor.y + (y - anchor.y) * factor,
|
|
1187
|
+
y: anchor.y + (y - anchor.y) * factor - verticalTilt,
|
|
1184
1188
|
factor
|
|
1185
1189
|
}
|
|
1186
1190
|
}
|
|
@@ -1195,9 +1199,10 @@ const applyEcosystemDepthProjection = (clusters, edges, anchor) => {
|
|
|
1195
1199
|
const depth = ecosystemDepthForCluster(cluster, levelIndexMap)
|
|
1196
1200
|
const projected = projectEcosystemPoint(cluster.x, cluster.y, depth, anchor)
|
|
1197
1201
|
const baseOpacity = Number.isFinite(cluster.lodOpacity) ? cluster.lodOpacity : 1
|
|
1202
|
+
const depthScale = ecosystemDepthMinScale + (1 - ecosystemDepthMinScale) * projected.factor
|
|
1198
1203
|
const depthOpacity = Math.max(
|
|
1199
1204
|
ecosystemDepthOpacityFloor,
|
|
1200
|
-
Math.min(1,
|
|
1205
|
+
Math.min(1, depthScale * 1.08)
|
|
1201
1206
|
)
|
|
1202
1207
|
const projectedCluster = {
|
|
1203
1208
|
...cluster,
|
|
@@ -1205,7 +1210,7 @@ const applyEcosystemDepthProjection = (clusters, edges, anchor) => {
|
|
|
1205
1210
|
y: projected.y,
|
|
1206
1211
|
lodOpacity: baseOpacity * depthOpacity,
|
|
1207
1212
|
depth,
|
|
1208
|
-
depthScale
|
|
1213
|
+
depthScale
|
|
1209
1214
|
}
|
|
1210
1215
|
projectedClusters.push(projectedCluster)
|
|
1211
1216
|
clusterById.set(projectedCluster.id, projectedCluster)
|
package/package.json
CHANGED