-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy path2026hackathon.html
More file actions
537 lines (480 loc) · 23 KB
/
Copy path2026hackathon.html
File metadata and controls
537 lines (480 loc) · 23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LSST is here! DP2 Hackathon @ University of Delaware</title>
<meta name="description" content="A two-day hackathon at the University of Delaware to make astronomical discoveries in Rubin Observatory's LSST Data Preview 2. August 18–19, 2026.">
<style>
:root {
--pop: #00BaBc;
--ink: #1F2121;
--muted: #565656;
--faint: #373739;
--accent: #058B8C;
--accent-dark: #0c4a47;
--rule: #e6e6e6;
--bg: #F5F5F5;
--wrap: 850px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
margin: 0;
border-top: 5px solid var(--pop);
background: var(--bg);
color: var(--ink);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
font-size: 17px;
line-height: 1.65;
-webkit-font-smoothing: antialiased;
}
.wrap {
max-width: var(--wrap);
margin: 0 auto;
padding: 0 24px;
}
a { color: var(--accent); }
a:hover { color: var(--accent-dark); }
.topbar {
border-bottom: 1px solid var(--rule);
}
.topbar .wrap {
display: flex;
flex-wrap: wrap;
align-items: baseline;
justify-content: center;
gap: 8px 20px;
padding-top: 18px;
padding-bottom: 18px;
}
.navlinks {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 8px 22px;
font-size: 0.92rem;
}
.navlinks a {
text-decoration: none;
color: var(--muted);
}
.navlinks a:hover { color: var(--accent); }
.hero {
padding: 76px 0 60px;
border-bottom: 1px solid var(--rule);
}
.hero .eyebrow {
margin: 0 0 10px;
font-size: 0.8rem;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--accent);
}
.hero h1 {
margin: 0 0 14px;
font-size: 2.5rem;
line-height: 1.1;
letter-spacing: -0.015em;
font-weight: 700;
}
.hero .meta {
margin: 0 0 22px;
color: var(--accent);
font-size: 1.05rem;
font-weight: 500;
}
.hero p.lede {
margin: 0 0 30px;
font-size: 1.15rem;
color: var(--muted);
max-width: 34em;
}
.hero-img-container {
margin: 44px auto 0;
max-width: 650px; /* Constrains it so it doesn't get overly massive on desktop */
text-align: center;
}
.hero-img-container img {
display: block;
width: 100%;
height: auto;
aspect-ratio: 1.2194;
margin: 0 auto;
border-radius: 8px;
box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}
.btn {
display: inline-block;
background: var(--accent);
color: #fff;
text-decoration: none;
font-size: 1rem;
font-weight: 500;
padding: 12px 26px;
border-radius: 4px;
border: 1px solid var(--accent);
}
.btn:hover { background: var(--accent-dark); border-color: var(--accent-dark); color: #fff; }
.btn:focus-visible { outline: 3px solid #a9c2e0; outline-offset: 2px; }
.note {
margin: 16px 0 0;
font-size: 0.9rem;
color: var(--faint);
}
section { padding: 56px 0; border-bottom: 1px solid var(--rule); }
section h2 {
margin: 0 0 22px;
font-size: 1.35rem;
font-weight: 700;
letter-spacing: -0.01em;
}
section p { margin: 0 0 18px; }
section p:last-child { margin-bottom: 0; }
.projects { margin: 0; padding-left: 1.2em; }
.projects li { margin: 0 0 12px; }
.projects li:last-child { margin-bottom: 0; }
/* Ruled rows, same idiom as the agenda slots and participant list. */
.resources-lead { margin: 34px 0 18px; }
.resources {
margin: 0;
padding: 0;
list-style: none;
}
.resources li {
padding: 10px 0;
border-top: 1px solid var(--rule);
font-size: 0.96rem;
}
.resources li:last-child { border-bottom: 1px solid var(--rule); }
.resources a { font-weight: 600; }
.resources .what { color: var(--faint); }
.participants {
margin: 0;
padding: 0;
list-style: none;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 0 28px;
}
.participants li {
padding: 7px 0;
border-top: 1px solid var(--rule);
font-size: 0.96rem;
}
/* Collapsed wrapper for the published Google Doc; the iframe is only
mounted once someone opens it, so the page stays quick to load. */
.doc-embed {
margin: 24px 0 0;
border: 1px solid var(--rule);
border-radius: 4px;
background: #fff;
}
.doc-embed > summary {
padding: 13px 18px;
cursor: pointer;
font-size: 0.96rem;
font-weight: 600;
color: var(--accent);
list-style: none;
}
.doc-embed > summary::-webkit-details-marker { display: none; }
.doc-embed > summary::before {
content: "\25B8";
display: inline-block;
margin-right: 10px;
transition: transform 0.15s ease;
}
.doc-embed[open] > summary::before { transform: rotate(90deg); }
.doc-embed > summary:hover { color: var(--accent-dark); }
.doc-embed > summary:focus-visible { outline: 3px solid #a9c2e0; outline-offset: -3px; }
.doc-embed iframe {
display: block;
width: 100%;
height: 640px;
border: 0;
border-top: 1px solid var(--rule);
}
.agenda-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
}
.day h3 {
margin: 0 0 4px;
font-size: 1.05rem;
font-weight: 600;
}
.day .date {
margin: 0 0 16px;
font-size: 0.85rem;
color: var(--faint);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.schedule { margin: 0; }
.slot {
display: grid;
grid-template-columns: 68px 1fr;
gap: 12px;
padding: 7px 0;
border-top: 1px solid var(--rule);
font-size: 0.96rem;
}
.slot:first-child { border-top: none; }
.slot .time {
color: var(--accent);
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.slot.break .desc { color: var(--faint); }
footer {
padding: 44px 0 60px;
font-size: 0.9rem;
color: var(--muted);
}
footer .logos {
display: flex;
align-items: center;
gap: 26px;
margin: 0 0 28px;
}
footer .logos img {
height: 38px;
width: auto;
}
footer .org-label {
color: var(--faint);
text-transform: uppercase;
letter-spacing: 0.05em;
font-size: 0.78rem;
margin: 0 0 6px;
}
footer p { margin: 0 0 8px; }
/* Funder acknowledgement — kept verbatim and a shade darker than the
surrounding footer text so it stays legible. */
footer .ack { color: var(--ink); }
@media (max-width: 620px) {
.hero h1 { font-size: 2rem; }
.hero { padding: 52px 0 44px; }
.agenda-grid { grid-template-columns: 1fr; gap: 36px; }
.doc-embed iframe { height: 460px; }
}
</style>
</head>
<body>
<header class="topbar">
<div class="wrap">
<nav class="navlinks">
<a href="#about">About</a>
<a href="#agenda">Agenda</a>
<a href="#projects">Projects</a>
<a href="#participants">Participants</a>
<a href="#local-info">Local Info</a>
</nav>
</div>
</header>
<main id="top">
<div class="hero">
<div class="wrap">
<p class="eyebrow">FASTLab presents</p>
<h1><em>LSST is here!</em> DP2 Hackathon</h1>
<p class="meta">University of Delaware · August 18–19, 2026</p>
<p class="meta"><strong>Meeting Venue: <a href="https://www.google.com/url?q=https://maps.app.goo.gl/eWCy7riFgmzAtyRK7&sa=D&source=editors&ust=1786937047090837&usg=AOvVaw0C34gZBqMdn_psupbLP9NG">Room 307, Harker ISE Lab (221 Academy St, Newark DE)</a></strong></p>
<p class="lede">Two day hackathon on Rubin Observatory's LSST Data Preview 2 — we will explore the new data, and discover objects from transients and variable stars to brown dwarfs while making new collaborations!</p>
<!-- <a class="btn" id="register" href="https://forms.gle/cjh9HKJfdDVNCdEGA">Register</a> -->
<p class="note">Registration closed on August 10, 2026. Travel support is available. Participants should be Rubin data rights holders and bring a laptop.</p>
</div>
<section id="local-info">
<div class="wrap">
<h2>Local Information</h2>
<p>How to get here and settle in: the venue, travel information, parking, lodging within walking distance of campus, and where to eat in Newark. This list has been kept on a Google Doc and will be updated frequently. We encourage taking a train over a flight if you can!</p>
<a class="btn" href="https://docs.google.com/document/d/10-9XmRzb-m_FCxqX6dcnKVHQ4k0x1qyCyvookn4hTos/edit?usp=sharing">Open in Google Docs</a>
<details class="doc-embed" id="local-info-doc">
<summary>Read it without leaving this page here</summary>
<iframe
title="Local information for the DP2 Hackathon: venue, travel, parking, lodging and food"
data-src="https://docs.google.com/document/d/e/2PACX-1vShQ5LmPkFKXTkEn5-xoA81d_NB9BgS_eal1fSnEzSOFIAhtww7geBM6v7Nr5dMWnh1zs3-sdATEr7h/pub?embedded=true"
loading="lazy"></iframe>
</details>
<p class="note">Recommendations are welcome!</p>
</div>
</section>
<section id="agenda">
<div class="wrap">
<h2>Agenda</h2>
<div class="agenda-grid">
<div class="day">
<h3>Day 1</h3>
<p class="date">Tuesday, August 18</p>
<div class="schedule">
<div class="slot"><span class="time">9:00</span><span class="desc">Welcome & check-in</span></div>
<div class="slot"><span class="time">9:30</span><span class="desc">Goals, logistics & project overview</span></div>
<div class="slot"><span class="time">10:00</span><span class="desc">LINCC Frameworks tutorials: Hyrax, LSDB, HATS</span></div>
<div class="slot break"><span class="time">11:00</span><span class="desc">Coffee break</span></div>
<div class="slot"><span class="time">11:30</span><span class="desc">Form working groups; begin discussions</span></div>
<div class="slot break"><span class="time">12:30</span><span class="desc">Lunch</span></div>
<div class="slot"><span class="time">1:30</span><span class="desc">Working session</span></div>
<div class="slot break"><span class="time">3:00</span><span class="desc">Coffee break</span></div>
<div class="slot"><span class="time">3:30</span><span class="desc">Working session</span></div>
<div class="slot"><span class="time">4:30</span><span class="desc">Prepare short progress slides</span></div>
<div class="slot"><span class="time">4:45</span><span class="desc">Lightning presentations</span></div>
<div class="slot"><span class="time">5:00</span><span class="desc">End</span></div>
</div>
</div>
<div class="day">
<h3>Day 2</h3>
<p class="date">Wednesday, August 19</p>
<div class="schedule">
<div class="slot"><span class="time">9:30</span><span class="desc">Working session</span></div>
<div class="slot break"><span class="time">11:00</span><span class="desc">Coffee break</span></div>
<div class="slot"><span class="time">11:30</span><span class="desc">Working session</span></div>
<div class="slot break"><span class="time">12:30</span><span class="desc">Lunch</span></div>
<div class="slot"><span class="time">1:30</span><span class="desc">Report back; plan the afternoon</span></div>
<div class="slot"><span class="time">2:00</span><span class="desc">Working session</span></div>
<div class="slot break"><span class="time">3:00</span><span class="desc">Coffee break</span></div>
<div class="slot"><span class="time">3:30</span><span class="desc">Working session</span></div>
<div class="slot"><span class="time">4:30</span><span class="desc">Summarize findings & next steps</span></div>
<div class="slot"><span class="time">4:45</span><span class="desc">Wrap-up & follow-up assignments</span></div>
<div class="slot"><span class="time">5:00</span><span class="desc">End</span></div>
</div>
</div>
</div>
</div>
</section>
<section id="projects">
<div class="wrap">
<h2>Projects</h2>
<p>After a morning of tutorials, participants will form small groups around hack projects. You're welcome to bring your own ideas, and some examples include:</p>
<ul class="projects">
<li><strong>Anomaly detection & light-curve data mining with Hyrax</strong></li>
<p> We plan on using in-house models like <a href="https://github.com/sidchaini/NightLANP">NightLANP</a> and other machine learning models that attendees may bring and mining the neural representations to find unusual patterns and anomalies.</p>
<li><strong>Recovery of known objects & LSST catalog augmentationwith LSDB/HATS.</strong></li>
<p> We plan to use crossmatched DP2 with ZTF, Gaia, and other relevant surveys and catalogs for transient and cool dwarf science within LSDB/HATS. We want to crossmatch catalogs of known ultracool dwarfs to leverage DP2’s depth and build a database for transients to produce training sets.</p>
<li><strong>Any other project you brainstorm</strong></li>
<p> You can propose it on the sign-up form or even bring it in person :) </p>
</ul>
<p class="resources-lead">These two resources may help with planning the hackathon pitch before you arrive:</p>
<ul class="resources">
<li><a href="https://docs.google.com/document/d/12acWsZCY3Rm3MaGmt_xl8lPk_gF0sIusTmwXmjMx8xI/edit?usp=sharing">How to pitch a project</a> <span class="what"><br>What to think through ahead of time: the data you will need, your goals, and what a useful result would look like.</span></li>
<li><a href="https://docs.google.com/presentation/d/1aS7AUNZAdwehJ8nGGhYpwD1UsPTpYel95FDkybZ0XWc/edit?usp=sharing">Pitch slide deck</a> <span class="what"><br>Add a slide for your project so the group can see it on day one.</span></li>
</ul>
</div>
</section>
<section id="participants">
<div class="wrap">
<h2>Registered Participants (<span id="participants-count"></span>)</h2>
<ul class="participants" id="participants-list">
<li>Koji Shukawa</li>
<li>Xiaolong Li</li>
<li>Nikoo Hosseininezhad</li>
<li>Kyle Neumann</li>
<li>Alex Malz</li>
<li>John Mora</li>
<li>Jun Yang</li>
<li>Ayan Mitra</li>
<li>Ena Chia</li>
<li>Behzad</li>
<li>Karen Daiana Nowogrodzki</li>
<li>Jacen Nisbet</li>
<li>Jenna Karcheski</li>
<li>Somayeh Khakpash</li>
<li>Mathilda Nilsson (OC)</li>
<li>Ally Baldelli (OC)</li>
<li>Shar Daniels (OC)</li>
<li>Siddharth Chaini (OC)</li>
<li>Easton Honaker (OC)</li>
<li>Tatiana Acero Cuellar (OC)</li>
<li>John Gizis (OC)</li>
<li>Federica Bianco (OC)</li>
</ul>
</div>
</section>
<section id="code-of-conduct">
<div class="wrap">
<h2>Code of Conduct</h2>
<p>We will be following the <a href="https://lsstdiscoveryalliance.org/lsst-discovery-alliance-programs/lincc-frameworks/lincc-frameworks-code-conduct/">LINCC Frameworks Code of Conduct</a>:</p>
<blockquote>
<p>The LINCC Frameworks team is dedicated to providing an inclusive environment for all people. Our goal is to build an inclusive and successful community composed of, but not limited to, the LINCC Frameworks team, incubator participants, and collaborators. We expect all participating members of this community to follow these guidelines when interacting with others both inside and outside of our community.</p>
<p>This code of conduct applies to all community situations online and offline, including mailing lists, forums, social media, conferences, meetings, associated social events, and one-to-one interactions. Consequences for violations will depend on the situation and could ( if needed) include discontinuation of collaborative relationships or other significant consequences to preserve the inclusive collaborative environment that is our goal.</p>
<p>
<ul>
<li> <strong> We pledge to treat all people with respect </strong> and provide a harassment- and bullying-free environment, regardless of personal attributes, including but not limited to sex, sexual orientation and/or gender identity, disability, physical appearance, body size, race, nationality, ethnicity, politics, and religion. In particular, sexual language and imagery, sexist, racist, or otherwise exclusionary jokes are not appropriate.
<li> <strong>We pledge to respect the work of others</strong> by recognizing acknowledgment/citation requests of original authors. As authors, we pledge to be explicit about how we want our own work to be cited or acknowledged. Team members may make significant contributions to collaborative projects, and we expect that the work of team members and the role of the LINCC Frameworks team/incubator will be properly attributed in any related talks, publications, software releases, etc.
<li> <strong>We pledge to welcome questions and answer them respectfully</strong>, paying particular attention to those new to the community. We pledge to provide respectful criticisms and feedback in forums, especially in discussion threads resulting from code contributions.
<li> <strong>We pledge to be conscientious of the perceptions of the wider community</strong> and to respond to criticism respectfully. We will strive to model behaviors that encourage productive debate and disagreement, both within our community and where we are criticized. We will treat those outside our community with the same respect as people within our community.
<li> <strong>We pledge to help the entire community follow the code of conduct</strong> and not remain silent when we see violations of the code of conduct. We will take action when members of our community violate this code, such as contacting one of the <a href="https://lsstdiscoveryalliance.org/lsst-discovery-alliance-programs/lincc-frameworks/lincc-frameworks-team/"> LINCC Frameworks leadership team</a> or talking privately with the person. Note that, due to mandatory reporting requirements, the leadership team may be required to report certain types of misconduct when they involve individuals at their own institutions. We pledge to act in good faith when reporting or discussing violations of the code of conduct and recognize that retaliation against anybody for making or discussing a report is itself a violation of this code.
We strive to be good citizens of all groups in the LSST science community and beyond with which we engage, including abiding by their Codes of Conduct and other policies in interactions with them.
</ul>
</p>
This code is adapted from the AstroPy code of conduct and is licensed under a <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
<p> Updated: May 25, 2023</p>
</blockquote>
</div>
</section>
<section id="about">
<div class="wrap">
<h2>About</h2>
<p>The Legacy Survey of Space and Time (LSST) has started at the Vera C. Rubin Observatory in Chile. Ahead of the full data release, the Rubin team is publishing <strong>Data Preview 2 (DP2)</strong> on July 27, 2026 — an early look at the survey's data.</p>
<p>Over the two day workshop at the University of Delaware, participants will work together in small groups to explore DP2 using LINCC Frameworks tools (Hyrax, LSDB, HATS) on the Rubin Science Platform. We especially welcome early-career researchers to join us at the University of Delaware.</p>
</div>
<div class="hero-img-container">
<img src="2026hackathon.png" alt="2026 LSST DP2 Hackathon graphic">
</div>
</div>
</section>
</main>
<footer>
<div class="wrap">
<div class="logos" id="logos-container">
<img src="https://upload.wikimedia.org/wikipedia/commons/b/b3/University_of_Delaware_wordmark.svg" alt="University of Delaware">
<img src="https://lsstdiscoveryalliance.org/wp-content/uploads/2023/10/lsst-discovery-alliance-logo.svg" alt="LSST Discovery Alliance">
<img src="https://noirlab.edu/public/media/archives/logos/original_trans/logo063.png" alt="Vera C. Rubin Observatory">
<img src="https://fedhere.github.io/FASTlab/images/fastlablogo.jpg" alt="FASTLab">
</div>
<p class="org-label">Organizers</p>
<p id="organizers-list">Shar Daniels · Siddharth Chaini · Easton Honaker · Tatiana Acero Cuellar · Mathilda Nilsson · Ally Baldelli · John Gizis · Federica Bianco</p>
<p>University of Delaware, Department of Physics & Astronomy</p>
<p class="ack">This event is supported by Schmidt Sciences and LSST Discovery Alliance.</p>
<p>Contact <a href="mailto:shard@udel.edu">Shar Daniels</a> for questions.</p>
</div>
</footer>
<script>
// Shuffle the names every load!
document.addEventListener("DOMContentLoaded", function() {
// Fisher-Yates, in place — nobody gets permanent top billing.
function shuffle(items) {
for (let i = items.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[items[i], items[j]] = [items[j], items[i]];
}
return items;
}
const namesElement = document.getElementById('organizers-list');
if (namesElement) {
const names = shuffle(namesElement.textContent.split(' · '));
namesElement.textContent = names.join(' · ');
}
// Participants stay in the order they are listed in the markup; only the
// count is filled in, straight from the list, so it cannot drift.
const participantsElement = document.getElementById('participants-list');
const countElement = document.getElementById('participants-count');
if (participantsElement && countElement) {
countElement.textContent = participantsElement.children.length;
}
// The published doc is a heavy embed, so only load it once it is opened.
const docDetails = document.getElementById('local-info-doc');
if (docDetails) {
docDetails.addEventListener('toggle', function() {
const frame = docDetails.querySelector('iframe[data-src]');
if (docDetails.open && frame) {
frame.src = frame.dataset.src;
frame.removeAttribute('data-src');
}
});
}
});
</script>
</body>
</html>