Proyectos
Destacados
-
Aline boss fight (Beat Saber / Vivify) →
2026Lo que empezó como un boss fight de Beat Saber contra Aline (Expedition 33) se está convirtiendo en un harness de mapping para Vivify — Unity template, MCP tools y skills de Claude Code — que cualquier mapper puede tomar para llevar su propio mapa con asistencia de IA, sea cual sea el IP de origen. WIP.
Autor único
-
fmodel-mcp →
2026Wrapper MCP sobre FModel + CUE4Parse para inspeccionar y exportar assets de Unreal Engine directamente desde Claude. CLI .NET más un servidor MCP en Python, liberado como mi herramienta canónica para trabajar con assets de E33.
Autor único
-
unity-mcp port →
2026Fork minimal del Unity MCP backporteado a Unity 2019.4 — la versión que el pipeline de modding de Beat Saber necesita. Strippea las partes que dependen de features modernas de C# y reescribe el resto a C# 7.3.
Autor único
-
portfolio_web →
2026La web que estás mirando. Astro + Tailwind + MDX, bilingüe EN/ES, content collections para proyectos y artículos, desplegada en Vercel. Repo público para que cualquier visitante pueda auditar la arquitectura, el log de decisiones, y el MDX detrás de cada card y artículo desde el código.
Autor único
Otros trabajos técnicos
2026
-
Testeo híbrido C++/Python ↗
Autor único- C++17
- Python
- nanobind
- pytest
- CMake
Un chat C++ mínimo (servidor + cliente sobre TCP) expuesto a Python con nanobind, para demostrar tres formas de testear sistemas híbridos C++/Python — bindings in-process, un mock de red en Python y un harness híbrido con orquestador y reportes. C++17, scikit-build-core, pytest.
-
Web-game-dev ↗
Autor único- Godot
- GDScript
Dos prototipos en Godot para el nicho de web games (Poki, CrazyGames). La branch `ColorGame` es la pulida — ~20 niveles afinados a mano, drag-and-drop con reglas de color × forma, sistema de pistas, tutorial, creador de niveles. Funcional end-to-end; nunca publicado. Las dos pararon por la misma lección: los bundles HTML5 de Godot pesan 30 MB+ frente a los 1–3 MB de Phaser, y el sistema de reglas exigía más al jugador casual de lo que la ventana de retención de Poki (~30s) permite.
2025
-
UnlockAllTools ↗
Autor único- 10k+ descargas en Nexus
- C#
- BepInEx
- Silksong
Mod BepInEx para Hollow Knight: Silksong. Desbloquea herramientas y crests específicos a través de una allow-list por config. 10k+ descargas en Nexus.
-
QuickWarp ↗
Autor único- 3.5k+ descargas en Nexus
- C#
- BepInEx
- Silksong
Mod BepInEx para Hollow Knight: Silksong. Guarda y recarga un waypoint de posición con una tecla. 3.5k+ descargas en Nexus.
-
NEAT ↗
Autor único- Python
- pygame
- NEAT
Experimento RL de fin de semana: NEAT en pygame sobre un laberinto 10×10. Notas honestas sobre dónde se atasca el entrenamiento.
-
Bisbot ↗
Autor único- desplegado en directo
- Python
- LLM
- Discord.py
Un bot de Discord con LLM que escucha, decide cuándo hablar — y muchas veces decide no hacerlo. Hecho para el 28 de diciembre de 2025 (Día de los Inocentes), desplegado en directo en el servidor de Beat Saber España del que soy admin. El LLM se simula en los tests, así que la suite de unit tests no cuesta nada en llamadas a la API.
-
rankedle ↗
Autor único- Python
- Django
- Docker
- Discord.py
Bot de Discord "adivina la canción" para Beat Saber. La broma del Día de los Inocentes funcionó con archivos JSON. Este rewrite con Django + Docker, nacido de un "pero impleméntalo en condiciones", nunca llegó a producción. Un colega montó la misma idea con string-distance y lleva más de un año en marcha — writeup honesto sobre el overengineering.
-
EasyAvahi ↗
Autor único- Python
- D-Bus
- zeroconf
Pequeña librería Python para descubrimiento y publicación de servicios mDNS, construida para aprender el protocolo a fondo. Una ABC `AvahiInterface` + un facade `AvahiClient` que delega a una de dos estrategias duck-typed (D-Bus al `avahi-daemon` nativo en Linux; la librería `zeroconf` cross-platform). Tests de integración contra un stack mDNS real — sin mocks.