Projects
Featured
-
Aline boss fight (Beat Saber / Vivify) →
2026What started as a Beat Saber boss fight against Aline (Expedition 33) is turning into a Vivify mapping harness — Unity template, MCP tools and Claude Code skills — that any mapper can pick up to drive their own map with AI assistance, regardless of the source IP. WIP.
Solo author
-
fmodel-mcp →
2026An MCP wrapper around FModel + CUE4Parse for inspecting and exporting Unreal Engine assets directly from Claude. .NET CLI plus a Python MCP server, released as my canonical tool for E33 asset work.
Solo author
-
unity-mcp port →
2026Minimal fork of the Unity MCP backported to Unity 2019.4 — the version Beat Saber's modding pipeline targets. Strips the parts that need newer C# language features and rewrites the rest down to C# 7.3.
Solo author
-
portfolio_web →
2026The site you're looking at. Astro + Tailwind + MDX, bilingual EN/ES, content collections for projects and articles, deployed on Vercel. Public repo so any visitor can audit the architecture, the decisions log, and the MDX behind every card and article from the source.
Solo author
Other technical work
2026
-
Hybrid C++/Python testing ↗
Solo author- C++17
- Python
- nanobind
- pytest
- CMake
A minimal C++ chat (TCP server + client) exposed to Python with nanobind, used to demonstrate three ways to test hybrid C++/Python systems — in-process bindings, a Python network mock, and a hybrid harness with a reporting orchestrator. C++17, scikit-build-core, pytest.
-
Web-game-dev ↗
Solo author- Godot
- GDScript
Two Godot prototypes for the web-games niche (Poki, CrazyGames). The `ColorGame` branch is the polished one — ~20 hand-tuned levels, drag-and-drop pieces with color × shape rules, hint system, tutorial, level creator. Functional end-to-end; never published. Both stopped on the same lesson: Godot's 30 MB+ HTML5 bundles can't compete with Phaser's 1–3 MB, and the rule system asked more of casual players than Poki's ~30s bounce window allows.
2025
-
UnlockAllTools ↗
Solo author- 10k+ Nexus downloads
- C#
- BepInEx
- Silksong
BepInEx mod for Hollow Knight: Silksong. Toggle individual tools and crests via a config allow-list. 10k+ Nexus downloads.
-
QuickWarp ↗
Solo author- 3.5k+ Nexus downloads
- C#
- BepInEx
- Silksong
BepInEx mod for Hollow Knight: Silksong. Save and reload a position waypoint with a key. 3.5k+ Nexus downloads.
-
NEAT ↗
Solo author- Python
- pygame
- NEAT
Weekend RL experiment with NEAT in pygame: navigate a 10×10 grid maze. Honest writeup of where the training stalls.
-
Bisbot ↗
Solo author- deployed live
- Python
- LLM
- Discord.py
An LLM-driven Discord bot that listens, decides when to speak — and often chooses not to. Built for Spain's December 28th April Fools' Day, deployed live in the Beat Saber España community I admin. The LLM is stubbed in tests, so the unit suite costs zero in API calls.
-
rankedle ↗
Solo author- Python
- Django
- Docker
- Discord.py
Discord "guess the song" bot for Beat Saber. The Día de los Inocentes prank shipped on JSON files. This Django + Docker rewrite, born from someone asking to "implement it properly", never reached production. A colleague's string-distance bot has been running the same job for over a year — battle-scar writeup of overengineering.
-
EasyAvahi ↗
Solo author- Python
- D-Bus
- zeroconf
A small Python library for mDNS service discovery and publication, built to learn the protocol properly. An `AvahiInterface` ABC + `AvahiClient` facade that delegates to one of two duck-typed strategies (D-Bus to native `avahi-daemon` on Linux; the `zeroconf` library cross-platform). Integration tests against a real mDNS stack — no mocks.