Go Game (Client-Server)

A networked, client-server implementation of the traditional board game Go built in Java using Gradle and JavaFX. The project features a multi-threaded TCP server managing concurrent client sessions and rooms, coupled with a robust game logic module that enforces core rules like move validation, liberty detection via DFS, suicide rules, and Ko. It supports both a console interface (CLI) and a dynamic JavaFX graphical user interface (GUI) with real-time board updates, pass/resign actions, and automated testing scripts for local multiplayer simulation.

JavaJavaFXGradleTCP / SocketsMultithreading
Go Game interface preview

Metaheuristic TSP Solver

A high-performance command-line solver for the Traveling Salesperson Problem (TSP) implemented in Rust. It features robust implementations of Simulated Annealing (SA) and Tabu Search (TS) utilizing optimized 2-opt neighborhood local search heuristics with fast delta evaluations. Engineered with a modular architecture separating spatial distance math, cooling schedules, and search loops, it efficiently handles large TSPLIB benchmark datasets from the University of Waterloo World Tour Collection—ranging from 29 cities up to over 8,000—and serializes optimized routes into standard output tour files.

RustSimulated AnnealingTabu Search2-opt HeuristicsCLI
TSP Solver performance or output visualization

Dotfiles

A sleek, modern, dynamic Wayland desktop environment powered by Niri as a scrollable tiling compositor and integrated with a real-time, wallpaper-driven theme engine. Featuring an automated Python color extraction pipeline, changing the wallpaper dynamically updates palettes across Waybar, Rofi, Ghostty, Zellij, Neovim, Starship, and Mako on the fly without session restarts. Built around a modern CLI productivity stack (eza, bat, fd, btop, fastfetch, yazi) and equipped with an interactive custom fzf cheatsheet (dots-help) for rapid navigation of system shortcuts.

Arch LinuxWaylandNiriPythonNeovimBash
Theo's Dotfiles desktop preview