@andespindola/brainlink 0.1.0-beta.72 → 0.1.0-beta.74
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 +18 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -594,7 +594,7 @@ The graph UI shows:
|
|
|
594
594
|
- double-click on canvas zooms in at cursor position
|
|
595
595
|
- floating graph totals (notes, links, tags) below the Brainlink title
|
|
596
596
|
- large-graph rendering safeguards (edge draw caps, lower redraw rate, zoom-aware interaction)
|
|
597
|
-
- massive-graph LOD progression:
|
|
597
|
+
- massive-graph LOD progression: very low zoom uses spatial overview clusters to preserve whole-vault shape, then progressively reveals nodes and edges as zoom increases
|
|
598
598
|
|
|
599
599
|
The server indexes before starting by default. Use `--no-index` to skip that step:
|
|
600
600
|
|
|
@@ -10,6 +10,7 @@ const clusterZoomThreshold = 0.18
|
|
|
10
10
|
const macroGalaxyZoomThreshold = 0.012
|
|
11
11
|
const macroGalaxyEnterHysteresis = 0.86
|
|
12
12
|
const macroGalaxyExitHysteresis = 1.24
|
|
13
|
+
const galaxyDiscoveryEnabled = false
|
|
13
14
|
const massiveAutoFitMacroScale = 0.006
|
|
14
15
|
const defaultMacroScale = 0.006
|
|
15
16
|
const clusterCellPixelSize = 64
|
|
@@ -25,6 +26,7 @@ const meshEdgeScaleThreshold = 0.09
|
|
|
25
26
|
const meshEdgeMinBudget = 140
|
|
26
27
|
const meshEdgeMaxBudget = 1400
|
|
27
28
|
const layeredCoreScaleThreshold = 0.55
|
|
29
|
+
const massiveOverviewClusterScaleThreshold = 0.035
|
|
28
30
|
const dragNeighborhoodMaxAffected = 180
|
|
29
31
|
const dragSettleRounds = 3
|
|
30
32
|
const wheelZoomExponent = 0.0018
|
|
@@ -677,6 +679,10 @@ const visibilityScaleBucket = (scale) => {
|
|
|
677
679
|
}
|
|
678
680
|
|
|
679
681
|
const shouldRenderMacroGalaxyView = () => {
|
|
682
|
+
if (!galaxyDiscoveryEnabled) {
|
|
683
|
+
state.macroViewActive = false
|
|
684
|
+
return false
|
|
685
|
+
}
|
|
680
686
|
if (state.visibleNodes.length <= 1) {
|
|
681
687
|
state.macroViewActive = false
|
|
682
688
|
return false
|
|
@@ -1805,6 +1811,17 @@ const computeRenderVisibility = () => {
|
|
|
1805
1811
|
|
|
1806
1812
|
if (state.visibleNodes.length > massiveGraphNodeThreshold) {
|
|
1807
1813
|
const viewportNodes = viewportNodesFromSpatialIndex(viewport)
|
|
1814
|
+
if (state.transform.scale <= massiveOverviewClusterScaleThreshold) {
|
|
1815
|
+
const overviewClusters = filterOverviewClustersByViewport(viewport)
|
|
1816
|
+
.sort((left, right) => right.count - left.count)
|
|
1817
|
+
.slice(0, Math.min(renderNodeBudget, clusterBudgetForScale(state.transform.scale)))
|
|
1818
|
+
if (overviewClusters.length > 0) {
|
|
1819
|
+
state.renderClusters = overviewClusters
|
|
1820
|
+
state.renderNodes = overviewClusters.map((cluster) => cluster.representative)
|
|
1821
|
+
state.renderEdges = []
|
|
1822
|
+
return
|
|
1823
|
+
}
|
|
1824
|
+
}
|
|
1808
1825
|
const sourceNodes = viewportNodes.length > 0 ? viewportNodes : state.visibleNodes
|
|
1809
1826
|
const sampleLimit = nodeBudgetForScale(state.transform.scale)
|
|
1810
1827
|
const carryMargin = Math.max(240, Math.min(1200, 340 / Math.max(state.transform.scale, 0.0001)))
|
|
@@ -1818,15 +1835,8 @@ const computeRenderVisibility = () => {
|
|
|
1818
1835
|
carryOverNodes,
|
|
1819
1836
|
Math.max(sampleLimit * 7, carryOverLimit)
|
|
1820
1837
|
)
|
|
1821
|
-
const layeredNodes = selectLayeredNodesForScale(sourceWithCarry, sampleLimit)
|
|
1822
|
-
const bridgeLimit = Math.max(24, Math.min(180, Math.floor(sampleLimit * 0.26)))
|
|
1823
|
-
const bridgedNodes = mergeUniqueNodes(
|
|
1824
|
-
layeredNodes,
|
|
1825
|
-
selectAccessBridgeNodes(sourceWithCarry, bridgeLimit),
|
|
1826
|
-
Math.min(renderNodeBudget, sampleLimit + bridgeLimit)
|
|
1827
|
-
)
|
|
1828
1838
|
const sampledRaw = selectStableSampleNodes(
|
|
1829
|
-
|
|
1839
|
+
sourceWithCarry,
|
|
1830
1840
|
Math.min(sampleLimit, renderNodeBudget)
|
|
1831
1841
|
)
|
|
1832
1842
|
const continuityBudget = Math.max(24, Math.min(sampleLimit - 8, Math.floor(sampleLimit * 0.42)))
|
package/package.json
CHANGED