Théo Alessandro Hermann

Researcher and engineer. I measure environments that resist measurement: cities built without plans, tree canopy across a whole city, robots that have to know where they are. Different fields, one problem. Turning raw sensing into a number someone can defend.
MSc Robotics, EPFL. Research fellow at MIT Senseable City Lab Rio; earlier, computer vision and MLOps at Roboat.

Rio de Janeiro

A city that was never drawn.

Favelas are built without plans, and the usual urban measurements assume a street grid that is not there. I build morphometrics for that fabric from terrain models and building footprints: sky openness, frontal area density, slope, porosity, on a grid fine enough to describe a single alley. The wind and sunlight simulations run on those measurements.

Vidigal, Rio de Janeiro · terrain and building footprints

MIT Senseable City Lab Rio

Amsterdam

Trees the city already scanned.

Cities fly aerial LiDAR surveys on a regular cycle for unrelated reasons. In that data, a pulse that passes through a crown and a pulse the crown intercepts are distinguishable, so the fraction of sky visible through each tree can be recovered from a scan that already exists. Leaf area then follows by a physical inversion with stated assumptions, not a fitted model.

Jordaan, Amsterdam · a canal, its houses and its trees

AHN5, the Dutch national airborne laser scan, open data · Senseable City Lab, MIT and AMS Institute

MIT Senseable City Lab Rio · since 2025

Morphometrics of informal urban form

Favelas are built without plans, and the descriptors urban analysis relies on assume a street grid that is not there. I build the ones that hold on this fabric, from terrain models and building footprints, fine enough to resolve a single alley.

Geometry published on this site

Senseable City Lab, MIT and AMS Institute · since 2024

Leaf area from an aerial scan

A city knows where its trees are, not how much leaf they carry. I recover leaf area per tree by inverting how much sky the canopy blocks in an aerial LiDAR survey the city already flies for other reasons.

Manuscript in preparation

Open source · 2026

ROS 2 fleet log triage

Robots that navigate from their own sensors fail quietly: the estimate drifts while the reported confidence stays high. I built four detectors that find those moments in the logs a fleet already records, and graded them against labelled recordings from five platforms.

Every number recomputable from the repo

Roboat, MIT spinoff · 2024

Camera perception for canal boats

Roboat's autonomy ran on LiDAR. As its first intern I added the camera side: detection and tracking on the vessel's own edge hardware, and the MLOps to keep models and data versioned as the recordings grew.

Camera perception on a LiDAR stack

Open source · 2026

A real-time vision pipeline

Four years of one-off perception prototypes, consolidated into one modular stack: detection, multi-object tracking, re-identification and pose, each swappable, with a latency budget the whole thing is held to.

Open source, MIT licensed

Open source · 2025

A harness for AI agents

Agentic systems fail the way robots do: a tool call breaks, nothing traces it, and nobody notices until a user does. I built a typed tool layer with one structured trace line per call and a regression suite wired into CI, so a bad prompt change fails the build instead of the user.

Open source, v0.1

All work →

Théo Alessandro Hermann

Researcher and robotics engineer

Four years building perception and autonomy systems on edge hardware. Franco-Brazilian, trained in Switzerland. French · English · Portuguese · Spanish.

Computer vision and MLOps at Roboat (MIT spinoff) as its first intern, adding camera perception to a stack built on LiDAR. Research fellow at MIT Senseable City Lab Rio — 3D reconstruction of dense informal settlements from terrestrial LiDAR, terrain models and building footprints. Research assistant at EPFL VITA Lab; visiting researcher at IRI (CSIC-UPC), Barcelona.

Full CV →

Get in touch.

Research collaborations, or questions about the work on this page: write two lines.