---
title: "Projects"
url: "https://edoardogabrielli.com/en/projects"
lang: "en"
updated: "2026-11-02"
---

# Projects

> Projects by Edoardo Gabrielli: OCR and trained models, RAG systems, a CMS with AI, personal apps and physics 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.

![Row-by-row review of the extracted fields next to the scanned page, example data](https://edoardogabrielli.com/media/originals/2026/11/7828f5e0519e4995830a50cbf947fae1/registri-revisione.webp)

[Automatic reading of archive registers](https://edoardogabrielli.com/en/projects/archive-registers)

### A knowledge base with cited answers

A RAG system that collects institutional documents and answers citing its sources.

![The page of a source to collect, with the steps of the guided setup and the latest runs.](https://edoardogabrielli.com/media/originals/2026/11/22f6762e83e64b929c3c46ea67cb5319/rag-porto-fonte.webp)

[A knowledge base with cited answers](https://edoardogabrielli.com/en/projects/port-authority-knowledge-base)

### Cultural heritage catalogue

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

![A card in the old 2007 interface](https://edoardogabrielli.com/media/originals/2026/11/ea8ce44f773845afa764e143eb59e1ce/catalogo-scheda-prima.webp)

[Cultural heritage catalogue](https://edoardogabrielli.com/en/projects/cultural-heritage-catalogue)

### Digitisation tools

A desktop app to create and validate the metadata of digitised documents, with a panel for users and licences.

![XML metadata editor with project tree and general metadata tab](https://edoardogabrielli.com/media/originals/2026/11/f6178ed2b09146058ffc581afda305be/digitalizzazione-editor-v2.webp)

[Digitisation tools](https://edoardogabrielli.com/en/projects/digitisation)

## 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.

![Editing directly on the page, with a side panel for the selected block.](https://edoardogabrielli.com/media/originals/2026/11/2f702cb462ea40ecb1ee70a68d427c7c/base-cms-modifica-sulla-pagina.webp)

[base-cms](https://edoardogabrielli.com/en/projects/base-cms)

### PaceMind

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

![Time prediction on a GPX route, with confidence interval and method used.](https://edoardogabrielli.com/media/originals/2026/11/013a4aa205c94b899b45af85aea6e70d/pacemind-previsione.webp)

[PaceMind](https://edoardogabrielli.com/en/projects/pacemind)

### ExamForge

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

![Topic index extracted from the course material (sample data).](https://edoardogabrielli.com/media/originals/2026/11/ee83a1bd08d841e99e328882f56a61a2/examforge-argomenti.webp)

[ExamForge](https://edoardogabrielli.com/en/projects/examforge)

### Work Planner

Plans workload and shows the effect of every change before you approve it.

![Queue on the left, week on the right; below, the proposal with before and after impact (sample data).](https://edoardogabrielli.com/media/originals/2026/11/f018617d4b634f41a1e596c12429dd28/work-planner-planning.webp)

[Work Planner](https://edoardogabrielli.com/en/projects/work-planner)

## 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.

![Diagram: tunnel, services, data disk and backup](https://edoardogabrielli.com/media/originals/2026/11/282d114d19c0493d915aeae82b39fb99/infra-casa-schema.svg)

[The home cloud](https://edoardogabrielli.com/en/projects/home-cloud)

### Gestore Spese

Bank statements from several banks, categories and reports of household spending.

![Dashboard with monthly income and expenses and spending by category (made-up data)](https://edoardogabrielli.com/media/originals/2026/11/fb1e7a36ea3143c2a546e6f6a257ed0e/gestore-spese-dashboard.webp)

[Gestore Spese](https://edoardogabrielli.com/en/projects/expense-manager)

## 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.

![Animation: the network grows one hidden neuron at a time, its prediction sharpens until it separates the two spirals and the error falls](https://edoardogabrielli.com/media/originals/2026/11/f7b0a3b2dec642ca880b28a45e857358/nn-cython-cascade.webp)

[A neural network from scratch in Cython](https://edoardogabrielli.com/en/projects/neural-network-cython)

### evaLEs

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

![Trajectory of the Lorenz system, used as an example](https://edoardogabrielli.com/media/originals/2026/11/281c0262b6ca4ccbbf545c0dd17d6dab/evales-lorenz.webp)

[evaLEs](https://edoardogabrielli.com/en/projects/evales)

### Alfvén waves in one dimension

Nonlinear evolution in Fortran, with compact finite differences.

![Evolution of Z+ and Z- at five times, with and without nonlinearity](https://edoardogabrielli.com/media/originals/2026/11/254a421006ea4c818722a4f6d334e1c2/elsasser1d-evoluzione.webp)

[Alfvén waves in one dimension](https://edoardogabrielli.com/en/projects/alfven-waves-1d)

### Box counting in Cython

Fractal dimension of a point set using a tree.

![Tree built on the Hénon map at four levels](https://edoardogabrielli.com/media/originals/2026/11/ab6cd4c5705f4c3fa5f8adf3dd8c7a18/cyboxcounting-albero.webp)

[Box counting in Cython](https://edoardogabrielli.com/en/projects/box-counting-cython)

### LordOfRings

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

![Rings found in a sparse matrix](https://edoardogabrielli.com/media/originals/2026/10/ff2193bc58004ab68e8c9ec148e58478/lordofrings.png)

[LordOfRings](https://edoardogabrielli.com/en/projects/lordofrings)

### Lecture Notes

My physics course notes, in LaTeX with the code for the figures.

![Bifurcation diagram with the Lyapunov exponent in red, from the notes](https://edoardogabrielli.com/media/originals/2026/11/2bc75e3a261d48cdbb27483d040aa843/lecture-notes-lyapunov.webp)

[Lecture Notes](https://edoardogabrielli.com/en/projects/lecture-notes)

[More projects on GitHub](https://github.com/dodogabrie)

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.