Kasper Grøntved Front page →

Talks, decks & writing

Knowledge

Explaining the work: internally, at conferences, in writing, and to anyone who inherits a system I built. The decks are single HTML files that run in your browser, so every slide has its own URL. The posts are the prose counterpart: what was built, what it cost, and what the numbers say.

Featured

★ Featured

ML and Data at Colourbox

Why content understanding is the only answer to DAM cold start, what EU sovereignty actually commits you to architecturally, how dense embeddings and patch-level late interaction divide the work between a stock library and a DAM system. Then the multimodal field case, the production objections, and why a benchmark score is not a customer finding their asset.

32 slidesSearch Self-hosted inferenceDraft
Explore the deck →

Writing

8 September 2026 · ≈ 9 min

Semantic search for the price of a git push

How this site's search understands meaning with no server and no model at query time. Dense retrieval, SPLADE and late interaction drawn side by side, the asymmetry that lets inference-free SPLADE drop the query encoder, a passage's sparse vector read term by term, and the whole pipeline in one picture.

Talks & decks

Primer · ~25 min · adapted

Late Interaction, Up Close

Why one fixed-size embedding has to decide what to keep before it knows what will be asked, and how late interaction and MaxSim avoid that. Adapted with attribution from Amélie Chatelain's Late Interaction Field Guide; the original goes considerably further. Kept as a standalone talk; the Colourbox deck carries the same eleven slides with our own examples.

12 slidesRetrieval Sourced
PhD defence · 45 min · draft

Cooperative Control of Multi-Robot Systems in Real-World Applications

The defence deck, ported: how a Danish rescue procedure becomes tasks a drone can take, a consensus-based allocator that bids on trajectories instead of points, two declarative languages between operator and swarm, €10 radios that reach consensus in the air, and SAREnv, a benchmark built on where lost people are actually found.

40 slidesMulti-robot Search and rescueDraft
Research talk · 30 min

Decentralized Multi-UAV Task Allocation

Why centralized coverage planning breaks down in a real search and rescue operation, how a consensus-based bundle algorithm handles trajectory tasks instead of points, and what the decentralization actually costs. Based on the ICAR 2023 paper.

10 slidesICAR 2023
Interactive · live demo

Search, with the vectors showing

Inference-free SPLADE over this entire site. The document vectors were built offline by a 67M-parameter masked LM; the query side is a tokenizer and a lookup table, so your browser runs no model at all. The page puts the sparse vectors on screen: the query's WordPiece decomposition, which terms produced each score, and the words the model added that the text never contained.

Learned sparseNo inference Vanilla JS

More coming

Older decks are being converted from slides into this format as I get to them.

How the decks work

The engine is about 200 lines of vanilla JavaScript in /deck/deck.js, with no framework, no build step. Slides live on a fixed 1920×1080 canvas that gets scaled to whatever window you open it in, so a deck looks identical on a laptop, a projector, and a phone.

While presenting

  • → / space / PageDown next slide, ← / PageUp back
  • o contents drawer · n speaker notes · r sources for the current slide · f fullscreen
  • t light/dark · p print to PDF, one slide per page

Slides carry their own citations: press r and the drawer lists the papers, code and lectures behind whatever is on screen, with a count badge in the corner so you can see at a glance whether a claim is sourced.

Swipe works on touch. The URL tracks the slide number, so /knowledge/<name>/#7 opens directly on slide 7, useful when someone asks you to send "that one chart".

Borrow it if you like: copy /deck/ and /knowledge/_template/ from the repo.