Projects
What I have built, at work and on my own. Each project has a page about the problem, what I did and what does not work yet. Screenshots of client work use test data. The code is public where there is a link.
At work
Projects I develop at the software company where I work, from archives to AI. Clients and institutions are not named.

Automatic reading of archive registers
A small model, trained on already-validated rows, reads handwritten and typed registers; on the test pages it reads 84.7% of the fields correctly, against 39% for a much larger model.

A knowledge base with cited answers
A RAG system that collects institutional documents and answers citing its sources.

Cultural heritage catalogue
Migrating software born in 2006 to FastAPI and Vue, without stopping its users.

Digitisation tools
A desktop app to create and validate the metadata of digitised documents, with a panel for users and licences.
My projects
Products I designed and built on my own.

base-cms
The CMS this site runs on, built by coordinating AI agents and still evolving.

PaceMind
Predicts finishing time on a trail route from your own runs. Open source soon.

ExamForge
Turns course material into exam questions, solutions and study pages. Open source soon.

Work Planner
Plans workload and shows the effect of every change before you approve it.
Tools and small projects
Smaller projects, most of them born from a practical need.
The home cloud
Files, photos and cameras on two mini PCs, with services that switch off when idle.

Gestore Spese
Bank statements from several banks, categories and reports of household spending.
From university
Projects from my physics studies in Pisa. The code is public.

A neural network from scratch in Cython
Backpropagation and training written by hand, without deep learning libraries.

evaLEs
The Lyapunov spectrum of a dynamical system, in Python with Numba.

Alfvén waves in one dimension
Nonlinear evolution in Fortran, with compact finite differences.

Box counting in Cython
Fractal dimension of a point set using a tree.

LordOfRings
Finding rings in a sparse matrix, also on GPU. Group work.

Lecture Notes
My physics course notes, in LaTeX with the code for the figures.
Image credits: “Chairs in a Row - Greenwood Louisiana Flea Market” by Steve Snodgrass, CC BY 2.0; page views graph by Joe Sutherland, CC0. From Wikimedia Commons. The other images are screenshots of the projects.