Diogo Peralta Cordeiro

Projects

Software, systems and research.

Long-running backend work, doctoral systems research, public software, standards work and smaller projects that are still useful. Source and status are kept explicit.

Flagship contribution

Engineering a federated social platform.

Long-term ownership across architecture, implementation, releases, documentation and contributor support.

Lead developer and maintainer · 2019-2022

GNU social

I worked across GNU social v2 and led the v3 effort, modernising a long-lived PHP codebase while preserving the interoperability and community practices that make federated software useful. The work was funded in part through the EU Horizon 2020 NGI0 Discovery Fund.

Architecture Modern PHP, Symfony, plugin boundaries and application structure.
Federation ActivityPub behaviour, APIs and interoperability across independent servers.
Backend Data modelling, attachments, storage and maintainable service boundaries.
Community Reviews, onboarding, mentoring, documentation and delivery planning.
  • PHP
  • Symfony
  • ActivityPub
  • SQL
  • APIs
  • Linux

Research and field systems

Spatial computing, perception and dependable systems.

Public summaries focus on engineering questions and demonstrated capabilities; unpublished implementation and evaluation details remain private.

Doctoral research · public overview

Reusable projector-camera systems

I research systems that combine projection, visual sensing and physical surfaces to create interactive spatial environments. The aim is to move beyond one-off demonstrations towards systems that can be calibrated, deployed, operated and extended as maintainable infrastructure.

  • C++
  • Python
  • Computer vision
  • Projection-based AR
  • Linux
  • Experimental systems

Doctoral systems research

Multi-application spatial AR

One strand of the work asks how several interactive applications can share a projected environment without turning the installation into one tightly coupled program. It covers application boundaries, lifecycle management, resource coordination and predictable operation.

  • Systems architecture
  • Application isolation
  • Resource management
  • Interoperability

Applied product initiative

Spectaria

Spectaria applies my projection-based interaction work to museums and cultural venues through reusable spatial installations, web-based authoring and operation, and privacy-aware visitor interaction.

  • Pro-Cam systems
  • Computer vision
  • Web architecture
  • Interaction design
  • Product engineering

Public research prototype · ROS 2 · 2023

Cinematic Stage Recording

A ROS 2 and Gazebo prototype that uses a fixed depth camera above a stage to infer the spatial extent of the action and automatically reposition a differential-drive RGB camera platform.

  • ROS 2 Humble
  • Ignition Fortress
  • Python
  • OpenCV
  • Depth cameras
  • Robot control

Field robotics and dependable systems

Ocean and aerospace systems

At FEUP/LSTS I worked on docking and target tracking for an autonomous surface vehicle. In aerospace contexts I worked on on-board data handling and supervised a student software team, with reliability, interfaces and coordination treated as engineering concerns.

  • C++
  • Robotics
  • On-board computing
  • Dependability
  • Team supervision

Research engineering

Machine perception

At INESC TEC I built research infrastructure around parametric human-body models, connecting state-of-the-art methods, reproducible experiments and reporting that another researcher could pick up and extend.

  • Computer vision
  • Python
  • Research infrastructure
  • Reproducibility

Selected software

Software I designed and published.

Projects with inspectable source, clear ownership and enough documentation to be useful beyond their original context.

Original project · MIT · 2023

SotA Lens

An open-source toolkit for exploratory literature mapping through citation networks. A Python pipeline turns scholarly metadata into inspectable graphs and browser-ready datasets; a static explorer keeps local files in the browser.

  • Python
  • NetworkX
  • JavaScript
  • GEXF

MIT · Web, PWA and Android · 2023

Virtual Glasses Try-On

A real-time eyewear try-on built from one TypeScript codebase. MediaPipe landmarks drive frame position and perspective while face-aware occlusion keeps the temple arms behind the head.

  • TypeScript
  • MediaPipe
  • Vite
  • Capacitor
  • PWA

MIT · Alpha 0.1.0 · 2023

Image Classification

A configuration-driven PyTorch toolkit for training, evaluating and running image classifiers on arbitrary folder datasets, with explicit splits, augmentation, checkpoints and reproducibility metadata.

  • Python
  • PyTorch
  • torchvision
  • Docker
  • GitHub Actions

MIT · Deployable release · 2018

FreshSplash

A self-hosted wallpaper community with a hardened PHP upload service, gallery and API, paired with an atomic GNU/Linux client and systemd user timer.

  • PHP
  • SQLite
  • POSIX shell
  • systemd
  • Docker

AGPL-3.0-or-later · 2018

Fun with Binary

An interactive browser-and-ESP8266 exercise for learning binary representation through six switches, live sums and optional physical LED feedback. It is still used at the University of Porto.

  • JavaScript
  • ESP8266
  • Arduino
  • Teaching

Live · MIT · 2023-2026

STCP Chatbot

A shared interface for Porto public-transport information. It handles expected passages, route lookup and platform-specific favourites through Telegram, Discord and encrypted Matrix conversations.

  • PHP
  • SQLite
  • Telegram
  • Discord
  • Matrix
  • E2EE

Live U.Porto canteen bot · MIT

Multirest Telegram Bot

A quick way to check weekly U.Porto canteen menus without repeatedly opening the supplier website. It formats the menu by weekday and provides direct commands for several faculties.

  • PHP
  • Telegram
  • U.Porto
  • Webhook

Focused GNU/Linux utility · MIT

Spotlight Wallpaper

A dependency-light POSIX-shell command that downloads a Microsoft Spotlight landscape image, validates it and atomically updates a configured wallpaper file.

  • POSIX shell
  • curl
  • Python
  • GNU/Linux

Academic archive · Preserved attribution

Compiler and coursework archive

Russel! is a Haskell compiler for a small Rust-like language. A separate archive preserves selected coursework and teaching prototypes with their original licences and attribution.

  • Haskell
  • Compilers
  • Algorithms
  • Numerical methods
  • Robotics

MinuteArc, Firefolio, tax and interest tools, and other smaller utilities are catalogued separately with their current status, licence and links.

Open the complete Apps page

Open source and standards

Work beyond my own repositories.

Maintenance, protocol proposals and upstream changes are shown with their actual status. Open or closed work is not presented as merged.

Maintained fork

XMPPHP

Maintenance of an established PHP library for communicating with XMPP services, preserving the original authors’ attribution and project history.

FEP-2100 · Withdrawn

Unbound Group and Organization

A design for linking Group or Organization actors so communities could cooperate across independent servers. I withdrew it when I could not give it the sustained time needed.

FEP-8c3f · Co-authored · Withdrawn

Web Monetization

A proposal co-authored with Phablulo Joel exploring Web Monetization information in ActivityPub. The discussion later informed the newer Payment Links draft.

Selected upstream contributions

awesome-prolog 3 merged

Added and corrected YAP, REPL and coding-guideline resources.

View contribution
Nautilus Merged

Simplified digest construction in an IndieWeb reader.

View contribution
repl.vim Merged

Added SWI-Prolog support to the editor integration.

View contribution
libcfu 2 merged

Added list-data deletion and a configurable free callback.

View contribution
LSTS/glued #42 Open · work in progress

Adds Cortex-A72 architecture support; it is not presented as accepted work.

View contribution
Symfony #42271 Closed · not merged

Proposed configurable permissions and stricter defaults in HttpFoundation file handling.

View contribution