// 05 Network — the hero. Four directions of the visualization.
const NetworkTab = () => (
{/* Force-directed atlas */}
Strength: reads like an atlas; clusters legible at any zoom. Risk: mechanics need polish to avoid hairball at full scale.
Strength: encodes ecosystem position (research → bridge → practice) on the radius. Risk: rigid; less expressive for ad-hoc exploration.
Strength: personal, immediate “my neighbourhood”. Use as: default landing into network from a profile.
Strength: answers “who’s solving the same thing?” at a glance. Edges are pulsing red dashes.
{/* Side panel + path view */}
Selected · Project
HYDRO-NL Pilot
TRL 5 · NL · 7 members
Why connected to you
- Their need: membrane durability data
- Your offer: membrane test method
- Shared subdomain: PEM
- Method overlap: LCA
Open match →
Show shortest path
You → Liesbeth → HYDRO-NL
2 hops · via Membranes domain
Show
{['Person','Project','Org','Domain','Method','Challenge','Bottleneck','Uncertainty'].map((t,i)=>(
{t}
))}
Relationship
{[['Similarity','#1c5fbf'],['Complementarity','#d96b2c'],['Anti-dup','#c33a3a'],['Bridge','#2a8a5c'],['Method transfer','#7a6cf0'],['Shared uncertainty','#c9a227']].map(([t,c],i)=>(
{t}
))}
Strength ≥
{[0.2,0.4,0.6,0.8].map(v=>
{v})}
62 nodes · 134 edges · zoom 1.0×
Toggle Anti-dup on → red dashed edges only. Toggle Bridge on → only cross-cluster edges. The graph stays meaningful at any filter combination.
{/* Need-Offer + Path */}
Hover a flow → highlights both stakeholders. Strength = thickness.
4 hops
via PEM → Liesbeth → HYDRO-NL → Bram
· total strength 0.78
);
const NetworkChrome = ({modeLabel, children}) => (
Search node{modeLabel &&
{modeLabel}}
Save view
{children}
);
const ForceAtlas = () => (
248 nodes · 4 clusters · zoom 0.8×
);
const OrbitalLayout = () => (
);
const FocusMode = () => (
);
const AntiDup = () => (
Anti-dup mode
3 clusters detected · 8 stakeholders
Send introduction →
);
window.NetworkTab = NetworkTab;