Each project starts with a real problem and a dataset. We build the pipeline, train the models, deploy the infrastructure, and ship the interface.
01Live
Tutela Ignis
Wildfire Prediction System
Domain: Environmental ML / Climate Science
Tutela Ignis is a deployed environmental-ML system, live at tutela.land. A multi-source pipeline ingests ERA5-Land reanalysis, IPMA weather, NASA FIRMS active detections, ICNF historical fires, Copernicus imagery, DEM terrain, land cover, and vegetation moisture into a 63-feature engineering pipeline. A seasonal XGBoost + LightGBM ensemble, with post-hoc probability calibration and a Bayesian prior shift at serving, predicts daily fire risk across continental Portugal at 1 km resolution, benchmarked honestly against a stratified skill ceiling. The public map serves real per-cell gridded weather and FWI from a nightly ERA5 cron. It runs on an NVIDIA GB10 Grace Blackwell node with nightly Azure disaster-recovery backups and hourly external health alerting.
Live public risk map at tutela.land
Seasonal XGBoost + LightGBM ensemble with calibrated probabilities
CIAITEX processes municipal archival records through a 5-DAG Airflow pipeline. It ingests descriptive records and digital objects from the Archeevo API, then runs PP-OCRv5 for typed text, TrOCR-Large for handwriting, and DocLayout-YOLO for page layout analysis. Qwen3-VL 30B produces visual descriptions and Qwen3 32B enriches ISAD(G) archival metadata. Embeddings from E5-Large (text), SigLIP 2 (visual), and ColQwen2.5 (multi-vector) power semantic retrieval over Qdrant, and a Streamlit portal exposes 8 interactive pages including a LangGraph RAG chatbot for conversational search across the archive. Eleven models are orchestrated VRAM-aware on a single 32GB GPU.
11 AI models across OCR, VLM, LLM, NER, and embeddings
VRAM-aware orchestration on a single 32GB GPU
Multi-vector retrieval: text + visual + ColBERT-style
A k3s Kubernetes cluster on RTX 5090 GPU hardware, managed entirely through Flux CD GitOps and Ansible playbooks. It serves LLM inference via native Ollama and hosts the document-AI and conversational services for the municipality, exposed securely through Cloudflare Tunnel with browser-authenticated access. CI/CD runs on GitLab with an in-cluster runner, node provisioning is Ansible-automated, and the infrastructure is documented via MkDocs. Production-grade MLOps for local government: reproducible, version-controlled, and GPU-aware.
A real-time 3D conversational avatar for citizen-facing public service at a Portuguese municipality. The browser frontend renders a TalkingHead + Three.js GLB avatar behind a login gate, captures microphone audio, and streams it to a FastAPI WebSocket backend on an RTX 5090 server. Speech is transcribed with faster-whisper (large-v3-turbo), reasoned over by a custom Ollama model (vfx-assistant, Qwen3 30B-A3B) grounded in municipal knowledge, and spoken back with multilingual neural TTS. The system auto-detects and answers in Portuguese, English, Spanish, or French. The static frontend ships on Cloudflare Pages and inference is reached through a Cloudflare Tunnel.
Real-time speech-to-speech in the browser
Custom municipal LLM persona (vfx-assistant, Qwen3 30B)