Fútbol virtual programable

El mejor
código gana.

Programa el cerebro de tu equipo —jugador, táctica y entrenador— y compite en un simulador determinista, en tu máquina o en la plataforma online. Tú escribes la lógica; si quieres, la pilota la IA.

$git clone github.com/GoNNoTDa/PyLeague
IA opcional · compatible con
Claude OpenAI Gemini Bedrock Groq Mistral DeepSeek Ollama (local)
Dos formas de empezar

De la idea al campo en 30 segundos

Elige tu vía: compite online sin instalar nada, o clona el SDK y trabaja en local. Las dos usan el mismo motor determinista.

Online · sin instalar

Crea tu cuenta, guarda tus equipos y juega partidos y ligas desde el navegador. La vía más rápida para empezar hoy.

Crear cuenta gratis

SDK local · a tu ritmo

Clona el proyecto (solo Python 3.13, sin dependencias), copia la plantilla y compite en tu máquina.

$ git clone github.com/GoNNoTDa/PyLeague
Cómo funciona

Tres cerebros sobre un árbitro imparcial

No mueves jugadores: programas cómo deciden. El motor arbitra igual para todos y es determinista — mismo seed, mismo partido. La IA decide a ritmo lento; una capa determinista ejecuta cada tick, así un modelo no tiene que pensar 20 veces por segundo.

10

Entrenador

Lee el marcador y el tiempo y fija la mentalidad: atacar, equilibrio o defender.

ritmolento
6

Táctica

Coloca al equipo: altura de línea, amplitud, presión y banda de ataque.

ritmomedio
9

Jugador

Decide cada tick: moverse, pasar o tirar. Rápido y reactivo.

cadatick
Capacidades

Lo que ya está en el campo

Un prototipo funcional, sin humo: esto corre hoy.

Motor determinista

Física vectorial y reglas claras. El mismo seed reproduce el partido exacto: competiciones justas y depurables.

IA multi-proveedor

Entrenador y táctica pilotados por un LLM — ya juega partidos reales con Gemini. Cambias de proveedor (Gemini, Claude, OpenAI, Amazon Bedrock, Ollama…) con una variable de entorno.

Estamina y sprints

Cada jugador gestiona su esfuerzo: esprintar y chutar fuerte cansa; sin fuelle corre y chuta peor. Otra capa que programar en tu táctica.

Liga y ranking ELO

Enfrenta todos los equipos, saca clasificación con puntos y ELO, y un informe HTML listo para compartir.

Estadísticas por partido

Posesión, tiros y tiros a puerta, pases y precisión, recuperaciones y distancia. Sabes qué mejorar, no solo el marcador.

Sparring para iterar

Mide tu equipo contra varios rivales en muchas semillas y obtén win-rate y medias. Comparas cambios con datos, no por corazonadas.

Sandbox aislado

El código de terceros corre en un subproceso con límites de tiempo y sin red ni disco: seguro para competir con equipos ajenos.

Galería de tácticas

Tiki-taka, catenaccio, contraataque, gegenpressing… plantillas listas para tunear.

Visor con repetición

Cada partido se reproduce como una retransmisión: campo a ~60 fps, marcador tipo TV, estadísticas y comentarios de la IA.

Python, sin dependencias

El motor solo usa la librería estándar. Los SDK de IA son opcionales. Copias la plantilla y empiezas en minutos.

Código de verdad

Una táctica reactiva, en unas líneas

Decides cuatro mandos —línea, amplitud, presión y foco— como valores fijos o en función del partido. El motor los traduce a posiciones.

mi_tactica.py
from aicup.tactics import TacticalStrategy, progress, possession

def contraataque():
    # Sin balón nos replegamos; al recuperar, nos lanzamos.
    def mandos(ctx):
        defendiendo = possession(ctx) == "theirs" or progress(ctx) < 0.45
        if defendiendo:
            return {"line_height": 0.30, "pressing": 0.35}
        return {"line_height": 0.74, "pressing": 0.50}
    return TacticalStrategy("Contraataque", mandos)
Compite online

Sube tu equipo y mídete con todos

Además del SDK local, hay una plataforma web: creas tu cuenta, guardas tus equipos y juegas partidos y ligas desde el navegador, sin instalar nada. Cada partido se ejecuta aislado en el servidor y guarda su repetición.

Ranking global ELO

Cada equipo acumula ELO e historial con los partidos entre equipos registrados. Sube en la clasificación pública.

Arenas abiertas

Competiciones donde cualquiera inscribe su equipo. Te unes con un clic y el organizador la juega.

Perfil público

Tu página con tus equipos, tu mejor ELO, tu récord y tus repeticiones. Tu trayectoria, a la vista.

Auditoría verificable · torneos con premios

De cada partido oficial guardamos el código exacto de cada equipo (con su SHA-256), la semilla y la versión del motor. Como el motor es determinista, cualquiera puede reproducir el partido y verificar el resultado — sin fiarse de nadie. En las ligas, cada cruce queda auditado uno a uno.

Repeticiones compartibles

Genera un enlace público de cualquier partido para verlo o auditarlo sin cuenta. Descarga el código y el replay y compruébalo tú mismo.

Ligas con formato y plantillas

Monta ligas con plantillas listas: divisiones por metal (de hierro a diamante), por país o por continente, o a tu medida. Eliges el formato —minutos, límite de goles, muerte súbita— y lo heredan todos los cruces.

Invita y comparte tu liga

¿Organizas? Genera un enlace de suscripción para que cualquiera apunte su equipo —aunque la liga no sea abierta— e invita directamente a usuarios de la plataforma por su nombre.

Versiones de táctica y estadísticas

Guarda varias versiones de tu equipo, etiquétalas y elige cuál juega cada liga sin tocar tu táctica por defecto. La del rival va oculta salvo que decida mostrarla. Cada equipo tiene su historial y sus estadísticas.

El SDK

De cero a competir, en tres pasos

PyLeague es un SDK: copias una plantilla que ya juega bien, la haces tuya y la mejoras iterando. Todo local, determinista y sin dependencias. ¿Primera vez? Pásate por la Academia para aprender a programar tu equipo paso a paso, o mira la guía completa en el repositorio.

01

Clona el proyecto

Solo necesitas Python 3.13 o superior. El motor no tiene dependencias externas.

$ git clone github.com/GoNNoTDa/PyLeague
02

Copia la plantilla

Tu equipo es una carpeta con tres capas: entrenador, táctica y jugador. Empieza por los puntos marcados y cambia una cosa cada vez.

$ cp -r equipos/plantilla equipos/miequipo
03

Mide, mejora y compite

Juega y míralo en el visor con estadísticas. Usa el sparring para medir tu equipo contra varios rivales de golpe, y monta ligas con clasificación y ELO.

$ python play.py --home equipos/miequipo --away equipos/algoritmos
$ python sparring.py --team equipos/miequipo
$ python league.py
Para quién

Una liga que une código y competición

Programar deja de ser un ejercicio en solitario y se convierte en un torneo. Ideal para:

Comunidades dev

GDGs, meetups y asociaciones: un reto que engancha y da tema para varias sesiones.

Hackathons y retos

Un formato competitivo con resultado claro: gana el mejor código, no el mejor pitch.

Formación

Universidades y bootcamps: enseña lógica, IA y estructuras jugando a ganar partidos.

Empresas

Team building técnico y employer branding con una liga interna a tu marca.

Planes

Juega gratis. Organiza a lo grande.

El SDK es y será de código abierto. Si quieres montar una competición para tu evento, te la preparamos llave en mano.

Para jugar y aprender

Código abierto

0 € / para siempre
  • Motor, SDK y documentación completos
  • Estadísticas por partido y sparring
  • Liga, ranking ELO y visor de repeticiones
  • Plataforma online: cuentas, ranking global y arenas
  • Repeticiones compartibles y auditoría verificable
  • IA multi-proveedor opcional · úsalo y modifícalo
Crear cuenta gratis
Para tu evento

Torneo a medida

A medida
  • Organización de la competición llave en mano
  • Tu marca en el visor y las vallas del campo
  • Reglas, calendario y clasificación a tu gusto
  • Soporte durante el evento
Escríbenos
En el horizonte

Lo que viene

Ideas en el roadmap. Todavía no están — las contamos porque marcan hacia dónde va la liga, no para venderte lo que no existe.

próximo

Copas y eliminatorias

Formato knockout con cuadro, además de las ligas de todos contra todos.

próximo

IA a nivel de jugador

Instrucciones por rol que el jugador ejecuta, además de entrenador y táctica.

explorando

Reglas completas

Saques de banda y córner, fuera de juego y faltas.

explorando

Co-piloto táctico

Describe tu plan en lenguaje natural y se traduce a código.

explorando

VAR cognitivo

Un árbitro-IA que revisa las jugadas polémicas.

explorando

Aislamiento reforzado

Contenedor/VM por partido para abrir la ejecución pública a gran escala.

Preguntas frecuentes

Lo que sueles preguntar

¿Qué es PyLeague?

Una competición de fútbol virtual donde no juegas con las piernas, sino con código: programas en Python el cerebro de cada jugador, la táctica del equipo y las decisiones del entrenador, y compites en un simulador determinista.

¿Necesito saber mucho Python?

No. Copias la plantilla incluida —que ya juega de forma competitiva— y vas mejorando una capa cada vez. Con conocimientos básicos de Python puedes empezar en minutos.

¿Es gratis?

Sí. PyLeague es de código abierto y puedes usarlo, modificarlo y competir sin coste. Solo ofrecemos servicios opcionales para organizar torneos a medida.

¿Necesito una clave de IA para jugar?

No. El motor y los equipos de ejemplo funcionan sin ninguna API. La IA es opcional: si quieres que el entrenador o la táctica piensen con un modelo de lenguaje, conectas tu proveedor favorito (Claude, OpenAI, Gemini, Groq, Mistral, DeepSeek u Ollama en local).

¿Puedo organizar un torneo para mi evento o comunidad?

Sí. PyLeague encaja en hackathons, comunidades de desarrolladores, formación y eventos. Escríbenos y montamos una competición a medida.

¿En qué sistemas funciona?

En Windows, macOS y Linux. El motor solo necesita Python 3.13 o superior y no tiene dependencias externas.

¿Puedo competir online sin instalar nada?

Sí. En la plataforma online creas una cuenta, guardas tus equipos y juegas partidos y ligas desde el navegador. Cada partido corre aislado en el servidor y guarda su repetición, con ranking global por ELO, perfil público y arenas abiertas donde compite cualquiera.

¿Cómo sé que un torneo con premios es justo?

Porque cada partido oficial es reproducible: guardamos el código exacto de cada equipo con su SHA-256, la semilla y la versión del motor. Como el motor es determinista, cualquiera puede descargar todo y reproducir el partido para verificar que el resultado es legítimo, sin fiarse de nadie. En las ligas, cada cruce queda auditado uno a uno.

Marcas y patrocinadores

Pon tu marca donde está el talento

PyLeague reúne a desarrolladores compitiendo con código: un público difícil de captar, en un contexto positivo —aprender y ganar—. Asóciate a una liga justa y verificable, y hazlo cuando aún eres de los primeros.

La audiencia que te cuesta captar

Llegas a perfiles técnicos —desarrolladores y estudiantes— mientras crean y compiten. Perfecto para captación de talento y employer branding.

Visibilidad de verdad

Tu marca en el visor tipo retransmisión, en las vallas del campo y en los mensajes de la simulación —y en cada repetición que se comparte fuera.

Formatos a tu medida

La liga de tu comunidad o universidad, el reto de un hackathon o una liga interna de empresa. Tú eliges el alcance.

Confianza verificable · premios sin sospechas

Cada partido oficial es auditable y reproducible: se guarda el código, la semilla y la versión del motor. Un torneo con premios serio, al que asociar tu marca sin riesgo reputacional.

Marca fundadora

Aún no hay patrocinadores: puedes ser el primero. Espacio destacado y trato cercano para quien apuesta antes que nadie.

TU MARCA
TU MARCA
TU MARCA
TU MARCA

Ejemplo: tus vallas a pie de campo y en el visor de cada partido.

Empieza a jugar

Monta tu equipo.
Que decida el código.

Crea tu cuenta y compite online en minutos, o clónalo y juega en local. En modo básico funciona sin API ni configuración.

$python play.py  ·  python sparring.py  ·  python league.py