Hugo-based levitation.wales initial commit

This commit is contained in:
2026-09-04 13:48:04 +01:00
commit 74e7c4b3ed
55 changed files with 982 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
# Hugo build output and cache
/public/
/resources/
.hugo_build.lock
# OS / editor cruft
.DS_Store
*~
*.swp
\#*\#
+3
View File
@@ -0,0 +1,3 @@
[submodule "themes/hextra"]
path = themes/hextra
url = https://github.com/imfing/hextra
+58
View File
@@ -0,0 +1,58 @@
HUGO ?= hugo
.PHONY: all build serve clean upload upload-check citations
all: build
# Fetch + cache CSL-JSON for the DOIs in data/publications.yaml.
# Cached results are committed, so `build` needs no network.
# make citations # fetch anything not yet cached
# make citations FORCE=1 # re-fetch everything
citations:
./scripts/fetch-citations.sh
# The hextra theme is a git submodule. Pull it if a fresh clone left
# themes/hextra/ empty; the marker file means this runs only when needed.
themes/hextra/theme.toml:
git submodule update --init --recursive
build: themes/hextra/theme.toml
$(HUGO) --minify
serve: themes/hextra/theme.toml
$(HUGO) server --buildDrafts --navigateToChanged
clean:
rm -rf public resources
# --- deploy configuration -------------------------------------------------
DEPLOY_HOST := ovh
DEPLOY_PATH := /var/www/levitation/
# Sync/editor cruft that must never be pushed (patterns are quoted so the
# shell does not expand them before rsync sees them).
DEPLOY_JUNK := --exclude='.syncthing.*.tmp' --exclude='.stfolder' \
--exclude='.stversions' --exclude='.DS_Store'
# The deploy root holds Hugo output only (out-of-band content lives on its own
# subdomain, files.levitation.wales), so --delete is unconditionally safe.
# --no-owner --no-group: the deploy user cannot chown/chgrp on the server, so
# do not try to preserve ownership (avoids "chgrp ... Operation not permitted").
RSYNC := rsync -avz --delete --no-owner --no-group $(DEPLOY_JUNK)
# Preview exactly what a deploy would add, change, and delete, without touching
# the server.
upload-check: build
$(RSYNC) --dry-run ./public/ $(DEPLOY_HOST):$(DEPLOY_PATH)
# Deploy to the VPS, but only from the main branch. `citations` runs first so
# a freshly added DOI is never deployed from a stale cache (do not run under
# `make -j`, which would not guarantee that ordering).
upload: citations build
@branch=$$(git symbolic-ref --short HEAD); \
if [ "$$branch" = "main" ]; then \
$(RSYNC) ./public/ $(DEPLOY_HOST):$(DEPLOY_PATH); \
else \
echo "Refusing to upload from branch '$$branch' (deploy only from main)."; \
exit 1; \
fi
+18
View File
@@ -0,0 +1,18 @@
# levitation.wales
Hugo site (hextra theme) for the Swansea Levitated Optomechanics group. The source lives here and builds to static HTML deployed to a VPS.
## Local
- `make serve` : live preview on http://localhost:1313
- `make citations` : refresh cached citation metadata after editing `data/publications.yaml` (writes `data/citations/*.json`, which are committed so builds need no network)
- `make build` : `hugo --minify` into `public/`
## Deploy
- `make upload` : runs `citations`, then `build`, then rsyncs `public/` to `/var/www/levitation/` on the server. Only from the `main` branch. It uses `--delete`, so the docroot is an exact mirror of `public/`; that is safe because the docroot holds Hugo output only (out-of-band files have their own subdomain). It also passes `--no-owner --no-group`, since the deploy user (`james`, in the `www-data` group) is not root and cannot chgrp.
- `make upload-check` : dry-run preview of exactly what `upload` would change.
## Server
The site is served by Apache at `https://levitation.wales` from `/var/www/levitation/` on the VPS `ovh`.
+5
View File
@@ -0,0 +1,5 @@
+++
date = '{{ .Date }}'
draft = true
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+++
+33
View File
@@ -0,0 +1,33 @@
---
title: Levitated Optomechanics, Swansea
type: docs
toc: false
---
![Singleton Campus](/img/aerial_singleton.jpg)
The Optomechanics Group is based in the [Department of Physics](https://www.swansea.ac.uk/physics) within the [Faculty of Science and Engineering at Swansea University](https://www.swansea.ac.uk/science-and-engineering/).
Optomechanics uses light to control nanoscale motion, offers quantum-limited control over mesoscopic devices, and builds on mature techniques from cold atom physics.
Research within the group spans technology development, theoretical work on optical scattering and information, and Bayesian inference and experiment design for matterwave interferometry.
## Space and matterwave interferometry
<figure class="fig-float right logo">
<a href="http://maqro-mission.org"><img src="/img/MAQRO.png" alt="MAQRO"></a>
</figure>
Our interest in optomechanics in space began with **MAQRO**, a proposal for a medium-sized space mission to harness long free-fall times for matterwave interferometry with nanoparticles. James Bateman's work in levitated optomechanics started around 2012 as a postdoctoral researcher with [Prof. Hendrik Ulbricht](https://www.southampton.ac.uk/people/5x5wz8/professor-hendrik-ulbricht) at the University of Southampton, who introduced him to the field and to MAQRO. His work on near-field interferometry ([Bateman et al., *Nat. Commun.* **5**, 4788 (2014)](https://doi.org/10.1038/ncomms5788)) set out the scheme that MAQRO adopted as the basis for its matterwave interferometer. He is a co-author of the MAQRO research campaign paper ([Kaltenbaek et al., *Quantum Sci. Technol.* **8**, 014006 (2023)](https://doi.org/10.1088/2058-9565/aca3cd)) and served twice as a consulting scientist at ESA's ESTEC during the Concurrent Design Facility (CDF) study of the mission. MAQRO remains a long-term goal for fundamental physics in space. The group's current work focuses on nearer-term missions and experiments such as [LEVITAS]({{< relref "/projects/levitas" >}}), which develop the techniques and technology that a mission like MAQRO will draw upon. Further reading on MAQRO is collected on the [MAQRO publications page](http://maqro-mission.org/publications/).
## Past networks
The group was part of [**LeviNet**](https://www.levinet.org/) (Levitation Network for Advanced Quantum Technologies) and [**INSQT**](https://www.insqt.ac.uk/) (International Network for Space Quantum Technologies), which supported the UK and international levitated optomechanics and space quantum technologies communities. LeviNet supported [Shaun Laing]({{< relref "/people/shaun-laing">}}) on a Scientific Mission to the [Geraci Research Group at Northwestern University](https://faculty.wcas.northwestern.edu/andrew-geraci/index.html).
## Contact
Dr James Bateman, [j.e.bateman@swansea.ac.uk](mailto:j.e.bateman@swansea.ac.uk?subject=levitation.wales)
Department of Physics, Singleton Campus, Swansea University, SA2 8PP, UK
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d631502.8953186644!2d-4.35016157809458!3d51.80966541249503!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x486e8b31d8be10e1%3A0xa2f023ec6b323e44!2sSwansea%20University!5e0!3m2!1sen!2suk!4v1641591770296!5m2!1sen!2suk" width="100%" height="450" style="border:0;max-width:600px" allowfullscreen="" loading="lazy"></iframe>
+8
View File
@@ -0,0 +1,8 @@
---
title: People
weight: 20
---
{{< people >}}
{{< collaborators >}}
+17
View File
@@ -0,0 +1,17 @@
---
title: Chris Dawson
surname: Dawson
role: PhD 2020
alumnus: true
weight: 70
links:
- name: LinkedIn
url: https://www.linkedin.com/in/c-j-dawson/
---
**PhD student, to 2020**
{{< links >}}
Chris completed his PhD in the group in 2020, [*Spectral Analysis and Parameter Estimation in Levitated Optomechanics*](/publications/theses/2020_Chris_Dawson.pdf), with work on spectral estimation for levitated optomechanics (Dawson & Bateman, *J. Opt. Soc. Am. B* **36**, 1565 (2018)).
+25
View File
@@ -0,0 +1,25 @@
---
title: James Bateman
surname: Bateman
role: Group lead
weight: 10
links:
- name: ORCID
url: https://orcid.org/0000-0003-4885-2539
- name: LinkedIn
url: https://www.linkedin.com/in/james-bateman-549667122/
---
<figure class="fig-float right portrait">
<img src="photo.jpg" alt="James Bateman">
</figure>
**Group lead / principal investigator**
{{< links >}}
James leads the Optomechanics Group in the [Department of Physics](https://www.swansea.ac.uk/physics) at Swansea University. He is principal investigator on the group's current projects: [LEVITAS]({{< relref "/projects/levitas" >}}), [LOTIS]({{< relref "/projects/lotis" >}}), [OSIAN]({{< relref "/projects/osian" >}}), and [NAMIQOS]({{< relref "/projects/namiqos" >}}).
His research spans levitated optomechanics, matterwave interferometry, and Bayesian inference and experiment design, with a particular interest in taking levitated optomechanics into space.
**Contact:** [j.e.bateman@swansea.ac.uk](mailto:j.e.bateman@swansea.ac.uk)
Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

@@ -0,0 +1,17 @@
---
title: Karol Szuba-Jabłoński
surname: Szuba-Jablonski
role: Postdoctoral researcher
alumnus: true
weight: 65
links:
- name: LinkedIn
url: https://www.linkedin.com/in/karol-szuba-jablonski/
---
**Postdoctoral researcher**
{{< links >}}
Karol was a postdoctoral researcher in the group, working on [LOTIS]({{< relref "/projects/lotis" >}}).
+13
View File
@@ -0,0 +1,13 @@
---
title: Matthew Edmonds
surname: Edmonds
role: PhD candidate
weight: 30
---
**PhD candidate**
{{< links >}}
Matthew is a PhD candidate in the Optomechanics Group, working on [OSIAN]({{< relref "/projects/osian" >}}) (optomechanical sensing for inertial, accelerometry, and navigation).
+13
View File
@@ -0,0 +1,13 @@
---
title: Mobin Motaharifar
surname: Motaharifar
role: PhD candidate
weight: 40
---
**PhD candidate**
{{< links >}}
Mobin is a PhD candidate in the Optomechanics Group, working on [NAMIQOS]({{< relref "/projects/namiqos" >}}) (nanoparticle manipulation and integration for quantum optomechanical systems).
+15
View File
@@ -0,0 +1,15 @@
---
title: Rafał Gajewski
surname: Gajewski
role: Postdoctoral researcher
weight: 20
---
**Postdoctoral researcher**
{{< links >}}
Rafał completed his PhD in the group in 2024, *Backaction suppression in levitated optomechanics*, and works on the theory and experiment of levitated optomechanics for space sensing.
He is lead author of the group's work on backaction suppression using reflective boundaries ([*Phys. Rev. Research* **7**, 023041 (2025)](https://doi.org/10.1103/PhysRevResearch.7.023041)) and of the [LEVITAS]({{< relref "/projects/levitas" >}}) sensing concept ([*Quantum Sci. Technol.* **11**, 045034 (2026)](https://doi.org/10.1088/2058-9565/ae99fb)).
+16
View File
@@ -0,0 +1,16 @@
---
title: Shaun Laing
surname: Laing
role: Postdoctoral researcher
alumnus: true
weight: 60
---
**Postdoctoral researcher**
{{< links >}}
Shaun did his PhD in the group (2024, *Bayesian Inference and Collapse Models in Levitated Optomechanics*) and then continued as a postdoctoral researcher. His work centres on Bayesian inference and tests of fundamental physics with levitated systems.
Through LeviNet he undertook a Scientific Mission to the [Geraci Research Group at Northwestern University](https://faculty.wcas.northwestern.edu/andrew-geraci/index.html).
+8
View File
@@ -0,0 +1,8 @@
---
title: Projects
weight: 10
---
Current and recent projects in the group.
{{< projects >}}
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

+50
View File
@@ -0,0 +1,50 @@
---
title: "LEVITAS: Levitodynamics for Accurate Individual Particle Sensing in Space"
linkTitle: LEVITAS
weight: 10
math: true
---
**LEVITAS** is a research programme developing an in-situ sensor for the rarefied media of the upper atmosphere, exosphere, and wider solar system. It grew out of an idea within [LOTIS]({{< relref "lotis" >}}), with partners at Warwick and Strathclyde.
## Concept
LEVITAS uses a single optically trapped nanoparticle, exposed to the space environment, as a sensor. Each gas particle from the surrounding medium that strikes it delivers a small momentum kick, and from the recoil the momentum of this impact is inferred.
<figure class="fig-float right">
<img src="concept.png" alt="Trapped nanoparticle struck by incoming neutral particles">
<figcaption>A single optically trapped nanoparticle is struck by neutral particles from the surrounding medium.</figcaption>
</figure>
The nanoparticle's motion is continuously monitored with sufficient bandwidth and precision that these individual impact events are resolved.
<figure class="fig-float left">
<img src="detection.png" alt="Individual impacts resolved as momentum kicks in the tracked motion">
<figcaption>Individual impacts (dashed lines) appear as momentum kicks in the tracked motion, and the momentum of each impact can be estimated.</figcaption>
</figure>
From the record of impacts, the density, velocity, temperature, and composition of the surrounding medium can be estimated. LEVITAS works from low Earth orbit out to exospheric distances, and reaches into very different regions of momentum space, for example the high-velocity neutral gas from the interstellar medium that penetrates the heliosphere and flows through the solar system.
<figure class="fig-center">
<img src="histogram.png" alt="Recoil-momentum histogram of individual impacts, resolving atmospheric species">
<figcaption>Recoil momenta of individual impacts in a simulated 600 km July orbit, resolving atmospheric species (H, He, N, O, and N₂ and O₂ in the inset). Grey is the simulated data; the dashed curve is the maximum-likelihood fit.</figcaption>
</figure>
## Studies
- **ESA** funded the *QSEO design study* for its Quantum Sensors for Earth Observation (QSEO) initiative, which established the LEVITAS concept and led to the paper below.
- A follow-on **experimental study** is in preparation.
## Paper
R. Gajewski, R. T. Desai, J. Bateman, B. Eliasson, D. K. L. Oi, and A. Datta,
*LEVITAS: Levitodynamics for accurate individual particle sensing in space*,
[Quantum Science and Technology **11**, 045034 (2026)](https://doi.org/10.1088/2058-9565/ae99fb);
preprint at [arXiv:2510.24524](https://arxiv.org/abs/2510.24524).
## Related work
Closely related ideas explored elsewhere:
- Y.-H. Tseng et al., *Optomechanical Detection of Individual Gas Collisions*, [arXiv:2604.18371](https://arxiv.org/abs/2604.18371) (2026).
- M. Perdriat et al., *Single-atom detection with a quantum-controlled mechanical oscillator*, [arXiv:2608.17656](https://arxiv.org/abs/2608.17656) (2026).
+113
View File
@@ -0,0 +1,113 @@
---
title: "LOTIS: Levitated Optomechanical Technologies In Space"
linkTitle: LOTIS
funder: "UK Space Agency"
funder_url: "https://www.gov.uk/government/organisations/uk-space-agency"
weight: 20
---
![LOTIS](press.jpg)
LOTIS is a [UK Space Agency](https://www.gov.uk/government/organisations/uk-space-agency) funded project, through their [Enabling Technologies Programme](https://www.gov.uk/government/publications/enabling-technologies-programme), to develop levitated optomechanics for satellite applications.
The project is led by Dr James Bateman (Swansea) with partners [Dr Daniel Oi (Strathclyde)](https://www.strath.ac.uk/staff/oidanieldr/) and [Prof. Animesh Datta (Warwick)](https://warwick.ac.uk/fac/sci/physics/staff/academic/animeshdatta/).
## Project description
Optomechanics is an emerging platform for quantum science and technology which controls and
measures mechanical modes of nanoscale objects with light. Levitated optomechanics uses individual,
optically levitated nanoparticles as the mechanical mode and promises applications from precision force
measurement to quantum information processing and tests of fundamental physics.
Optomechanics, more generally, includes micro-cantilevers, toroidal resonators, and silicon nitride
nanobeams, offering a wealth of technologies which exploit the coherent interaction of light with the
mechanical motion of nanoscale objects. Some of these systems have been cooled to their quantum
mechanical ground state and theoretical and experimental work is driving fast towards demonstrating
uniquely quantum properties such as entanglement and Schrödinger-cat states [Kanari-Naish 2022].
Levitated Optomechanics offers additional opportunities because the mechanical mode is exceptionally
well isolated from the environment. These mesoscopic systems are far larger than what we would normally
consider the quantum domain but can nevertheless be driven into quantum mechanical states [Delić 2020],
manipulated into squeezed states [Rashid 2016], and there is a clear strategy towards generating and
observing stationary optomechanical entanglement [Magrini 2022].
Cold atom technologies have demonstrated in recent years that these quantum effects are not just
laboratory curiosities but can become a core sensing technology for terrestrial [Phillips 2022] and
spaceborne applications [Carraz 2014]. These devices use matter-wave interferometers which are
sensitive to inertial forces and gravity and offer a performance which, even at this early stage, is competitive
with the best traditional gravimeters [Devani 2020]. The CASPA-ADM Mission [Siemes 2022] will bring this
technology to the specific challenge of measuring the thermospheric mass density in a free-flying 6U
CubeSat mission.
Matter-wave interferometric sensitivity, such as to inertial and gravitational forces, depends on the mass
and spatial superposition separation. Larger mass quantum objects are possible with levitated
optomechanics than with cold atom technologies, by a factor $\sim10^6$. Possible schemes include near-field
matter-wave interferometry [Bateman 2014] and non-linear cavity optomechanical coupling [Qvarfort 2018].
Levitated Optomechanics offers complementary measurement modalities and hybrid devices are feasible.
The MAQRO Collaboration, which includes around 50 scientists and engineers
from across Europe, the USA, and Australia, identified the challenges to realising quantum levitated
optomechanics in space. Recent studies of this proposed mission include the European Space Agency's
Concurrent Design Facility study of the MAQRO Mission [MAQRO CDF 2018] and a summary is available
in the NASA BPS 2023 Decadal Survey [Kaltenbaek 2022].
The challenges identified by the ESA CDF Study of MAQRO include the stability of free-space optics, drag-
free requirements, and cryogenics, many of which are not required for terrestrial levitated optomechanics
and have been solved in principle by other missions, notably LISA Pathfinder and JWST. There remain
challenges specific to levitated optomechanics and these are primarily the sourcing and conditioning of
nanoparticles for loading into a focused laser beam at the centre of levitated optomechanical apparatus.
LOTIS will address the specific levitated optomechanics challenges: Storage & dispensing (SD), Capture & conditioning
(CC), and Optomechanical trapping (OT).
The underpinning technologies of current levitated optomechanics studies have been developed for terrestrial,
ambient-pressure, laboratory environments, where ample space, power, and heat dissipation is available.
Much like the evolution seen in cold atom systems, it is by developing these technologies that we will
enable a transition of levitated optomechanics from laboratory-based demonstrations into a useful space-
based sensing platform.
The principal challenge of the nanoparticle source is that the intermolecular forces between
surfaces are very strong compared with the inertia of a typical nanoparticle. Consequently extremely high
surface accelerations $\sim10^7$g are needed to liberate nanoparticles which are adhered to a substrate. LOTIS
will explore adapting several distinct lab-based technologies which routinely achieve this goal so that they
are suitable for inclusion on a small (CubeSat scale) satellite mission.
Nanoparticles liberated from a surface, particularly if done so under high vacuum conditions, may require
some pre-capture or conditioning before loading into the optomechanical laser trap. LOTIS will
explore technologies to achieve this including adapting ion traps, and using several unique features of levitated optomechanics including that time-scales for their motion permit closed-loop feedback using fast electronics.
Laboratory based levitated optomechanical experiments often employ highly mature, robust and laser
technologies developed for fibre optical telecommunications. Historically, these devices have been
optimised for extremely low noise which is advantageous but not strictly necessary for many
optomechanical demonstrations. LOTIS will produce the minimum viable levitated optomechanical trap
to fit within the size, weight, and power (SWaP) requirements of a typical small satellite.
Furthermore, LOTIS will explore the extent to which novel protocols can be implemented with the
hardware we design. This interaction will be two-way, with requirements of the sensing protocols
informing the technology development where critical features are identified, and vice-versa. This is crucial
as many existing theoretical studies consider idealisations without reference to the practicalities and
imperfections inherent in real experiments.
Finally, LOTIS will analyse the system integration requirements so that the hardware demonstrated can be
understood in context and the next steps on the technology development roadmap can be clearly
recognised.
### References
- [Bassi 2022] Bassi, Cacciapuoti, Capability et al.; NPJ Microgravity (2022) 8:49
- [Bateman 2014] Bateman, Nimmrichter, Hornberger, Ulbricht; Nat. Commun (2014) 5:4788
- [Carraz 2014] Carraz, Siemes, Massotti, et al.; Microgravity Sci. & Tech. 26:139-145
- [Dawson 2019] Dawson & Bateman; JOSAB (2018) 36:1565
- [Delic 2020] Delić, Reisenbauer, Dare, et al.; Science (2020) aba3993
- [Devani 2020] Devani, Maddox, Renshaw et al.; CEAS Space Journal (2020) 12:539-549
- [Gieseler 2012] Gieseler, Deutsch, Quidant, Novotny; PRL (2012) 109:103603
- [Oi 2017] Oi, Ling, Grieve, Jennewein, Dinkelaker, Krutzik; Contemp. Phys. 58:25 (2017)
- [Phillips 2022] Phillips, Wright, Riou, et al.; ADV Quantum Sci (2022) 4:024404
- [Pontin 2022] Pontin & Monterio, arXiv:2208.09065
- [Kaltenbaek 2022] Kaltenbaek et al.; arXiv:2202.01535
- [Kanari-Naish 2022] Kanari-Naish, Clarif, Qvarfort, Vanner; Quantum Sci. & Tech (2022) 7:035012
- [Magrini 2022] Magrini, Camarena-Chavez, Bach, et al.; PRL (2022) 129:053601
- [MAQRO CDF 2018] QPPF: Quantum Physics Payload Platform (2018) CDF-183(C)
- [Nikkhou 2021] Nikkhou, Hu, Sabin, Millen; Photonics (2021) 8:458
- [Qvarfort 2018] Qvarfort, Serafini, Barker, Bose; Nat. Commun (2018) 9:3690
- [Rashid 2016] Rashid, Tufarelli, Bateman, et al.; PRL (2016) 117:273601
- [Siemes 2022] Siemes, Maddox, Carraz et al.; CEAS Space Journal (2022) 14:637-653
- [Tebbenjohanns 2021] Tebbenjohanns, Mattana, Rossi et al.; Nature (2021) 595:378-382
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

+35
View File
@@ -0,0 +1,35 @@
---
title: "NAMIQOS: Nanoparticle Manipulation and Integration for Quantum Optomechanical Systems"
linkTitle: NAMIQOS
funder: "EPSRC"
funder_url: "https://www.ukri.org/councils/epsrc/"
weight: 40
---
**NAMIQOS** is a fully-funded 3 year PhD project funded through the EPSRC Quantum Technologies DTP.
The project will run from October 2024 to September 2027.
NAMIQOS builds on the group's earlier work on backaction suppression using reflective boundaries, reported in Rafał Gajewski's PhD thesis and in [Gajewski & Bateman, *Phys. Rev. Research* **7**, 023041 (2025)](https://doi.org/10.1103/PhysRevResearch.7.023041).
## Background
Optical forces arise when light, which has no mass yet carries momentum, is deflected through interaction with a material object. Lasers of power $\sim 100\,\text{mW}$ focused to a spot $\sim10\,\text{um}$ exert significant forces on objects $\sim100\,\text{nm}$ across.
These nanoparticles can be levitated, in vacuum, and manipulated by modulating the optical field.
Interferometric measurement and active feedback techniques allow these systems to approach quantum limits of position sensitivity.
This research is part of the field of levitated optomechanics. Since the seminal demonstration of feedback cooling to sub-Kelvin temperatures [Gieseler 2012], the field has seen rapid and intense research, with recent achievements including cooling to the quantum-mechanical ground-state with optical cavities [Delić 2020] and in a cryogenic environment [Tebbenjohanns 2021].
This project will explore development of practical devices based on levitated optomechanics including engineered isolation of specific mechanical modes and microfabrication techniques to source, prepare, and levitate nanoparticles in a compact, robust device. Microfabrication will be explored in collaboration with Swansea University's Centre for Integrative Semiconductor Materials [CISM]. CISM is a new £30M research and innovation facility on Swansea University Bay Campus which brings together semiconductor and advanced materials platforms and offers manufacturing grade ISO-qualified clean rooms for process development, backend materials integration and packaging capabilities, and access to advanced characterisation and analysis.
The student will benefit from integration with the nascent Swansea Doctoral Training Initiative UK-SIFS: UK Semiconductor Industry Future Skills (CISM, Meredith) which will create a vibrant, multi-disciplinary cohort experience and provide highly practical training and links with industrial partners.
Development of the robust platform provides a route towards quantum devices, where the particle is treated as a quantum mechanical object subject to superposition and decoherence. Establishing capability in this classical space is a necessary step towards realising fully quantum-limited devices, for which there are a number of exciting theoretical proposals in accelerometry with predicted sensitivities $\sim10^{-17}\,\text{g}/\sqrt{\text{Hz}}$ [Pontin 2018].
### References
- [Gieseler 2012] Gieseler, Deutsch, Quidant, Novotny; PRL 109 103603 (2012)
- [Delić 2020] Delić et al.; Science 10.1126/science.aba3993 (2020)
- [Pontin 2018] Pontin et al.; New J. Phys. 20 023017 (2018)
- [Tebbenjohanns 2021] Tebbenjohanns et al.; Nature 595 378-382 (2021)
- [CISM] [Centre for Integrative Semiconductor Materials](https://www.cism-swansea-semiconductors.co.uk/)
Binary file not shown.
+33
View File
@@ -0,0 +1,33 @@
---
title: "OSIAN: Optomechanical Sensing for Inertial, Accelerometry, and Navigation"
linkTitle: OSIAN
funder: "Dstl"
funder_url: "https://www.gov.uk/government/organisations/defence-science-and-technology-laboratory"
weight: 30
---
**OSIAN** is a 4 year DSTL-funded experimental PhD studentship opportunity including industrial placement at [DSTL Porton Down](https://www.gov.uk/government/organisations/defence-science-and-technology-laboratory) and possible placement at an Australian partner institution through [DST Australia](https://www.dst.defence.gov.au/).
The project runs from October 2023 to September 2027.
## Background
Optical forces arise when light, which has no mass yet carries momentum, is deflected through interaction with a material object. Lasers of power $\sim 100\,\text{mW}$ focused to a spot $\sim10\,\text{um}$ exert significant forces on objects $\sim100\,\text{nm}$ across.
These nanoparticles can be levitated, in vacuum, and manipulated by modulating the optical field.
Interferometric measurement and active feedback techniques allow these systems to approach quantum limits of position sensitivity.
This research is part of the field of levitated optomechanics. Since the seminal demonstration of feedback cooling to sub-Kelvin temperatures [Gieseler 2012], the field has seen rapid and intense research, with recent achievements including cooling to the quantum-mechanical ground-state with optical cavities [Delić 2020] and in a cryogenic environment [Tebbenjohanns 2021].
This project will implement an accelerometer through a robust experimental platform, which bridges levitated optomechanics and fiber telecommunications technologies, such as lasers, modulators, and detectors.
The immediate goals are to build classical devices, where the nanoparticle is treated as a point-like object undergoing Newtonian motion and subject to classical noise sources.
Several interesting approaches from macroscopic, traditional devices translate and are promising in terms of sensitivity, robustness, reliability, and bandwidth.
Development of the robust platform provides a route towards *quantum devices*, where the particle is treated as a quantum mechanical object subject to superposition and decoherence. Establishing capability in this classical space is a necessary step towards realising fully quantum-limited devices, for which there are a number of exciting theoretical proposals in accelerometry with predicted sensitivities $\sim10^{-17}\,\text{g}/\sqrt{\text{Hz}}$ [Pontin 2018].
### References
- [Gieseler 2012] Gieseler, Deutsch, Quidant, Novotny; PRL 109 103603 (2012)
- [Delić 2020] Delić et al.; Science 10.1126/science.aba3993 (2020)
- [Pontin 2018] Pontin et al.; New J. Phys. 20 023017 (2018)
- [Tebbenjohanns 2021] Tebbenjohanns et al.; Nature 595 378-382 (2021)
+14
View File
@@ -0,0 +1,14 @@
---
title: Publications
weight: 30
---
## Papers
{{< publications >}}
## PhD theses
- **Chris Dawson**, [*Spectral Analysis and Parameter Estimation in Levitated Optomechanics* (2020)](theses/2020_Chris_Dawson.pdf)
- **Shaun Laing**, [*Bayesian Inference and Collapse Models in Levitated Optomechanics* (2024)](theses/2024_Shaun_Laing.pdf)
- **Rafał Gajewski**, [*Backaction suppression in levitated optomechanics* (2024)](theses/2024_Rafal_Gajewski.pdf)
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
{"indexed":{"date-parts":[[2026,3,5]],"date-time":"2026-03-05T18:33:50Z","timestamp":1772735630526,"version":"3.50.1"},"reference-count":0,"publisher":"SPIE","content-domain":{"domain":[],"crossmark-restriction":false},"published-print":{"date-parts":[[2026,3,5]]},"DOI":"10.1117\/12.3079298","type":"proceedings-article","created":{"date-parts":[[2026,3,5]],"date-time":"2026-03-05T17:40:38Z","timestamp":1772732438000},"page":"16","source":"Crossref","is-referenced-by-count":0,"title":"Numerical methods for optimization of displacement detection of arbitrarily shaped optically levitated dielectric objects","prefix":"10.1117","author":[{"given":"Shelby","family":"Klomp","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Shaun","family":"Liang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"George","family":"Winstone","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zhiyuan","family":"Wang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Shafaq","family":"Elahi","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lars","family":"Forberger","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alexey","family":"Grinin","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrew","family":"Dana","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrew","family":"Laeuger","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jacob","family":"Sprague","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"James","family":"Bateman","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Peter J.","family":"Pauzauskie","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nancy","family":"Aggarwal","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Shane L.","family":"Larson","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Vicky","family":"Kalogera","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrew A.","family":"Geraci","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"189","event":"Quantum Sensing, Imaging, and Precision Metrology IV","container-title":"Quantum Sensing, Imaging, and Precision Metrology IV","original-title":[],"deposited":{"date-parts":[[2026,3,5]],"date-time":"2026-03-05T17:44:11Z","timestamp":1772732651000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.spiedigitallibrary.org\/conference-proceedings-of-spie\/13920\/3079298\/Numerical-methods-for-optimization-of-displacement-detection-of-arbitrarily-shaped\/10.1117\/12.3079298.full"}},"subtitle":[],"editor":[{"given":"Selim M.","family":"Shahriar","sequence":"additional","affiliation":[],"role":[{"role":"editor","vocabulary":"crossref"}]}],"short-title":[],"issued":{"date-parts":[[2026,3,5]]},"references-count":0,"URL":"http:\/\/dx.doi.org\/10.1117\/12.3079298","relation":{},"subject":[],"published":{"date-parts":[[2026,3,5]]}}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,34 @@
{
"type": "article",
"id": "https://doi.org/10.48550/arxiv.2512.16403",
"categories": [
"Optics (physics.optics)",
"Quantum Physics (quant-ph)",
"FOS: Physical sciences",
"FOS: Physical sciences"
],
"author": [
{
"family": "Edmonds",
"given": "Matthew"
},
{
"family": "Bateman",
"given": "James"
}
],
"issued": {
"date-parts": [
[
2025
]
]
},
"abstract": "Laser-induced acoustic desorption (LIAD) enables loading nanoparticles into optical traps under vacuum for levitated optomechanics experiments. Current LIAD systems rely on empirical optimization using available laboratory lasers rather than systematic theoretical design, resulting in large systems incompatible with portable or space-based applications. We develop a theoretical framework using the photoacoustic wave equation to model acoustic wave generation and propagation in metal substrates, enabling systematic optimization of laser parameters. The model identifies key scaling relationships: surface acceleration scales as $τ^{-2}$ with pulse duration, while acoustic diffraction sets fundamental limits on optimal spot size $w \\gtrsim \\sqrt{vτd}$. Material figures of merit combine thermal expansion and optical absorption properties, suggesting alternatives to traditional aluminum substrates. The framework validates well against experimental data and demonstrates that compact laser systems with sub-nanosecond pulse durations can achieve performance competitive with existing laboratory-scale implementations despite orders-of-magnitude lower pulse energies. This enables rational design of minimal LIAD systems for practical applications.",
"DOI": "10.48550/ARXIV.2512.16403",
"publisher": "arXiv",
"title": "Photoacoustic model for laser-induced acoustic desorption of nanoparticles",
"URL": "https://arxiv.org/abs/2512.16403",
"copyright": "Creative Commons Attribution 4.0 International",
"version": "1"
}
@@ -0,0 +1,85 @@
{
"type": "article",
"id": "https://doi.org/10.48550/arxiv.2607.04966",
"categories": [
"Atomic Physics (physics.atom-ph)",
"Quantum Physics (quant-ph)",
"FOS: Physical sciences"
],
"author": [
{
"family": "Himsworth",
"given": "Matt"
},
{
"family": "Camm",
"given": "Chester"
},
{
"family": "Carey",
"given": "Max"
},
{
"family": "Saywell",
"given": "Jack"
},
{
"family": "Woods",
"given": "Jonathan"
},
{
"family": "Atkočius",
"given": "Vilius"
},
{
"family": "Concepcion",
"given": "Florence"
},
{
"family": "Karakostas",
"given": "Konstantinos"
},
{
"family": "Brady",
"given": "Hannah"
},
{
"family": "Atila",
"given": "Doruk Tan"
},
{
"family": "Heywood",
"given": "Ellie"
},
{
"family": "Jantzen",
"given": "Alex"
},
{
"family": "Dragomir",
"given": "Andrei"
},
{
"family": "Morley",
"given": "Christopher"
},
{
"family": "Bateman",
"given": "James"
}
],
"issued": {
"date-parts": [
[
2026
]
]
},
"abstract": "Laser cooled and trapped atoms have been the workhorse of atomic physics for the past four decades. The predominant method has been the highly versatile Magneto-Optical Trap. We describe an alternative laser trap involving a simple geometry of collimated laser beams that provides both a velocity and position dependent restoring force such that a dense cloud of cold atoms is formed. This technique produces similar atom number ($&gt;10^6$) and density ($10^{10}$\\,atoms/cm$^{3}$) to the Magneto-Optical Trap, albeit with \\emph{no magnetic field}. The beam geometry is compatible with conventional sub-Doppler cooling techniques, allowing the trapped cloud to be cooled to $&lt; 10~μ$K. We demonstrate the validity and robustness of the trap by capturing $^{87}$Rb atoms directly from the background vapor and provide a theoretical discussion of the underlying principles. This trap has many unique properties that make it highly suitable for quantum sensing, timing, and computing applications as well as a new tool in fundamental science and metrology.",
"DOI": "10.48550/ARXIV.2607.04966",
"publisher": "arXiv",
"title": "Super-molasses returns: All optical near-resonance laser cooling and trapping of neutral atoms from background vapor",
"URL": "https://arxiv.org/abs/2607.04966",
"copyright": "Creative Commons Attribution 4.0 International",
"version": "2"
}
+20
View File
@@ -0,0 +1,20 @@
# Collaborators shown on the People page. Set `past: true` to move someone
# into the softer "Wider network" group (not active right now, door left open).
- name: Prof. Daniel K. L. Oi
affiliation: University of Strathclyde
url: https://www.strath.ac.uk/staff/oidanieldr/
- name: Prof. Bengt Eliasson
affiliation: University of Strathclyde
url: https://www.strath.ac.uk/staff/eliassonbengtdr/
- name: Prof. Animesh Datta
affiliation: University of Warwick
url: https://warwick.ac.uk/fac/sci/physics/staff/academic/animeshdatta/
- name: Dr Ravindra T. Desai
affiliation: University of Warwick
url: https://warwick.ac.uk/fac/sci/physics/research/cfsa/people/desai/
- name: Dr Matthew Himsworth
affiliation: Aquark Technologies
url: https://www.aquarktechnologies.com/
- name: Prof. Andrew Geraci
affiliation: Northwestern University
url: https://faculty.wcas.northwestern.edu/andrew-geraci/index.html
+21
View File
@@ -0,0 +1,21 @@
# Source of truth for the Publications page.
# Each entry is a DOI (journal DOIs and arXiv DataCite DOIs both work).
# Order here is the display order. Run `make citations` after editing to
# fetch and cache the CSL-JSON metadata into data/citations/.
#
# arxiv: optional arXiv id, shown as a "/ arXiv:xxxx" link
# note: optional extra text appended in italics (e.g. acceptance status)
papers:
- doi: "10.1088/2058-9565/ae99fb"
arxiv: "2510.24524"
- doi: "10.48550/arXiv.2607.04966"
- doi: "10.48550/arXiv.2512.16403"
- doi: "10.1117/12.3079298"
fix: { Liang: Laing } # SPIE record misspells Shaun Laing as "Liang"
- doi: "10.1103/PhysRevResearch.7.023041"
- doi: "10.1088/2058-9565/aca3cd"
arxiv: "2202.01535"
- doi: "10.1364/JOSAB.36.001565"
arxiv: "1903.01354"
- doi: "10.1103/PhysRevLett.117.273601"
- doi: "10.1038/ncomms5788"
+59
View File
@@ -0,0 +1,59 @@
baseURL = 'https://levitation.wales/'
locale = 'en-gb'
title = 'levitation.wales'
theme = 'hextra'
# Render raw HTML in markdown (the contact map iframe) and math.
# Make all content use Hextra's "docs" layouts, which keep the sidebar on every
# page (leaf pages otherwise fall back to a layout that hides it).
[[cascade]]
type = 'docs'
[cascade.target]
path = '/**'
[markup]
[markup.goldmark.renderer]
unsafe = true
[markup.goldmark.extensions.passthrough]
enable = true
[markup.goldmark.extensions.passthrough.delimiters]
block = [['\[', '\]'], ['$$', '$$']]
inline = [['\(', '\)'], ['$', '$']]
[markup.highlight]
noClasses = false
[params]
[params.theme]
default = 'dark' # dark by default, with a toggle
displayToggle = true
[params.navbar]
displayTitle = true
displayLogo = false
[params.search]
enable = true
type = 'flexsearch'
[params.footer]
enable = true
displayCopyright = false
displayPoweredBy = false
[[menu.main]]
name = 'Projects'
pageRef = '/projects'
weight = 1
[[menu.main]]
name = 'People'
pageRef = '/people'
weight = 2
[[menu.main]]
name = 'Publications'
pageRef = '/publications'
weight = 3
[[menu.main]]
name = 'Search'
weight = 4
[menu.main.params]
type = 'search'
+7
View File
@@ -0,0 +1,7 @@
{{- /* Render $...$ and $$...$$ math to native MathML via Hugo's built-in KaTeX.
No JavaScript or CDN dependency. */ -}}
{{- $opts := dict "output" "mathml" -}}
{{- if eq .Type "block" -}}
{{- $opts = merge $opts (dict "displayMode" true) -}}
{{- end -}}
{{- transform.ToMath .Inner $opts -}}
@@ -0,0 +1,8 @@
{{- /* Consistent "Funded by" badge under the page title, for any page with a
`funder` front-matter field (the single-grant projects). Programmes such
as LEVITAS omit it and list funders per study instead. */ -}}
{{- $f := .Params.funder -}}
{{- $u := .Params.funder_url -}}
{{- with $f -}}
<p class="funder-badge">Funded by {{ if $u }}<a href="{{ $u }}">{{ $f }}</a>{{ else }}{{ $f }}{{ end }}</p>
{{- end -}}
+48
View File
@@ -0,0 +1,48 @@
{{- /* Site-wide style tweaks injected at runtime (no CSS rebuild needed). */ -}}
<style>
/* Widen Hextra's layout: the theme defaults to an 80rem page / 72rem content
column, which leaves large margins on wide screens. Tune to taste. */
:root {
--hextra-max-page-width: 100%;
--hextra-max-content-width: 90rem;
/* Match the navbar and footer to the full-width body so the title (and
footer) share the body's left edge instead of centring at 80rem —
this puts "levitation.wales" directly above the sidebar nav. */
--hextra-max-navbar-width: 100%;
--hextra-max-footer-width: 100%;
}
/* Half-width floated figures with captions (see the LEVITAS page). */
figure.fig-float { width: min(45%, 22rem); margin: 0.2rem 0 1rem; }
figure.fig-float.right { float: right; margin-left: 1.75rem; }
figure.fig-float.left { float: left; margin-right: 1.75rem; }
figure.fig-float img { width: 100%; height: auto; }
/* Logo variant: float at the logo's natural size rather than half-width. */
figure.fig-float.logo { width: auto; max-width: 12rem; }
figure.fig-float.logo img { width: auto; max-width: 100%; }
/* Portrait variant: a person photo, narrower than a half-width figure. */
figure.fig-float.portrait { width: min(40%, 13rem); }
figure.fig-float.portrait img { border-radius: 8px; }
figure.fig-float figcaption {
font-size: 0.85em; line-height: 1.35; color: #9ca3af; margin-top: 0.4rem;
}
/* Consistent funder badge under a project title. */
.funder-badge {
display: inline-block; margin: 0 0 1.1rem; padding: 0.15rem 0.7rem;
border: 1px solid rgba(128,128,128,0.35); border-radius: 9999px;
font-size: 0.8rem; color: #9ca3af;
}
.funder-badge a { color: inherit; text-decoration: none; }
.funder-badge a:hover { text-decoration: underline; }
/* Centred, full-width figure (clears any floats above it). */
figure.fig-center { clear: both; margin: 1.5rem auto; max-width: 44rem; }
figure.fig-center img { width: 100%; height: auto; }
figure.fig-center figcaption { font-size: 0.85em; line-height: 1.35; color: #9ca3af; margin-top: 0.4rem; }
/* Each section starts below any floated figures above it. */
main h2 { clear: both; }
@media (max-width: 720px) {
figure.fig-float { float: none; width: 100%; margin: 1rem auto; }
}
</style>
+23
View File
@@ -0,0 +1,23 @@
{{/*
Project override of Hextra's utils/title.
Same behaviour as the theme, plus a small "(alum)" marker in the sidebar,
breadcrumb, and pager for pages flagged `alumnus: true`. The marker is
derived from that single flag, so status is still stored in one place.
*/}}
{{- $title := "" }}
{{ if .LinkTitle }}
{{ $title = .LinkTitle }}
{{ else if .Title }}
{{ $title = .Title }}
{{ else if and .IsSection .File }}
{{ $title = path.Base .File.Dir | humanize | title }}
{{ else if and .IsPage .File }}
{{ $title = .File.BaseFileName | humanize | title }}
{{ end }}
{{- if .Params.alumnus }}
{{ $title = printf "%s (alum)" $title }}
{{- end }}
{{ return $title -}}
+20
View File
@@ -0,0 +1,20 @@
{{- /* Render data/collaborators.yaml, grouping by the single `past` flag. */ -}}
{{- $all := hugo.Data.collaborators -}}
{{- $current := where $all "past" "!=" true -}}
{{- $past := where $all "past" true -}}
<h2 id="collaborators">Collaborators</h2>
<ul>
{{- range $current }}
{{- $u := .url }}
<li>{{ if $u }}<a href="{{ $u }}">{{ end }}{{ .name }}{{ if $u }}</a>{{ end }}{{ with .affiliation }}, {{ . }}{{ end }}</li>
{{- end }}
</ul>
{{- with $past }}
<h2 id="wider-network">Wider network</h2>
<ul>
{{- range . }}
{{- $u := .url }}
<li>{{ if $u }}<a href="{{ $u }}">{{ end }}{{ .name }}{{ if $u }}</a>{{ end }}{{ with .affiliation }}, {{ . }}{{ end }}</li>
{{- end }}
</ul>
{{- end -}}
+5
View File
@@ -0,0 +1,5 @@
{{- /* Render the current person's `links` front matter as a small inline row.
Renders nothing if the page has no links. */ -}}
{{- with .Page.Params.links -}}
<p>{{ range $i, $l := . }}{{ if $i }} · {{ end }}<a href="{{ $l.url }}">{{ $l.name }}</a>{{ end }}</p>
{{- end -}}
+20
View File
@@ -0,0 +1,20 @@
{{- /* Build the roster from the member pages under /people. Each person's
status lives once, in their own front matter: set `alumnus: true`
for past members. */ -}}
{{- $people := (site.GetPage "/people").Pages -}}
{{- $current := where $people "Params.alumnus" "!=" true -}}
{{- $alumni := where $people "Params.alumnus" true -}}
<h2 id="group">Group</h2>
<ul>
{{- range $current.ByWeight }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a>{{ with .Params.role }}, {{ . }}{{ end }}{{ with .Params.links }}{{ range . }} · <a href="{{ .url }}">{{ .name }}</a>{{ end }}{{ end }}</li>
{{- end }}
</ul>
{{- with $alumni }}
<h2 id="alumni">Alumni</h2>
<ul>
{{- range .ByWeight }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a>{{ with .Params.role }}, {{ . }}{{ end }}{{ with .Params.links }}{{ range . }} · <a href="{{ .url }}">{{ .name }}</a>{{ end }}{{ end }}</li>
{{- end }}
</ul>
{{- end -}}
+11
View File
@@ -0,0 +1,11 @@
{{- /* List the child project pages of the section this shortcode is called
from, ordered by their `weight`. The bold link text is each page's
`linkTitle` (the acronym); the description is the page `title` with the
leading "ACRONYM: " stripped. Keeps this list in sync with the pages
(and hence the sidebar) so a new project is a one-file addition. */ -}}
<ul>
{{- range .Page.Pages.ByWeight }}
{{- $desc := replaceRE `^[^:]+:\s*` "" .Title -}}
<li><a href="{{ .RelPermalink }}"><strong>{{ .LinkTitle }}</strong></a>: {{ $desc }}</li>
{{- end }}
</ul>
+61
View File
@@ -0,0 +1,61 @@
{{- /* Render data/publications.yaml using the cached CSL-JSON in
data/citations/ (populated by `make citations`). Group members'
surnames are shown in bold. */ -}}
{{- /* Group surnames to embolden, taken from each /people page's `surname`
(current members and alumni alike) so the roster is the single source
of truth. Use ASCII surnames to match the CSL `family` names. */ -}}
{{- $group := slice -}}
{{- range (site.GetPage "/people").Pages -}}
{{- with .Params.surname -}}{{- $group = $group | append . -}}{{- end -}}
{{- end -}}
<ul class="pub-list">
{{- range hugo.Data.publications.papers -}}
{{- $note := .note -}}
{{- $arxiv := .arxiv -}}
{{- $fix := .fix -}}
{{- $key := .doi | lower | replaceRE "[^a-z0-9]" "_" -}}
{{- $c := index hugo.Data.citations $key -}}
{{- if $c -}}
{{- $names := slice -}}
{{- $groupExtra := slice -}}
{{- range $i, $a := $c.author -}}
{{- $ini := "" -}}
{{- range (split ($a.given | default "") " ") -}}
{{- $t := trim . " " -}}
{{- if gt (len $t) 0 -}}{{- $ini = printf "%s%s. " $ini (substr $t 0 1) -}}{{- end -}}
{{- end -}}
{{- $family := $a.family | default "" -}}
{{- with $fix -}}{{- with (index . $family) -}}{{- $family = . -}}{{- end -}}{{- end -}}
{{- $name := printf "%s%s" $ini $family -}}
{{- $isgroup := in $group $family -}}
{{- if $isgroup -}}{{- $name = printf "<strong>%s</strong>" $name -}}{{- end -}}
{{- $names = $names | append $name -}}
{{- if and $isgroup (gt $i 0) -}}{{- $groupExtra = $groupExtra | append $name -}}{{- end -}}
{{- end -}}
{{- /* Long author lists: first author + et al., still naming group members. */ -}}
{{- $authors := "" -}}
{{- if le (len $names) 10 -}}
{{- $authors = delimit $names ", " -}}
{{- else -}}
{{- $authors = printf "%s et al." (index $names 0) -}}
{{- with $groupExtra -}}{{- $authors = printf "%s, incl. %s" $authors (delimit . ", ") -}}{{- end -}}
{{- end -}}
{{- $year := "" -}}
{{- with $c.issued -}}{{- with (index . "date-parts") -}}{{- $year = index (index . 0) 0 -}}{{- end -}}{{- end -}}
{{- $container := index $c "container-title" -}}
{{- $art := or (index $c "article-number") (index $c "page") -}}
{{- $doi := $c.DOI -}}
<li>
{{ $authors | safeHTML }},
<em>{{ $c.title }}</em>,
{{- if $container }} {{ $container }}{{ with $c.volume }} <strong>{{ . }}</strong>{{ end }}{{ with $art }}, {{ . }}{{ end }}
{{- else }} arXiv:{{ replaceRE `(?i)^10\.48550/arxiv\.` "" $doi }}
{{- end }}
{{- with $year }} ({{ . }}){{ end }}.
<a href="https://doi.org/{{ $doi }}">doi:{{ $doi }}</a>{{ with $arxiv }} / <a href="https://arxiv.org/abs/{{ . }}">arXiv:{{ . }}</a>{{ end }}{{ with $note }} (<em>{{ . }}</em>){{ end }}
</li>
{{- else -}}
{{- warnf "publications: no cached citation for DOI %q (run: make citations)" .doi -}}
{{- end -}}
{{- end -}}
</ul>
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
#
# Fetch CSL-JSON citation metadata for every DOI listed in
# data/publications.yaml and cache it under data/citations/.
#
# The cache is committed to the repo so the site builds offline and
# reproducibly. Re-run this only when you add or change a DOI:
#
# make citations # fetch any not yet cached
# make citations FORCE=1 # re-fetch everything (refresh)
#
set -euo pipefail
cd "$(dirname "$0")/.."
SRC=data/publications.yaml
OUT=data/citations
mkdir -p "$OUT"
# Same slug rule as the Hugo template: lowercase, non-alphanumerics -> "_".
slug() { printf '%s' "$1" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/_/g'; }
mapfile -t dois < <(grep -oP '^\s*-\s*doi:\s*"\K[^"]+' "$SRC")
if [[ ${#dois[@]} -eq 0 ]]; then
echo "No DOIs found in $SRC" >&2
exit 1
fi
for doi in "${dois[@]}"; do
out="$OUT/$(slug "$doi").json"
if [[ -f "$out" && "${FORCE:-}" != "1" ]]; then
echo "cached $doi"
continue
fi
echo "fetch $doi"
tmp=$(mktemp)
if curl -fsSL --retry 3 --retry-delay 2 \
-H "Accept: application/vnd.citationstyles.csl+json" \
"https://doi.org/$doi" -o "$tmp" \
&& python3 -c "import json,sys; json.load(open(sys.argv[1]))" "$tmp" 2>/dev/null; then
mv "$tmp" "$out"
else
rm -f "$tmp"
echo " !! failed to fetch valid CSL-JSON for $doi" >&2
exit 1
fi
done
echo "Done. Cached ${#dois[@]} citation(s) in $OUT/"
Binary file not shown.

After

Width:  |  Height:  |  Size: 907 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB