Enzo Cocca

Archeologia,
scritta in codice
Archaeology,
written in code

Archeologo e sviluppatoreArchaeologist and developer

Costruisco gli strumenti che poi uso in trincea. Sono lo sviluppatore principale di pyArchInit, il sistema libero di documentazione archeologica per QGIS, e intorno a quello è cresciuto tutto il resto: fotogrammetria da telefono e da drone, app che funzionano offline sotto il sole, analisi spaziale, banche dati per scavi subacquei e archivi che nessuno riusciva più a consultare. Tutto libero o autoinstallabile: i dati di scavo restano di chi scava.

I build the tools I then use in the trench. I am the lead developer of pyArchInit, the free archaeological recording system for QGIS, and everything else grew around it: photogrammetry from phone and drone, apps that work offline under the sun, spatial analysis, databases for underwater excavations and archives nobody could search any more. All of it open or self-hosted: excavation data stays with the people who dig it.

US 01SU 01

pyArchInit e il suo ecosistemapyArchInit and its ecosystem

Il sistema che uso per registrare gli scavi: schede stratigrafiche, materiali, matrix di Harris e cartografia dentro QGIS. Ne sono lo sviluppatore principale, e intorno al plugin è cresciuta una famiglia di strumenti per portarlo in campo, sul web e sul telefono.

The system I use to record excavations: stratigraphic sheets, finds, Harris matrix and mapping inside QGIS. I am its lead developer, and a family of tools has grown around the plugin to take it into the field, onto the web and onto a phone.

pyArchInit

Python · QGIS plugin · GPL-2.0 · ★13

Il plugin QGIS per la documentazione archeologica: unità stratigrafiche, reperti, campionature, periodizzazioni, matrix di Harris e schede di stampa, su PostGIS o SpatiaLite. Sono il primo contributore del repository ufficiale, con oltre 2.100 commit.

The QGIS plugin for archaeological recording: stratigraphic units, finds, samples, phasing, Harris matrix and printable sheets, on PostGIS or SpatiaLite. I am the top contributor to the official repository, with more than 2,100 commits.

  • QGIS
  • PostGIS
  • stratigrafiastratigraphy

pyarchinit-qfield

QML · QField plugin · ★1

Plugin QField per schedare US e materiali direttamente in trincea, con lo stesso schema dati di pyArchInit: quello che registri sul tablet rientra nel database senza ricopiature.

A QField plugin to record stratigraphic units and finds straight from the trench, on the same data schema as pyArchInit: what you type on the tablet goes back into the database without being copied out by hand.

  • QField
  • campofield
  • offline

pyarchinit-mini

Python · web · desktop · CLI · REST

Una versione autonoma e leggera di pyArchInit, senza dipendenze GIS: stessa gestione di siti, US e inventario materiali, ma con quattro interfacce — web, desktop, riga di comando e API REST.

A standalone, lightweight pyArchInit without the GIS dependencies: the same sites, stratigraphic units and finds inventory, reachable through four interfaces — web, desktop, command line and a REST API.

  • FastAPI
  • SQLite
  • REST

pyarchinit-storage-server

Python · Railway

Server proxy per lo storage remoto di pyArchInit su Google Drive con service account: le foto di scavo restano raggiungibili da tutta la squadra senza distribuire credenziali.

A proxy server for pyArchInit's remote storage on Google Drive with a service account: excavation photos stay reachable by the whole team without handing credentials around.

  • storage
  • Google Drive

pyarchinit-api-docs

mkdocs-material

Il riferimento API del plugin, generato automaticamente dal codice: serve a chi vuole estendere pyArchInit invece di rifarlo da capo.

The plugin's API reference, generated automatically from the code: it is for people who want to extend pyArchInit instead of rebuilding it.

  • documentazionedocumentation

pyarchinit-website

TypeScript

Il sito del progetto: presentazione, guide e materiali per chi si avvicina a pyArchInit per la prima volta.

The project's website: overview, guides and material for anyone approaching pyArchInit for the first time.

  • web
US 02SU 02

Rilievo, fotogrammetria, topografiaSurvey, photogrammetry, topography

Portare le misure dallo scavo al modello senza passare da una workstation. Fotogrammetria da telefono e da drone, stazione totale, sezioni e profili.

Getting measurements from the trench to the model without going through a workstation. Photogrammetry from phone and drone, total station, sections and profiles.

Photo3D

PrivatoPrivate

Swift · Kotlin · Python · iOS / Android / macOS / Windows / Linux

Fotogrammetria che sta in tasca e gira sul tuo computer. Scatti con il telefono o pianifichi un volo con un drone DJI, e il tuo Mac, Windows o Linux elabora con Metashape o WebODM: nessun account cloud, le foto non escono di casa. Maschere con un tocco, scala metrica reale, GCP, sezioni e profili misurati dentro l'app. Provato in campo su una trincea a Bintan: 177 foto da drone, 302.928 facce.

Photogrammetry that fits in your pocket and runs on your own computer. Shoot with the phone or plan a DJI drone flight, and your Mac, Windows or Linux box processes it with Metashape or WebODM: no cloud account, the photos never leave the house. One-tap masking, real metric scale, ground control points, sections and profiles measured inside the app. Field-tested on a trench in Bintan: 177 drone photos, 302,928 faces.

  • Metashape
  • WebODM
  • DJI
  • SwiftUI
  • Compose

Total Open Station

Python · ★83 · contributore

Il software libero che scarica ed esporta i dati dalle stazioni totali, nato nel progetto IOSA di Stefano Costa e Luca Bianconi. Contribuisco al progetto a monte e ne curo il ponte verso QGIS.

The free software that downloads and exports data from total stations, born in the IOSA project by Stefano Costa and Luca Bianconi. I contribute upstream and maintain the bridge towards QGIS.

  • stazione totaletotal station
  • upstream

totalopenstationToQgis

Python · QGIS plugin · ★1

Il ponte: lancia Total Open Station da dentro QGIS, riconosce le porte seriali e USB, e porta i punti battuti direttamente nel progetto, con anteprima prima di importare.

The bridge: launches Total Open Station from inside QGIS, detects serial and USB ports, and brings surveyed points straight into the project, with a preview before importing.

  • QGIS
  • serialeserial

dual_profile_viewer

Python · QGIS plugin · ★1

Profili altimetrici in QGIS: profilo singolo o doppio, sezioni multiple su poligono, vista 3D ed esportazione vettoriale georiferita. Nato per l'archeologia, usato anche in geologia e ingegneria.

Elevation profiles in QGIS: single or dual profile, multi-section polygons, 3D view and georeferenced vector export. Built for archaeology, useful in geology and engineering too.

  • DEM
  • profiliprofiles
  • 3D

wall_section

Python · QGIS plugin

Sezioni attraverso più DEM sovrapposti, restituite come multipoligoni topologicamente corretti e in scala: serve a disegnare i prospetti dei muri e le sequenze stratigrafiche senza ridisegnarli a mano.

Sections across several stacked DEMs, returned as topologically correct, scaled multipolygons: it is how you draw wall elevations and stratigraphic sequences without redrawing them by hand.

  • DEM
  • muriwalls
  • stratigrafiastratigraphy
US 03SU 03

App da campoField apps

Quello che serve in trincea funziona offline, si usa con le mani sporche e non chiede di registrarsi da nessuna parte.

What you need in a trench works offline, can be used with dirty hands and does not ask you to sign up anywhere.

Giornale di Scavo

PrivatoPrivate

Swift / SwiftUI · Kotlin / Compose · iOS + Android

Il diario di scavo digitale che sostituisce quello cartaceo: semplicissimo e 100% offline, tutto resta sul dispositivo. Stessa impostazione e stesse funzioni nelle due versioni native, iOS e Android.

The digital excavation diary that replaces the paper one: dead simple and 100% offline, everything stays on the device. Same shape and same features in both native versions, iOS and Android.

  • offline
  • SwiftUI
  • Jetpack Compose

FieldNotes

PrivatoPrivate

Swift · iOS + macOS

App per ricognizioni etnografiche e archeologiche: osservazioni, note vocali, foto, schizzi disegnati a mano e coordinate GPS su ogni rilevamento, raccolti in survey.

An app for ethnographic and archaeological surveys: observations, voice notes, photos, hand-drawn sketches and GPS coordinates on every finding, gathered into surveys.

  • ricognizionesurvey
  • GPS
  • multipiattaformamultiplatform

Rendiconta

PrivatoPrivate

Swift · Kotlin · iOS + Android

Scatti una foto a scontrini e fatture e l'app compila la rendicontazione della missione nel formato del modulo di richiesta rimborsi: elenco numerato dei giustificativi, importi, totale e foto in allegato.

Photograph your receipts and invoices and the app fills in the mission expense report in the reimbursement-form format: numbered list of receipts, amounts, total and the photos attached.

  • OCR
  • missionimissions

Create Layer

QML · QField ≥ 3.2

Plugin QField per creare nuovi layer direttamente sul campo, digitalizzare geometrie ed esportare i dati raccolti senza tornare a QGIS desktop.

A QField plugin to create new layers directly in the field, digitise geometries and export what you collected without going back to QGIS desktop.

  • QField
  • GeoJSON
US 04SU 04

Analisi spazialeSpatial analysis

Strumenti per far dire qualcosa ai dati: superfici di costo, geostatistica, interrogazione di database spaziali, decomposizione di palinsesti.

Tools that make the data say something: cost surfaces, geostatistics, spatial database querying, palimpsest decomposition.

GeoArchaeo

Python · QGIS plugin · ★4

Geostatistica per l'archeologia dentro QGIS: kriging, variogrammi e riconoscimento di pattern con machine learning, per capire come si distribuiscono i materiali sul terreno.

Geostatistics for archaeology inside QGIS: kriging, variograms and machine learning pattern recognition, to understand how finds are distributed across the ground.

  • kriging
  • machine learning

movecost

Python + R · QGIS plugin · ★1

Superfici di costo dipendenti dalla pendenza, percorsi e corridoi a costo minimo per lo studio del movimento umano nel paesaggio: porta il pacchetto R movecost di Gianmarco Alberti dentro QGIS con un'interfaccia Python.

Slope-dependent accumulated cost surfaces, least-cost paths and corridors for the study of human movement across the landscape: it brings Gianmarco Alberti's movecost R package into QGIS behind a Python interface.

  • least-cost path
  • R
  • paesaggiolandscape

GeoSQL

Python + Kotlin · libreria + plugin PyCharm

Cassetta degli attrezzi per database spaziali: PostGIS, SpatiaLite, Oracle Spatial, SQL Server e MySQL, più SQL su CSV, Excel, Parquet, GeoJSON e shapefile via DuckDB. Le interrogazioni si possono scrivere in linguaggio naturale, e il plugin per PyCharm mostra il risultato su mappa.

A toolkit for spatial databases: PostGIS, SpatiaLite, Oracle Spatial, SQL Server and MySQL, plus SQL over CSV, Excel, Parquet, GeoJSON and shapefiles through DuckDB. Queries can be written in plain language, and the PyCharm plugin puts the result on a map.

  • PostGIS
  • DuckDB
  • AI

palimpsestr

R · ★2

Decomposizione probabilistica dei palinsesti archeologici con Stratigraphic Entanglement Fields: prova a separare gli eventi che si sono sovrapposti in un unico deposito.

Probabilistic decomposition of archaeological palimpsests using Stratigraphic Entanglement Fields: an attempt to pull apart the events that piled up into a single deposit.

  • R
  • bayesianoBayesian
  • teoriatheory
US 05SU 05

Ceramica e repertiPottery and finds

Classificare, confrontare e misurare i materiali: dal coccio disegnato al modello 3D, con l'aiuto della visione artificiale quando serve.

Classifying, comparing and measuring finds: from the drawn sherd to the 3D model, with computer vision where it helps.

Ceramica Classifier

Python · machine learning

Classificazione automatica di frammenti ceramici decorati dagli scavi in Oman, dall'Umm an-Nar al Wadi Suq fino all'Età del Ferro: confronta le decorazioni con collezioni di riferimento e propone paralleli tipologici e attribuzioni cronologiche.

Automatic classification of decorated pottery sherds from excavations in Oman, from Umm an-Nar and Wadi Suq to the Iron Age: it compares decorations with reference collections and proposes typological parallels and chronological attributions.

  • Oman
  • tipologiatypology
  • ML

Ceramica KhUTM

Python · Flask

La stessa idea calibrata sulle collezioni del museo KhUTM: confronto con il corpus Schmidt 1937 e con altre raccolte di riferimento per datare i frammenti decorati.

The same idea tuned to the KhUTM museum collections: comparison against the Schmidt 1937 corpus and other reference collections to date decorated sherds.

  • museomuseum
  • corpus

CeramicaDatabase

Python · web

Visore e gestionale web unificato per le collezioni ceramiche della penisola arabica: sfoglia, confronta, ruota e cataloga i pezzi da una sola interfaccia.

A unified web viewer and manager for archaeological ceramic collections from the Arabian Peninsula: browse, compare, rotate and catalogue the pieces from one interface.

  • catalogocatalogue
  • web

BrozeAXE-AI

Python · mesh 3D · ★1

Analisi morfometrica e classificazione di bronzi dell'Età del Bronzo a partire da mesh 3D (OBJ, PLY, STL). Nato per il ripostiglio di asce di Savignano, unisce misura sulla mesh, statistica, machine learning e ragionamento con un modello linguistico.

Morphometric analysis and classification of Bronze Age metalwork from 3D meshes (OBJ, PLY, STL). Built for the Savignano axe hoard, it combines measurement on the mesh, statistics, machine learning and reasoning with a language model.

  • 3D
  • morfometriamorphometry
  • Età del BronzoBronze Age

sherdtool-web

PrivatoPrivate

Python · web self-hosted

Applicazione web per l'analisi dei cocci a partire da scansioni 3D, da installare sul proprio server: misure, orientamento e confronti sul frammento digitalizzato.

A self-hosted web application for analysing pottery sherds from 3D scans: measurements, orientation and comparisons on the digitised fragment.

  • 3D
  • self-hosted

Fauna Manager

Python · pyArchInit

Gestione delle schede faunistiche (scheda FR) integrata con pyArchInit: i dati archeozoologici si agganciano alle unità stratigrafiche invece di vivere in un foglio di calcolo a parte.

Faunal record sheets (FR sheet) integrated with pyArchInit: zooarchaeological data hooks onto the stratigraphic units instead of living in a separate spreadsheet.

  • archeozoologiazooarchaeology
  • QGIS
US 06SU 06

Archeologia subacquea e marittimaUnderwater and maritime archaeology

Sott'acqua cambia tutto: i tempi sono quelli della bombola, la rete non c'è e i dati devono aspettare la risalita.

Underwater everything changes: your time is what the tank gives you, there is no network, and the data has to wait for the ascent.

Shipwreck Excavation

PrivatoPrivate

Python · QGIS plugin · PostGIS / Supabase

Sistema completo per lo scavo di relitti dentro QGIS: reperti con foto e modelli 3D, registro delle immersioni, squadre, costi e budget, bot Telegram per inserire i dati quando la rete non c'è, storage su Cloudflare R2 e Google Drive. Bilingue inglese e indonesiano.

A complete system for shipwreck excavation inside QGIS: finds with photos and 3D models, dive logs, crew, costs and budget, a Telegram bot for entering data when there is no network, storage on Cloudflare R2 and Google Drive. Bilingual, English and Indonesian.

  • relittishipwrecks
  • PostGIS
  • Supabase

HFF-Survey

Python · QGIS plugin · ★1

Plugin QGIS per le ricognizioni della Honor Frost Foundation: registrazione di siti e survey marittimi con lo stesso rigore di uno scavo terrestre.

A QGIS plugin for Honor Frost Foundation surveys: recording maritime sites and survey work with the same rigour as a land excavation.

  • survey
  • QGIS

HFF Telegram bot

PrivatoPrivate

Python · Telegram

Bot Telegram per inserire dati di campo in HFF-Survey: se il database non è raggiungibile mette le scritture in coda in locale e le rigioca appena la rete torna.

A Telegram bot for field data entry into HFF-Survey: when the database is unreachable it queues the writes locally and replays them as soon as the network is back.

  • offline-first
  • bot
US 07SU 07

Banche dati e cartografia in reteDatabases and web mapping

Progetti nati su territori precisi — Soqotra, il Tamil Nadu, le Nilgiri — dove il problema non era raccogliere i dati ma renderli consultabili.

Projects born on specific ground — Soqotra, Tamil Nadu, the Nilgiris — where the problem was not collecting the data but making it searchable.

Soqotra Rock Art Database

Python · Flask · web

Catalogo web dell'arte rupestre di Soqotra: schedatura completa dei pannelli, autenticazione degli utenti e gestione condivisa dei record.

A web catalogue of Soqotra's rock art: full recording of the panels, user authentication and shared record management.

  • arte rupestrerock art
  • Yemen

Korkai Archaeological Map

HTML · Leaflet

Mappa interattiva dei siti archeologici intorno a Korkai, nel Tamil Nadu: un modo semplice per far vedere a chiunque dove sono le evidenze.

An interactive map of the archaeological sites around Korkai, Tamil Nadu: a plain way to show anyone where the evidence is.

  • India
  • mappamap

Badaga–English Dictionary

PrivatoPrivate

Python · FastAPI

Digitalizzazione del dizionario badaga–inglese di Hockings e Pilot-Raichoor (1992): le voci sono estratte dalle scansioni con un modello di visione, collegate al Dravidian Etymological Dictionary e cercabili anche per somiglianza fonetica.

A digitisation of the Badaga–English dictionary by Hockings and Pilot-Raichoor (1992): entries are pulled out of the scans with a vision model, linked to the Dravidian Etymological Dictionary and searchable by phonetic similarity.

  • linguisticalinguistics
  • India
  • OCR

Nilgiri Deforestation

PrivatoPrivate

Python · Landsat · Sentinel

Analisi multi-temporale e multi-sensore della copertura forestale delle Nilgiri Hills dal 1988 a oggi: venticinque classificazioni Landsat messe a confronto per misurare quanto bosco è sparito.

Multi-temporal, multi-sensor analysis of forest cover in the Nilgiri Hills from 1988 to today: twenty-five Landsat classifications compared to measure how much forest has gone.

  • telerilevamentoremote sensing
  • India
US 08SU 08

Intelligenza artificiale applicataApplied AI

Non l'IA come vetrina, ma come attrezzo: leggere archivi, scrivere documentazione, orchestrare procedure che altrimenti restano nel cassetto.

Not AI as a showcase but as a tool: reading archives, writing documentation, orchestrating procedures that would otherwise stay in a drawer.

Ganesha RAG

PrivatoPrivate

Python · Flask · LangChain · FAISS

Piattaforma RAG self-hosted per gruppi di ricerca: si conversa con i propri documenti ottenendo citazioni verificabili, si generano grafici e report, si georiferiscono mappe storiche, si trascrivono registrazioni con Whisper e si lavora in chat tradotta. Cinque lingue: olandese, inglese, tamil, italiano e kannada.

A self-hosted RAG platform for research teams: chat with your own documents and get verifiable citations, generate charts and reports, georeference historical maps, transcribe recordings with Whisper and work in a translated team chat. Five languages: Dutch, English, Tamil, Italian and Kannada.

  • RAG
  • Whisper
  • multilinguamultilingual

PyArchInit DocuGenius

PrivatoPrivate

Kotlin · plugin JetBrains

Generatore di documentazione per le IDE JetBrains: dal codice tira fuori un manuale utente e un riferimento API in PDF, con impaginazione da manuale vero — copertina, titoli, riquadri di nota e avvertenza — e in più lingue.

A documentation generator for JetBrains IDEs: it turns code into a user manual and an API reference in PDF, laid out like a real manual — cover, headings, tip and warning boxes — in several languages.

  • IntelliJ
  • PDF
  • documentazionedocumentation

Gennaro / modelbuilderAI

Python · workflow builder

Orchestratore di agenti con costruttore visuale di flussi: si compone la catena di lavorazione trascinando i blocchi, invece di scrivere ogni volta lo stesso script di collegamento.

An agent orchestrator with a visual workflow builder: you compose the processing chain by dragging blocks instead of writing the same glue script over and over.

  • agentiagents
  • workflow

Deep Search AI

Python · vector database

Ricerca multimodale su testi, immagini e documenti con agenti specializzati e database vettoriale: pensata per chi ha archivi eterogenei e nessuna voglia di aprirli uno a uno.

Multimodal search over texts, images and documents with specialised agents and a vector database: made for people with heterogeneous archives and no wish to open them one by one.

  • ricerca semanticasemantic search
  • agentiagents
US 09SU 09

Ultimi repositoryLatest repositories

Repository pubblici toccati negli ultimi dodici mesi che non hanno ancora una scheda scritta a mano: nome e descrizione sono quelli di GitHub e si aggiornano da soli.

Public repositories touched in the last twelve months without a hand-written card yet: name and description come from GitHub and update by themselves.

pyarchinit-photogrammetry

Python · GPL-2.0 · ★6

photogrammetry, python, rust, computer-vision, structure-from-motion, 3d-reconstruction, archaeology, gis, open-source

photogrammetry, python, rust, computer-vision, structure-from-motion, 3d-reconstruction, archaeology, gis, open-source

  • fotogrammetriaphotogrammetry
  • pyArchInit

geolibre-movecost

TypeScript · ★2

movecost (least-cost path analysis) plugin for GeoLibre — local R service or R in WebAssembly

movecost (least-cost path analysis) plugin for GeoLibre — local R service or R in WebAssembly

  • least-cost path
  • GeoLibre
  • plugin

rete-dei-rimontaggi

HTML · GPL-3.0

Rete dei rimontaggi: analisi spaziale dei rimontaggi ceramici e litici in un solo file HTML (rete degli attacchi, US, componenti statistiche, palinsesto)

Rete dei rimontaggi: analisi spaziale dei rimontaggi ceramici e litici in un solo file HTML (rete degli attacchi, US, componenti statistiche, palinsesto)

  • rimontaggirefitting
  • analisi spazialespatial analysis
  • ceramicapottery
  • liticalithics

photo3d-guida

HTML

Photo3D — guida di campo: installazione e uso

Photo3D — guida di campo: installazione e uso

  • Photo3D
  • installer

photo3d-releases

2026

Pacchetti pronti di Photo3D (APK Android, server Mac/Windows/Linux). Il sorgente sta nel repo privato photo3d.

Pacchetti pronti di Photo3D (APK Android, server Mac/Windows/Linux). Il sorgente sta nel repo privato photo3d.

  • Photo3D
  • Android

giornale-di-scavo

HTML

Informativa sulla privacy dell'app Giornale di Scavo

Informativa sulla privacy dell'app Giornale di Scavo

  • privacy
  • HTML

hff_installer

Python

Installer plugin for the HFF (Honor Frost Foundation) QGIS plugin — downloads the stable master branch from GitHub and keeps the install folder correctly named 'HFF'.

Installer plugin for the HFF (Honor Frost Foundation) QGIS plugin — downloads the stable master branch from GitHub and keeps the install folder correctly named 'HFF'.

  • QGIS
  • plugin
  • installer

clip_raster_layout

Python · GPL-2.0

A comprehensive QGIS plugin for topographic analysis that provides batch raster clipping, interactive polygon drawing, and elevation profile generation.

A comprehensive QGIS plugin for topographic analysis that provides batch raster clipping, interactive polygon drawing, and elevation profile generation.

  • DEM
  • QGIS
  • plugin

AI_ricevute

Python

Un'applicazione desktop Python per l'automazione della gestione e analisi degli scontrini, con supporto per valute multiple e generazione di report dettagliati.

Un'applicazione desktop Python per l'automazione della gestione e analisi degli scontrini, con supporto per valute multiple e generazione di report dettagliati.

  • AI
  • ricevutereceipts

pyarchinit_installer

Python · GPL-3.0

A QGIS plugin to easily install and update PyArchInit directly from GitHub.

A QGIS plugin to easily install and update PyArchInit directly from GitHub.

  • QGIS
  • pyArchInit
  • plugin
  • installer

geosql-plugin

Kotlin

GeoSQL — AI-Powered Spatial Database Toolkit for PyCharm. Natural language → SQL, map visualization, multi-database support (PostGIS, SpatiaLite, Oracle Spatial, SQL Server Spatial, MySQL Spatial).

GeoSQL — AI-Powered Spatial Database Toolkit for PyCharm. Natural language → SQL, map visualization, multi-database support (PostGIS, SpatiaLite, Oracle Spatial, SQL Server Spatial, MySQL Spatial).

  • PostGIS
  • SpatiaLite
  • PyCharm
  • AI