| 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 %}
- 0{{ forloop.index }}{{ t.name }} {%- endfor %}
- Before Swarm Lab
- 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 & 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>