@andespindola/brainlink 0.1.0-beta.94 → 0.1.0-beta.95
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 +28 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -602,7 +602,7 @@ The graph UI shows:
|
|
|
602
602
|
- WebGL node and edge acceleration when supported, falling back to Canvas 2D without changing graph behavior
|
|
603
603
|
- compact macro-to-micro density progression so reset keeps the graph mass oriented and zoom-in separates local neighborhoods progressively
|
|
604
604
|
- 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
|
|
605
|
-
- graph LOD progression: graphs up to 1000 notes render directly; larger graphs use a compact memory-hub-centered mesh of alpha-particle 1000-note points, zoom-in keeps focused child clusters latent at the parent position before fading them in and only then separating them through 500-note, 250-note, 125-note and
|
|
605
|
+
- graph LOD progression: graphs up to 1000 notes render directly; larger graphs use a compact memory-hub-centered mesh of alpha-particle 1000-note points, zoom-in keeps focused child clusters latent at the parent position before fading them in and only then separating them through 500-note, 250-note, 125-note, 60-note, 30-note, 15-note and 8-note subgraphs with aggregated real links plus local sibling mesh links, and in massive graphs keeps this subgraph mode active much longer with finer wheel steps so deep zoom does not abruptly switch to a broad sampled node cloud
|
|
606
606
|
|
|
607
607
|
The server indexes before starting by default. Use `--no-index` to skip that step:
|
|
608
608
|
|
|
@@ -23,12 +23,12 @@ const transformCoordinateLimit = 20_000_000
|
|
|
23
23
|
const hoverHitTestIntervalMs = 64
|
|
24
24
|
const ecosystemGroupSize = 1000
|
|
25
25
|
const ecosystemActivationNodeThreshold = 1000
|
|
26
|
-
const ecosystemGroupSizes = [1000, 500, 250, 125, 60]
|
|
26
|
+
const ecosystemGroupSizes = [1000, 500, 250, 125, 60, 30, 15, 8]
|
|
27
27
|
const ecosystemClusterEdgeLimit = 520
|
|
28
28
|
const ecosystemHubEdgeLimit = 120
|
|
29
29
|
const ecosystemSiblingEdgeLimit = 180
|
|
30
30
|
const ecosystemClusterScaleThreshold = 0.78
|
|
31
|
-
const massiveEcosystemClusterScaleThreshold = 2
|
|
31
|
+
const massiveEcosystemClusterScaleThreshold = 4.2
|
|
32
32
|
const ecosystemSubgraphScaleThreshold = 0.18
|
|
33
33
|
const ecosystemMicroScaleThreshold = 0.08
|
|
34
34
|
const ecosystemFocusedParentLimit = 2
|
|
@@ -36,7 +36,10 @@ const ecosystemExpansionLevels = [
|
|
|
36
36
|
{ parentSize: 1000, childSize: 500, start: 0.04, end: 0.62 },
|
|
37
37
|
{ parentSize: 500, childSize: 250, start: 0.16, end: 0.72 },
|
|
38
38
|
{ parentSize: 250, childSize: 125, start: 0.3, end: 0.78 },
|
|
39
|
-
{ parentSize: 125, childSize: 60, start: 0.46, end: 0.86 }
|
|
39
|
+
{ parentSize: 125, childSize: 60, start: 0.46, end: 0.86 },
|
|
40
|
+
{ parentSize: 60, childSize: 30, start: 0.64, end: 1.06 },
|
|
41
|
+
{ parentSize: 30, childSize: 15, start: 0.84, end: 1.38 },
|
|
42
|
+
{ parentSize: 15, childSize: 8, start: 1.08, end: 1.82 }
|
|
40
43
|
]
|
|
41
44
|
const zoomRecoveryGuardMs = 4200
|
|
42
45
|
const zoomCapTargetViewportShare = 0.72
|
|
@@ -748,7 +751,10 @@ const ecosystemLayoutSpacingForSize = size => {
|
|
|
748
751
|
if (size >= 500) return 92
|
|
749
752
|
if (size >= 250) return 52
|
|
750
753
|
if (size >= 125) return 28
|
|
751
|
-
return 16
|
|
754
|
+
if (size >= 60) return 16
|
|
755
|
+
if (size >= 30) return 11
|
|
756
|
+
if (size >= 15) return 7
|
|
757
|
+
return 5
|
|
752
758
|
}
|
|
753
759
|
|
|
754
760
|
const ecosystemCompactPoint = (index, total, center, spacing) => {
|
|
@@ -2532,8 +2538,22 @@ const clusterRadiusPx = cluster => {
|
|
|
2532
2538
|
return 3.2
|
|
2533
2539
|
}
|
|
2534
2540
|
if (String(cluster.id).startsWith('ecosystem-')) {
|
|
2535
|
-
const base = cluster.size >= 1000
|
|
2536
|
-
|
|
2541
|
+
const base = cluster.size >= 1000
|
|
2542
|
+
? 0.64
|
|
2543
|
+
: cluster.size >= 500
|
|
2544
|
+
? 0.6
|
|
2545
|
+
: cluster.size >= 250
|
|
2546
|
+
? 0.56
|
|
2547
|
+
: cluster.size >= 125
|
|
2548
|
+
? 0.52
|
|
2549
|
+
: cluster.size >= 60
|
|
2550
|
+
? 0.5
|
|
2551
|
+
: cluster.size >= 30
|
|
2552
|
+
? 0.58
|
|
2553
|
+
: cluster.size >= 15
|
|
2554
|
+
? 0.72
|
|
2555
|
+
: 0.86
|
|
2556
|
+
return Math.max(0.48, Math.min(1.75, base + Math.log10(cluster.count + 1) * 0.11))
|
|
2537
2557
|
}
|
|
2538
2558
|
return Math.max(8, Math.min(28, 8 + Math.log2(cluster.count + 1) * 3))
|
|
2539
2559
|
}
|
|
@@ -3164,8 +3184,8 @@ const wheelZoomFactor = event => {
|
|
|
3164
3184
|
const isMassiveEcosystemZoom =
|
|
3165
3185
|
state.visibleNodes.length > massiveGraphNodeThreshold &&
|
|
3166
3186
|
state.transform.scale <= massiveEcosystemClusterScaleThreshold
|
|
3167
|
-
const sensitivityMultiplier = isMassiveEcosystemZoom ? 0.
|
|
3168
|
-
const capMultiplier = isMassiveEcosystemZoom ? 0.
|
|
3187
|
+
const sensitivityMultiplier = isMassiveEcosystemZoom ? 0.48 : 1
|
|
3188
|
+
const capMultiplier = isMassiveEcosystemZoom ? 0.34 : 1
|
|
3169
3189
|
const sensitivity = wheelZoomExponent * (isModifierZoom ? wheelZoomModifierBoost : 1) * sensitivityMultiplier
|
|
3170
3190
|
const exponentCap = wheelZoomExponentCap * capMultiplier
|
|
3171
3191
|
const exponent = Math.max(
|
package/package.json
CHANGED