Skip to content

Commit 0099f8a

Browse files
Liam SchmidtLiam Schmidt
authored andcommitted
Better map, add talk images, fix teaching image
1 parent 28f835a commit 0099f8a

6 files changed

Lines changed: 79 additions & 76 deletions

File tree

32.9 KB
Loading
482 KB
Loading
121 KB
Loading
120 KB
Loading
-245 KB
Loading

‎layouts/shortcodes/synchrotron-map.html‎

Lines changed: 79 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,83 @@
11
<div id="synchrotron-map" style="width:100%;max-width:1200px;margin:0 auto;position:relative;">
2-
<svg viewBox="0 0 900 500" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;background:transparent;">
3-
<!-- Simplified world map paths - North America and Europe focus -->
2+
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/BlankMap-World-Flattened.svg/1280px-BlankMap-World-Flattened.svg.png"
3+
style="width:100%;height:auto;filter:brightness(0.15) saturate(0.3);border-radius:8px;"
4+
alt="World map"/>
5+
6+
<!-- Overlay with dots -->
7+
<svg viewBox="0 0 1280 640" xmlns="http://www.w3.org/2000/svg" style="position:absolute;top:0;left:0;width:100%;height:100%;">
48
<defs>
59
<radialGradient id="glow" cx="50%" cy="50%" r="50%">
610
<stop offset="0%" stop-color="#22d3ee" stop-opacity="0.6"/>
711
<stop offset="100%" stop-color="#22d3ee" stop-opacity="0"/>
812
</radialGradient>
9-
<filter id="blur">
10-
<feGaussianBlur stdDeviation="2"/>
11-
</filter>
1213
</defs>
1314

14-
<!-- Continents (simplified outlines) -->
15-
<!-- North America -->
16-
<path d="M80,120 L120,90 L180,85 L230,95 L260,120 L270,150 L260,180 L240,200 L250,230 L240,260 L220,280 L200,290 L180,270 L170,240 L160,260 L140,270 L130,250 L120,220 L100,200 L90,170 L80,140 Z" fill="rgba(255,255,255,0.05)" stroke="rgba(255,255,255,0.15)" stroke-width="0.5"/>
17-
<!-- Europe -->
18-
<path d="M420,100 L440,90 L470,85 L500,90 L520,95 L540,110 L530,130 L540,150 L520,160 L500,155 L490,170 L470,175 L450,165 L440,150 L430,140 L420,120 Z" fill="rgba(255,255,255,0.05)" stroke="rgba(255,255,255,0.15)" stroke-width="0.5"/>
19-
<!-- UK -->
20-
<path d="M430,100 L435,90 L440,100 L435,110 Z" fill="rgba(255,255,255,0.05)" stroke="rgba(255,255,255,0.15)" stroke-width="0.5"/>
21-
<!-- Scandinavia -->
22-
<path d="M470,60 L480,50 L490,55 L495,70 L490,85 L480,90 L470,80 Z" fill="rgba(255,255,255,0.05)" stroke="rgba(255,255,255,0.15)" stroke-width="0.5"/>
23-
<!-- Italy -->
24-
<path d="M475,155 L480,170 L485,190 L480,195 L475,185 L470,170 Z" fill="rgba(255,255,255,0.05)" stroke="rgba(255,255,255,0.15)" stroke-width="0.5"/>
25-
26-
<!-- Connection lines from Boston hub -->
27-
<line x1="205" y1="165" x2="487" y2="128" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
28-
<line x1="205" y1="165" x2="435" y2="105" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
29-
<line x1="205" y1="165" x2="460" y2="142" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
30-
<line x1="205" y1="165" x2="485" y2="75" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
31-
<line x1="205" y1="165" x2="480" y2="185" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
32-
<line x1="205" y1="165" x2="530" y2="130" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
33-
<line x1="205" y1="165" x2="220" y2="165" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
34-
<line x1="205" y1="165" x2="175" y2="158" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
35-
<line x1="205" y1="165" x2="135" y2="155" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
36-
<line x1="205" y1="165" x2="245" y2="155" stroke="#22d3ee" stroke-width="0.5" stroke-opacity="0.2" stroke-dasharray="4,4"/>
37-
38-
<!-- Facility dots with glow -->
39-
<!-- NSLS-II -->
40-
<circle cx="220" cy="165" r="8" fill="url(#glow)" filter="url(#blur)"/>
41-
<circle cx="220" cy="165" r="3" fill="#22d3ee" class="facility-dot" data-facility="nsls2" style="cursor:pointer;"/>
42-
<!-- APS -->
43-
<circle cx="175" cy="158" r="8" fill="url(#glow)" filter="url(#blur)"/>
44-
<circle cx="175" cy="158" r="3" fill="#22d3ee" class="facility-dot" data-facility="aps" style="cursor:pointer;"/>
45-
<!-- ALS -->
46-
<circle cx="100" cy="162" r="8" fill="url(#glow)" filter="url(#blur)"/>
47-
<circle cx="100" cy="162" r="3" fill="#22d3ee" class="facility-dot" data-facility="als" style="cursor:pointer;"/>
48-
<!-- CHESS -->
49-
<circle cx="215" cy="155" r="8" fill="url(#glow)" filter="url(#blur)"/>
50-
<circle cx="215" cy="155" r="3" fill="#22d3ee" class="facility-dot" data-facility="chess" style="cursor:pointer;"/>
51-
<!-- CLS -->
52-
<circle cx="135" cy="120" r="8" fill="url(#glow)" filter="url(#blur)"/>
53-
<circle cx="135" cy="120" r="3" fill="#22d3ee" class="facility-dot" data-facility="cls" style="cursor:pointer;"/>
15+
<!-- Connection lines from Boston -->
16+
<g stroke="#22d3ee" stroke-width="0.8" stroke-opacity="0.15" stroke-dasharray="6,4">
17+
<line x1="295" y1="235" x2="530" y2="210"/>
18+
<line x1="295" y1="235" x2="505" y2="195"/>
19+
<line x1="295" y1="235" x2="520" y2="205"/>
20+
<line x1="295" y1="235" x2="540" y2="185"/>
21+
<line x1="295" y1="235" x2="555" y2="215"/>
22+
<line x1="295" y1="235" x2="560" y2="200"/>
23+
<line x1="295" y1="235" x2="265" y2="235"/>
24+
<line x1="295" y1="235" x2="210" y2="225"/>
25+
<line x1="295" y1="235" x2="155" y2="230"/>
26+
<line x1="295" y1="235" x2="285" y2="225"/>
27+
<line x1="295" y1="235" x2="230" y2="175"/>
28+
</g>
29+
5430
<!-- Boston (home) -->
55-
<circle cx="225" cy="160" r="12" fill="url(#glow)" filter="url(#blur)"/>
56-
<circle cx="225" cy="160" r="4" fill="#f0f0f0" style="cursor:pointer;" class="facility-dot" data-facility="home"/>
57-
<!-- ESRF -->
58-
<circle cx="487" cy="128" r="8" fill="url(#glow)" filter="url(#blur)"/>
59-
<circle cx="487" cy="128" r="3" fill="#22d3ee" class="facility-dot" data-facility="esrf" style="cursor:pointer;"/>
60-
<!-- Diamond -->
61-
<circle cx="435" cy="105" r="8" fill="url(#glow)" filter="url(#blur)"/>
62-
<circle cx="435" cy="105" r="3" fill="#22d3ee" class="facility-dot" data-facility="diamond" style="cursor:pointer;"/>
63-
<!-- SOLEIL -->
64-
<circle cx="460" cy="125" r="8" fill="url(#glow)" filter="url(#blur)"/>
65-
<circle cx="460" cy="125" r="3" fill="#22d3ee" class="facility-dot" data-facility="soleil" style="cursor:pointer;"/>
66-
<!-- MAX IV -->
67-
<circle cx="485" cy="75" r="8" fill="url(#glow)" filter="url(#blur)"/>
68-
<circle cx="485" cy="75" r="3" fill="#22d3ee" class="facility-dot" data-facility="maxiv" style="cursor:pointer;"/>
69-
<!-- Elettra/TeraFERMI -->
70-
<circle cx="480" cy="145" r="8" fill="url(#glow)" filter="url(#blur)"/>
71-
<circle cx="480" cy="145" r="3" fill="#22d3ee" class="facility-dot" data-facility="elettra" style="cursor:pointer;"/>
72-
<!-- HZDR/TELBE -->
73-
<circle cx="500" cy="105" r="8" fill="url(#glow)" filter="url(#blur)"/>
74-
<circle cx="500" cy="105" r="3" fill="#22d3ee" class="facility-dot" data-facility="telbe" style="cursor:pointer;"/>
31+
<circle cx="295" cy="235" r="14" fill="url(#glow)"/>
32+
<circle cx="295" cy="235" r="5" fill="#f0f0f0" class="facility-dot" data-facility="home" style="cursor:pointer;"/>
33+
34+
<!-- NSLS-II (Long Island, NY) -->
35+
<circle cx="290" cy="237" r="10" fill="url(#glow)"/>
36+
<circle cx="290" cy="237" r="4" fill="#22d3ee" class="facility-dot" data-facility="nsls2" style="cursor:pointer;"/>
37+
38+
<!-- APS (Chicago area) -->
39+
<circle cx="265" cy="230" r="10" fill="url(#glow)"/>
40+
<circle cx="265" cy="230" r="4" fill="#22d3ee" class="facility-dot" data-facility="aps" style="cursor:pointer;"/>
41+
42+
<!-- ALS (Bay Area, CA) -->
43+
<circle cx="155" cy="235" r="10" fill="url(#glow)"/>
44+
<circle cx="155" cy="235" r="4" fill="#22d3ee" class="facility-dot" data-facility="als" style="cursor:pointer;"/>
45+
46+
<!-- CHESS (Ithaca, NY) -->
47+
<circle cx="285" cy="228" r="10" fill="url(#glow)"/>
48+
<circle cx="285" cy="228" r="4" fill="#22d3ee" class="facility-dot" data-facility="chess" style="cursor:pointer;"/>
49+
50+
<!-- CLS (Saskatoon, Canada) -->
51+
<circle cx="230" cy="175" r="10" fill="url(#glow)"/>
52+
<circle cx="230" cy="175" r="4" fill="#22d3ee" class="facility-dot" data-facility="cls" style="cursor:pointer;"/>
53+
54+
<!-- ESRF (Grenoble, France) -->
55+
<circle cx="530" cy="215" r="10" fill="url(#glow)"/>
56+
<circle cx="530" cy="215" r="4" fill="#22d3ee" class="facility-dot" data-facility="esrf" style="cursor:pointer;"/>
57+
58+
<!-- Diamond (Oxfordshire, UK) -->
59+
<circle cx="505" cy="198" r="10" fill="url(#glow)"/>
60+
<circle cx="505" cy="198" r="4" fill="#22d3ee" class="facility-dot" data-facility="diamond" style="cursor:pointer;"/>
61+
62+
<!-- SOLEIL (Paris area, France) -->
63+
<circle cx="520" cy="207" r="10" fill="url(#glow)"/>
64+
<circle cx="520" cy="207" r="4" fill="#22d3ee" class="facility-dot" data-facility="soleil" style="cursor:pointer;"/>
65+
66+
<!-- MAX IV (Lund, Sweden) -->
67+
<circle cx="540" cy="185" r="10" fill="url(#glow)"/>
68+
<circle cx="540" cy="185" r="4" fill="#22d3ee" class="facility-dot" data-facility="maxiv" style="cursor:pointer;"/>
69+
70+
<!-- Elettra/TeraFERMI (Trieste, Italy) -->
71+
<circle cx="555" cy="218" r="10" fill="url(#glow)"/>
72+
<circle cx="555" cy="218" r="4" fill="#22d3ee" class="facility-dot" data-facility="elettra" style="cursor:pointer;"/>
73+
74+
<!-- TELBE/HZDR (Dresden, Germany) -->
75+
<circle cx="545" cy="200" r="10" fill="url(#glow)"/>
76+
<circle cx="545" cy="200" r="4" fill="#22d3ee" class="facility-dot" data-facility="telbe" style="cursor:pointer;"/>
7577
</svg>
7678

7779
<!-- Tooltip -->
78-
<div id="map-tooltip" style="display:none;position:absolute;background:rgba(10,10,10,0.95);border:1px solid #22d3ee;border-radius:8px;padding:12px 16px;color:#fafafa;font-size:0.85rem;max-width:300px;pointer-events:none;z-index:10;backdrop-filter:blur(8px);box-shadow:0 8px 32px rgba(0,0,0,0.5);">
80+
<div id="map-tooltip" style="display:none;position:absolute;background:rgba(10,10,10,0.95);border:1px solid #22d3ee;border-radius:8px;padding:12px 16px;color:#fafafa;font-size:0.85rem;max-width:320px;pointer-events:none;z-index:10;backdrop-filter:blur(8px);box-shadow:0 8px 32px rgba(0,0,0,0.5);">
7981
</div>
8082
</div>
8183

@@ -85,15 +87,15 @@
8587
home: {name: "Northeastern University", location: "Boston, MA", detail: "Home institution — DeLTA Lab, Quantum Matter and Sensing Institute"},
8688
nsls2: {name: "NSLS-II", location: "Brookhaven National Laboratory, NY", detail: "Beamlines: 2-ID, SIX · RIXS on altermagnets, vdW magnets, nickelates, frustrated magnets"},
8789
aps: {name: "Advanced Photon Source", location: "Argonne National Laboratory, IL", detail: "Sector 27 · tr-RIXS on Kitaev spin liquids"},
88-
als: {name: "Advanced Light Source", location: "Lawrence Berkeley National Laboratory, CA", detail: "Beamline 4.0.2 · XMCD on altermagnetic thin films"},
89-
chess: {name: "CHESS", location: "Cornell University, NY", detail: "PIPOXS, QM2 · XRD and diffraction on quantum materials"},
90-
cls: {name: "Canadian Light Source", location: "Saskatoon, Canada", detail: "BXDS · X-ray diffraction studies"},
90+
als: {name: "Advanced Light Source", location: "LBNL, Berkeley, CA", detail: "Beamline 4.0.2 · XMCD on altermagnetic thin films"},
91+
chess: {name: "CHESS", location: "Cornell University, Ithaca, NY", detail: "PIPOXS, QM2 · XRD and diffraction on quantum materials"},
92+
cls: {name: "Canadian Light Source", location: "Saskatoon, Saskatchewan", detail: "BXDS · X-ray diffraction studies"},
9193
esrf: {name: "ESRF", location: "Grenoble, France", detail: "ID32 · High-resolution RIXS on altermagnets and vdW magnets"},
9294
diamond: {name: "Diamond Light Source", location: "Oxfordshire, UK", detail: "I21, I10 · RIXS and XMCD on MnTe, CrSb, and Cr-based vdW magnets"},
9395
soleil: {name: "SOLEIL", location: "Saint-Aubin, France", detail: "DEIMOS, SEXTANTS · XMCD and RIXS on altermagnetic and vdW systems"},
9496
maxiv: {name: "MAX IV", location: "Lund, Sweden", detail: "VERITAS · Soft X-ray RIXS on magnetic thin films"},
9597
elettra: {name: "Elettra / TeraFERMI", location: "Trieste, Italy", detail: "TeraFERMI FEL · Time-resolved THz absorption spectroscopy"},
96-
telbe: {name: "TELBE", location: "Helmholtz-Zentrum Dresden-Rossendorf, Germany", detail: "THz pump-probe and Higgs spectroscopy on superconductors and frustrated magnets"}
98+
telbe: {name: "TELBE", location: "HZDR, Dresden, Germany", detail: "THz pump-probe and Higgs spectroscopy on superconductors and frustrated magnets"}
9799
};
98100

99101
const tooltip = document.getElementById('map-tooltip');
@@ -103,15 +105,16 @@
103105
dot.addEventListener('mouseenter', function(e) {
104106
const f = facilities[this.dataset.facility];
105107
if (!f) return;
106-
tooltip.innerHTML = '<strong style="color:#22d3ee;font-size:0.95rem;">' + f.name + '</strong><br/><span style="color:#a1a1aa;font-size:0.8rem;">' + f.location + '</span><br/><span style="margin-top:4px;display:inline-block;">' + f.detail + '</span>';
108+
tooltip.innerHTML = '<strong style="color:#22d3ee;font-size:0.95rem;">' + f.name + '</strong><br><span style="color:#a1a1aa;font-size:0.8rem;">' + f.location + '</span><br><span style="margin-top:4px;display:inline-block;">' + f.detail + '</span>';
107109
tooltip.style.display = 'block';
108110

109111
const rect = mapContainer.getBoundingClientRect();
110112
const dotRect = this.getBoundingClientRect();
111113
let left = dotRect.left - rect.left + 15;
112114
let top = dotRect.top - rect.top - 10;
113115

114-
if (left + 300 > rect.width) left = left - 320;
116+
if (left + 320 > rect.width) left = left - 340;
117+
if (top < 0) top = 10;
115118
tooltip.style.left = left + 'px';
116119
tooltip.style.top = top + 'px';
117120
});
@@ -120,13 +123,13 @@
120123
tooltip.style.display = 'none';
121124
});
122125

123-
// Pulse animation on hover
124126
dot.addEventListener('mouseenter', function() {
125-
this.setAttribute('r', '5');
126-
this.style.filter = 'drop-shadow(0 0 6px #22d3ee)';
127+
this.setAttribute('r', '6');
128+
this.style.filter = 'drop-shadow(0 0 8px #22d3ee)';
129+
this.style.transition = 'all 0.2s ease';
127130
});
128131
dot.addEventListener('mouseleave', function() {
129-
this.setAttribute('r', '3');
132+
this.setAttribute('r', '4');
130133
this.style.filter = '';
131134
});
132135
});

0 commit comments

Comments
 (0)