Skip to content

Latest commit

 

History

History
108 lines (102 loc) · 5.74 KB

research.md

File metadata and controls

108 lines (102 loc) · 5.74 KB
title Research themes
permalink /research/
eyebrow Research
lede How can fleets of robots and AI agents learn together, understand what they see, and prove they got it right? We tackle it in five themes: swarm coordination, edge–cloud AI, neuro-symbolic video, trustworthy ML, and time series.

{%- comment -%} Data: _data/themes.yml (order, text, representative keys) + themes field in the bib (first slug = primary). Lab era = year >= 2021, "Before Swarm Lab" = year < 2021, other = Earlier & other work. Entry markup comes from _layouts/bib.html. representative keys must be lab-era papers whose primary theme is this theme. {%- endcomment -%}

    {%- for t in site.data.themes %}
  1. 0{{ forloop.index }}{{ t.name }}
  2. {%- endfor %}
  3. Before Swarm Lab
  4. Earlier & other work
{%- for t in site.data.themes %} {%- capture n_lab %}{% bibliography_count --query @*[themes^={{ t.slug }}, year>=2021] %}{% endcapture %} {%- assign n = n_lab | plus: 0 %}
{% include theme_art.html slug=t.slug class="theme-section__art" %}
  <header class="theme-section__head">
    <p class="eyebrow">Theme 0{{ forloop.index }}</p>
    <h2 class="theme-section__title" id="{{ t.slug }}-title">{{ t.name }}</h2>
    <p class="theme-section__headline">{{ t.headline }}</p>
    <p class="theme-section__blurb">{{ t.blurb }}</p>
  </header>

  {%- comment -%} Selected = the theme's `representative` keys (most relevant, top venues); the rest of the lab-era papers are collapsed. {%- endcomment -%}
  {%- assign sel = "" %}{%- assign excl = "" %}
  {%- for k in t.representative %}
    {%- unless forloop.first %}{% assign sel = sel | append: " || " %}{% endunless %}
    {%- assign sel = sel | append: "key=" | append: k %}
    {%- assign excl = excl | append: ", key!=" | append: k %}
  {%- endfor %}
  <h3 class="theme-section__label">Selected papers <span class="theme-section__count">{{ n }} {% if n == 1 %}paper{% else %}papers{% endif %} since 2021</span></h3>
  {% bibliography --group_by none --query @*[{{ sel }}] %}
  {%- assign rest = n | minus: t.representative.size %}
  {%- if rest > 0 %}
  <details class="more">
    <summary class="more__summary"><span class="more__closed">Show {{ rest }} more</span><span class="more__open">Show fewer</span></summary>
    {% bibliography --group_by none --query @*[themes^={{ t.slug }}, year>=2021{{ excl }}] %}
  </details>
  {%- endif %}
</section>
{%- endfor %}

<section class="theme-section theme-section--archive" id="before-swarm-lab" aria-labelledby="before-title">
  <header class="theme-section__head">
    <p class="eyebrow">Archive</p>
    <h2 class="theme-section__title" id="before-title">Before Swarm Lab</h2>
    <p class="theme-section__blurb">Sandeep's work before the lab began in 2021, grouped by the theme it fed into.</p>
  </header>
  {%- for t in site.data.themes %}
  {%- capture n_old %}{% bibliography_count --query @*[themes^={{ t.slug }}, year<2021] %}{% endcapture %}
  {%- assign m = n_old | plus: 0 %}
  {%- if m > 0 %}
  <details class="more more--archive">
    <summary class="more__summary"><span class="more__name">{{ t.name }}</span><span class="theme-section__count">{{ m }} {% if m == 1 %}paper{% else %}papers{% endif %}</span></summary>
    {% bibliography --group_by none --query @*[themes^={{ t.slug }}, year<2021] %}
  </details>
  {%- endif %}
  {%- endfor %}
</section>

<section class="theme-section theme-section--archive" id="other-work" aria-labelledby="other-title">
  <header class="theme-section__head">
    <p class="eyebrow">Archive</p>
    <h2 class="theme-section__title" id="other-title">Earlier &amp; other work</h2>
    <p class="theme-section__blurb">Papers that sit outside the five themes.</p>
  </header>
  {% bibliography --group_by none --query @*[themes^=other] %}
</section>
<script> /* Progressive enhancement: highlight the index link of the section being read. */ (function () { if (!('IntersectionObserver' in window)) return; var links = [].slice.call(document.querySelectorAll('.research-index__link')); var map = {}; links.forEach(function (a) { map[a.getAttribute('href').slice(1)] = a; }); var first = links.length ? links[0].getAttribute('href').slice(1) : ''; var io = new IntersectionObserver(function (entries) { entries.forEach(function (e) { /* scrolled back above the first section: nothing is current */ if (!e.isIntersecting) { if (e.boundingClientRect.top > 0 && e.target.id === first) links.forEach(function (a) { a.removeAttribute('aria-current'); }); return; } links.forEach(function (a) { a.removeAttribute('aria-current'); }); var a = map[e.target.id]; if (a) { a.setAttribute('aria-current', 'true'); var bar = a.closest('.research-index'); if (bar && bar.scrollWidth > bar.clientWidth) bar.scrollTo({ left: a.offsetLeft - 16 }); } }); }, { rootMargin: '-25% 0px -65% 0px' }); Object.keys(map).forEach(function (id) { var s = document.getElementById(id); if (s) io.observe(s); }); })(); </script>