Projects I've built and shipped.

Some I'm proud of, some I'd rewrite, some I forgot I built.

All projects

  • ExPLoRe

    Official PyTorch implementation of the ECCV 2026 ExPLoRe paper. Repurposes Soft-MoE dispatch weights as learned, per-patch loss coefficients for multi-objective masked image modeling — loss-coupling lets gradients flow through dispatch to the router for content-dependent specialization. ViT-Base + CLIP-B/16 teacher hits 80.6% linear probe and 85.3% finetune on ImageNet-1K.

    PyTorch Self-Supervised Soft-MoE MIM CLIP Computer-Vision ECCV-2026
  • MEDiC

    Official PyTorch implementation of MEDiC: Multi-objective Exploration of Distillation from CLIP. Combines token distillation, CLS alignment, and pixel reconstruction with Evolved Part Masking. Achieves 85.07% finetuning and 73.92% k-NN on ImageNet-1K.

    PyTorch Self-Supervised CLIP MIM Computer-Vision HuggingFace
  • Cross-scale MAE

    Official code for the paper 'Cross-Scale MAE: A Tale of Multi-Scale Exploitation in Remote Sensing'. Self-supervised learning for multi-scale geospatial imagery.

    PyTorch MIM Computer-Vision
  • MaskDistill-PyTorch

    First open PyTorch reproduction of MaskDistill with pre-trained weights. Reproduces 84.8% finetuning accuracy (paper: 85.3%), with full evaluation suite: semantic segmentation, object detection, k-NN, and linear probe.

    PyTorch Self-Supervised CLIP Computer-Vision HuggingFace
  • Minecraft AI

    A Reinforcement Learning agent that learns how to solve maze missions in Minecraft.

    PyTorch Reinforcement-Learning Minecraft
  • 3D Semantic Segmentation

    Semantic Segmentation with Transformers on 3D Medical Images.

    PyTorch OpenCV SegFormer Semantic-Segmentation Medical-Imaging
  • BERT Question Answering

    BERT-based question answering / reading comprehension methods on Rinehart Novels.

    PyTorch SpaCy HuggingFace Transformers BERT
  • Accident Severity Prediction

    Predicting the severity of car accidents from various attributes.

    Pandas Scipy Bayesian-Optimization XGBoost Neural-Network
  • COVID-19 Vaccination Prediction

    Simultaneous Time Series Forecasting on the global COVID-19 Daily Vaccinations.

    Tensorflow LSTMs Multivariate-Time-Series
  • Instagram Likes Prediction

    First attempt on predicting the likes a photo will get on Instagram.

    Tensorflow OpenCV Instagram Scraper CNN
  • RL Value Iteration

    Implementation of value iteration algorithm for calculating an optimal MDP policy.

    Markov-Decision-Process Value-Iteration RL
  • macro-engine

    A self-hosted nutrition tracker for people who track their macros closely. Log meals, track weight, set a deficit target, and plan meal variations. It computes your TDEE and daily macro targets, with optional Garmin sync and natural-language meal parsing.

    Next.js Node PostgreSQL Docker nutrition
  • gkos.dev (this site)

    The personal portfolio + blog you're on right now. Astro + Tailwind + React islands + Supabase + PostHog. Built to ship fast, stay light, and own its own analytics.

    Astro Tailwind React Supabase PostHog Vercel
  • Hevy → Garmin Sync

    Web tool that pulls strength workouts from Hevy and writes them into Garmin Connect with exercise names, sets, reps, weights, HR overlay, and calorie estimation. Solves a real gap in both apps' APIs. 36 stars, 109 forks — the most-forked project I have.

    Python FastAPI Garmin Hevy OAuth
  • FleetSmart.ai

    AI-powered maritime decision engine. Helps shipowners make profitable positioning decisions: which vessel goes where, when to reposition, how to bid on cargo. Role: technical lead on a contract build — backend, LLM agent layer, data pipelines, cloud infra. Closed-source (commercial product), live in production with paying customers.

    FastAPI Next.js GCP LLM Agents PostgreSQL
  • ShiftMD

    Intelligent shift scheduling system for medical departments using constraint programming optimization.

    Next.js Python OR-Tools Supabase
  • XpensAI

    AI-powered expense management platform with automated receipt scanning, OCR, and intelligent categorization.

    Python AWS Azure GPT-4o Serverless
  • Soma

    Personal health and fitness dashboard aggregating data from Garmin, Strava, and Hevy into a unified analytics view.

    Python Next.js Garmin Strava
  • bambu.local

    Talks to a Bambu Lab printer over the local network, with no cloud account and no dependencies. It reads the printer's whole state over MQTT, sends it commands, and puts files on its storage over FTPS, where it checks that the printer lists each file at the same size. It is tested on a Bambu Lab X2D.

    PyPi Python Bambu Lab MQTT 3D-printing
  • print-tortoise

    A PDF printed from HTML can look right in one PDF engine and wrong in another (a CSS glow that MuPDF draws as a glow can become a solid block in Apple's Preview). print-tortoise draws each page with MuPDF, Ghostscript and Apple's engine, outlines where they disagree, and refuses a page with the partly transparent fills that cause it. The name is from Rick and Morty, where the Truth Tortoise shows you everything.

    PyPi Python PDF MuPDF CLI
  • margin

    Publishes the markdown in my repositories to a self-hosted Outline wiki, where I read it on my phone and comment on a sentence, and brings each comment back to an AI agent such as Claude Code. The agent answers in the thread and changes the file. Changes go to Outline as small patches, so a comment stays on its words when the file around it changes. The name is for the notes you write in a page's margin.

    PyPi Python Outline Claude-Code CLI
  • ditto-code

    Runs Claude Code on a local model through Ollama, with the same tools, skills and MCP servers as any other chat. I keep several sizes of a model, and for each request it uses the largest one that fits in the memory the machine can free right now, so a chat on a laptop does not push the other programs into swap. The name is from Pokémon, where Ditto can turn into any other Pokémon.

    PyPi Python Claude-Code Ollama Local-LLM
  • billspc

    A self-hosted cloud filesystem for my Mac, with Google Drive as the storage and rclone doing the copying. Every rclone command passes an allowlist first, so a sync, move or delete can never run by mistake, and a Google sign-in is checked against the right account before its token is kept. The name is from Pokémon, where Bill's PC is the storage box you can reach from any Pokémon Center.

    Python CLI rclone Google Drive macOS
  • realvisits

    Sorts the visits a website records into people, bots and the site's own checks, using only the user agent, address and referrer a visit counter already keeps. It decides when the visits are read, so a better list corrects the whole history. I wrote it after I found that a jump in visitors on one of my demos was my own test runs.

    Python CLI Analytics Bots Self-hosted
  • weekpage

    A printable weekly planner. One A4 sheet with seven day columns and hour rows, filled in from my calendars and the wind forecast and anything else I give it, with the rest left to write by hand. The page is drawn as HTML and printed to a vector PDF, so the lines stay sharp at any size.

    Python CLI iCalendar Open-Meteo PDF
  • plaincard

    Makes plain, consistent images for projects from a few lines of spec. Project cards, README banners, diagrams and icons, all in one dark style with a monospace name and a flat line drawing. A pip package and a Claude Code plugin, and the tool that drew the cards on this page.

    PyPi Python SVG Claude-Code CLI
  • claude-ops

    Command-line tools for running many Claude Code chats on one machine. Find any chat across your project folders, send a message into one that is already running, start named chats in tmux, and restore transcripts that Claude Code deleted.

    PyPi Python CLI tmux automation
  • claude-human

    A toolkit for a Mac shared by a person and an agent, so the agent can hand one step to a human: approve a prompt, check a window, type a password at the lock screen. It captures the screen, streams a single window to your phone, and sends notifications that Android will not silence.

    PyPi Python Swift TypeScript macOS
  • couchctl

    A command-line tool for the Samsung and Android TVs on your network. Read and switch power, open apps, press remote keys, and redirect the remote's fixed app buttons, like Prime Video or Disney+, to the apps you actually use.

    PyPi Python CLI adb smart-home
  • iphone2android

    Moves you from an iPhone to an Android phone without leaving data behind. It reads an encrypted iPhone backup and recovers what the official transfer misses: messages, call history, photos, app data, accounts, and even the exact home screen layout, over adb.

    PyPi Python CLI adb Android
  • 3d-review

    A bench for reviewing a 3D-printable design together with an assistant. You load the model, mark what is wrong on a part, and receive answers as pictures from the same camera. A step ledger keeps a locked placement locked, and a requirement board is proven able to fail so a green board is not a false pass.

    PyPi Python trimesh Penpot 3D-printing
  • 3d-card

    Turns a set of 3D-printable parts into one printable kit card, like the sprue of a plastic model kit. It lays the parts on a frame, gates and numbers them, then cuts the gates itself and checks every piece comes back whole and loose. It also makes print-in-place joints with clearances measured from real test coupons.

    PyPi Python build123d trimesh 3D-printing
  • 3d-base

    Renders pictures of 3D meshes with no display, OpenGL, or browser, so a script can inspect models for printing. It keeps a per-pixel depth so overlapping parts draw in the right order, shades curves smoothly while keeping real edges sharp, and checks an exported STL for extra bodies and sealed cavities.

    PyPi Python numpy STL 3D-printing
  • sqlgate

    Serves a Postgres or MySQL database you host yourself to serverless apps, without opening a database port to the internet. It answers in the exact shape the Neon serverless driver speaks, so an app already using that driver works against your own database by changing only the connection string.

    npm Node Postgres MySQL serverless
  • soma-style

    The shared design tokens for the soma apps: the macro colors, the chart palette, and the status colors in one place, so soma, macro-engine, and the rest all render the same. Ships TypeScript tokens and Tailwind v4 CSS.

    npm TypeScript Tailwind design-tokens soma
  • banister

    A TypeScript port of soma's training engine. It fits the Banister fitness-fatigue model to your training data, adds Daniels and Gilbert VDOT math for race paces, and covers readiness, pace zones, and a performance management chart. Pure functions, checked against the Python original with golden fixtures.

    npm TypeScript sports-science soma
  • run-dj

    The core of soma's running DJ. Given a live heart rate it picks the target music BPM for that effort, and given a pool of songs it shuffles a session so same-artist tracks are spaced evenly instead of clustering. No I/O, so the same math runs on a treadmill, a playlist builder, or a cron job.

    npm TypeScript Spotify soma
  • Python Search Engine

    A search engine for the Gutenberg Project archive, written in Python with a Flask front-end. Inverted-index lookup, ranked retrieval, query suggestions.

    Python Flask IR Search
  • Garmin Auth

    Self-healing Garmin Connect OAuth authentication. Handles the complex SSO flow (OAuth1 to OAuth2), automatic token refresh, and rate limit recovery.

    PyPi Garmin OAuth Python authentication
  • High SQL

    A high-level SQL command utility. Currently only MySQL is supported.

    PyPi MySQL CircleCI wrapper
  • Cloud File Manager

    A high-level filemanager utility for cloud services. Currently only Dropbox is supported.

    PyPi Dropbox CircleCI wrapper
  • YAML Wrapper

    A YAML configuration wrapper.

    PyPi CircleCI yaml configuration wrapper
  • Color Logger

    A logger with text formatting using termcolor.

    PyPi CircleCI logger termcolor
  • Email Sender

    A utility for sending emails with attachments. Currently only Gmail is supported.

    PyPi Gmail wrapper
  • Benchmark Tools

    A collection of benchmarking tools.

    PyPi CircleCI benchmarking
  • poke-starters

    Finds the best Pokémon starter trio you could actually catch, across Kanto, Johto, Hoenn, and Sinnoh. Pick your regions, types, and a power budget, and it searches every legal combination, then reveals the winning team through a gated slot machine so the result is not spoiled. Real Town Maps show where to catch each one.

    JavaScript Web-Worker Pokemon game
  • YouTube Comment Bot

    A bot that posts the first comment on every new video of specified channels.

    Youtube Gmail Dropbox MySQL AWS CircleCI Heroku
  • Job Application Bot

    A bot that automatically sends emails to new ads posted in any desired xe.gr search url.

    Gmail Dropbox MySQL AWS CircleCI Heroku Scraper
  • TuneCraft

    Effortlessly create personalized Spotify playlists with fresh, undiscovered tracks tailored to your taste.

    Spotify automation
  • Spotify Button Presser

    An app that clicks a physical button whenever Spotify starts playing on the target device.

    RaspberryPI Spotify SwitchBot automation smart-home
  • Cross The Floor

    Uses Sankey Diagrams to visualize politicians that have 'crossed the floor' from election to election.

    Sankey-Diagram Parliament Scraper Visualization
  • Hybrid Girvan Newman

    Code for the paper 'A Distributed Hybrid Community Detection Methodology for Social Networks'.

    Apache-Spark Social-Networks Community-Detection GraphFrames MySQL
  • Vanilla Numpy CNN

    A Vanilla Numpy-only Convolutional Neural Network.

    Numpy CNN Vanilla-Implementation
  • Vanilla Numpy Neural Network

    A Vanilla Numpy-only Feed-Forward Neural Network.

    Numpy Neural-Network Vanilla-Implementation
  • 2D Shooter Game

    Simple 2d shooter game written with JavaScript and the p5.js library.

    P5.js game shooter-game
  • Quantum Mechanics Quiz App

    Android app with 10 questions about Quantum Mechanics.

    Android-App Java Quantum-Mechanics Quiz

Let's get in touch

Drop me a message about anything.

Subscribe via RSS

Stay in the loop. Posts, papers, projects, and site updates.

Paste into Feedly, Reeder, NetNewsWire, or Inoreader.Preview the feed
Kostas's Logo

I'm Kostas: a PhD ML Engineer building AI systems that ship to production. Thanks for visiting!

© 2026 Kostas Georgiou