Calcio virtuale programmabile

Vince
il codice migliore.

Programma il cervello della tua squadra —giocatore, tattica e allenatore— e gareggia in un simulatore deterministico, sulla tua macchina o sulla piattaforma online. Tu scrivi la logica; se vuoi, la guida l'IA.

$git clone github.com/GoNNoTDa/PyLeague
IA opzionale · compatibile con
Claude OpenAI Gemini Bedrock Groq Mistral DeepSeek Ollama (locale)
Due modi per iniziare

Dall'idea al campo in 30 secondi

Scegli la tua strada: gareggia online senza installare nulla, oppure clona l'SDK e lavora in locale. Entrambe usano lo stesso motore deterministico.

Online · senza installare

Crea il tuo account, salva le tue squadre e gioca partite e campionati dal browser. Il modo più rapido per iniziare oggi.

Crea un account gratis

SDK locale · al tuo ritmo

Clona il progetto (solo Python 3.13, senza dipendenze), copia il modello e gareggia sulla tua macchina.

$ git clone github.com/GoNNoTDa/PyLeague
Come funziona

Tre cervelli su un arbitro imparziale

Non muovi i giocatori: programmi come decidono. Il motore arbitra allo stesso modo per tutti ed è deterministico — stesso seed, stessa partita. L'IA decide a ritmo lento; uno strato deterministico esegue a ogni tick, così un modello non deve pensare 20 volte al secondo.

10

Allenatore

Legge il punteggio e il tempo e fissa la mentalità: attaccare, equilibrio o difendere.

ritmolento
6

Tattica

Dispone la squadra: altezza della linea, ampiezza, pressing e lato d'attacco.

ritmomedio
9

Giocatore

Decide a ogni tick: muoversi, passare o tirare. Rapido e reattivo.

ognitick
Funzionalità

Ciò che è già in campo

Un prototipo funzionante, senza fumo: gira già oggi.

Motore deterministico

Fisica vettoriale e regole chiare. Lo stesso seed riproduce la partita esatta: competizioni eque e verificabili.

IA multi-provider

Allenatore e tattica pilotati da un LLM — gioca già partite reali con Gemini. Cambi provider (Gemini, Claude, OpenAI, Amazon Bedrock, Ollama…) con una variabile d'ambiente.

Stamina e sprint

Ogni giocatore gestisce lo sforzo: scattare e tirare forte stanca; senza energie corre e tira peggio. Un altro livello da programmare nella tua tattica.

Campionato e classifica ELO

Fa scontrare tutte le squadre, produce una classifica con punti ed ELO e un report HTML pronto da condividere.

Statistiche per partita

Possesso, tiri e tiri in porta, passaggi e precisione, recuperi e distanza. Sai cosa migliorare, non solo il punteggio.

Sparring per iterare

Misura la tua squadra contro più avversari su molti seed e ottieni win-rate e medie. Confronti le modifiche con i dati, non con le sensazioni.

Sandbox isolato

Il codice di terzi gira in un sottoprocesso con limiti di tempo e senza rete né disco: sicuro per competere con squadre altrui.

Galleria di tattiche

Tiki-taka, catenaccio, contropiede, gegenpressing… modelli pronti da regolare.

Visore con replay

Ogni partita si rivede come una diretta: campo a ~60 fps, tabellone in stile TV, statistiche e commenti dell'IA.

Python, senza dipendenze

Il motore usa solo la libreria standard. Gli SDK di IA sono opzionali. Copi il modello e inizi in pochi minuti.

Codice vero

Una tattica reattiva, in poche righe

Imposti quattro manopole —linea, ampiezza, pressing e focus— come valori fissi o in base alla partita. Il motore le traduce in posizioni.

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

def contraataque():
    # Senza palla ci ripieghiamo; al recupero, ripartiamo.
    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)
Gareggia online

Carica la tua squadra e sfida tutti

Oltre all'SDK locale, c'è una piattaforma web: crei il tuo account, salvi le tue squadre e giochi partite e campionati dal browser, senza installare nulla. Ogni partita viene eseguita isolata sul server e ne salva il replay.

Classifica globale ELO

Ogni squadra accumula ELO e storico con le partite tra squadre registrate. Sali nella classifica pubblica.

Arene aperte

Competizioni in cui chiunque iscrive la propria squadra. Ti unisci con un clic e l'organizzatore la gioca.

Profilo pubblico

La tua pagina con le tue squadre, il tuo miglior ELO, il tuo record e i tuoi replay. Il tuo percorso, in vista.

Verifica controllabile · tornei con premi

Di ogni partita ufficiale conserviamo il codice esatto di ogni squadra (con il suo SHA-256), il seed e la versione del motore. Poiché il motore è deterministico, chiunque può riprodurre la partita e verificare il risultato — senza fidarsi di nessuno. Nei campionati, ogni incontro è verificato uno per uno.

Replay condivisibili

Genera un link pubblico di qualsiasi partita per vederla o verificarla senza account. Scarica il codice e il replay e controlla di persona.

Campionati con formati e modelli

Crea campionati da modelli pronti: divisioni per metallo (dal ferro al diamante), per paese o per continente, o su misura. Scegli il formato —minuti, limite di gol, morte improvvisa— e ogni incontro lo eredita.

Invita e condividi il tuo campionato

Organizzi? Genera un link di iscrizione così chiunque iscrive la sua squadra —anche se il campionato non è aperto— e invita direttamente gli utenti della piattaforma per nome.

Versioni di tattica e statistiche

Salva più versioni della tua squadra, etichettale e scegli quale gioca ogni campionato senza toccare la tua tattica predefinita. Quella dell'avversario resta nascosta salvo che decida di mostrarla. Ogni squadra ha la sua cronologia e le sue statistiche.

L'SDK

Da zero alla gara, in tre passi

PyLeague è un SDK: copi un modello che gioca già bene, lo fai tuo e lo migliori iterando. Tutto in locale, deterministico e senza dipendenze. Prima volta? Fai un salto all’Accademia per imparare a programmare la tua squadra passo dopo passo, o guarda la guida completa nel repository.

01

Clona il progetto

Ti serve solo Python 3.13 o superiore. Il motore non ha dipendenze esterne.

$ git clone github.com/GoNNoTDa/PyLeague
02

Copia il modello

La tua squadra è una cartella con tre strati: allenatore, tattica e giocatore. Parti dai punti segnati e cambia una cosa alla volta.

$ cp -r equipos/plantilla equipos/miequipo
03

Misura, migliora e gareggia

Gioca e guardala nel visore con le statistiche. Usa lo sparring per misurare la tua squadra contro più avversari in una volta, e crea campionati con classifica ed ELO.

$ python play.py --home equipos/miequipo --away equipos/algoritmos
$ python sparring.py --team equipos/miequipo
$ python league.py
Per chi

Un campionato che unisce codice e competizione

Programmare smette di essere un esercizio solitario e diventa un torneo. Ideale per:

Comunità dev

GDG, meetup e associazioni: una sfida che appassiona e dà spunti per più sessioni.

Hackathon e sfide

Un formato competitivo dal risultato chiaro: vince il codice migliore, non il pitch migliore.

Formazione

Università e bootcamp: insegna logica, IA e strutture giocando a vincere le partite.

Aziende

Team building tecnico ed employer branding con un campionato interno a marchio tuo.

Piani

Gioca gratis. Organizza in grande.

L'SDK è e resterà open source. Se vuoi organizzare una competizione per il tuo evento, te la prepariamo chiavi in mano.

Per giocare e imparare

Open source

0 € / per sempre
  • Motore, SDK e documentazione completi
  • Statistiche per partita e sparring
  • Campionato, classifica ELO e visore dei replay
  • Piattaforma online: account, classifica globale e arene
  • Replay condivisibili e verifica controllabile
  • IA multi-provider opzionale · usalo e modificalo
Crea un account gratis
Per il tuo evento

Torneo su misura

Su misura
  • Organizzazione della competizione chiavi in mano
  • Il tuo marchio nel visore e sui tabelloni a bordo campo
  • Regole, calendario e classifica come preferisci
  • Supporto durante l'evento
Scrivici
All'orizzonte

Cosa arriva

Idee nella roadmap. Non ci sono ancora — le raccontiamo perché indicano dove va il campionato, non per venderti ciò che non esiste.

prossimo

Coppe ed eliminazioni

Formato a eliminazione con tabellone, oltre ai campionati all'italiana.

prossimo

IA a livello di giocatore

Istruzioni per ruolo che il giocatore esegue, oltre ad allenatore e tattica.

in esplorazione

Regole complete

Rimesse laterali e calci d'angolo, fuorigioco e falli.

in esplorazione

Copilota tattico

Descrivi il tuo piano in linguaggio naturale e viene tradotto in codice.

in esplorazione

VAR cognitivo

Un arbitro-IA che rivede le azioni controverse.

in esplorazione

Isolamento rafforzato

Container/VM per partita per aprire l'esecuzione pubblica su larga scala.

Domande frequenti

Ciò che si chiede di solito

Cos'è PyLeague?

Una competizione di calcio virtuale in cui non giochi con le gambe, ma con il codice: programmi in Python il cervello di ogni giocatore, la tattica della squadra e le decisioni dell'allenatore, e gareggi in un simulatore deterministico.

Devo sapere molto Python?

No. Copi il modello incluso —che gioca già in modo competitivo— e migliori uno strato alla volta. Con basi di Python puoi iniziare in pochi minuti.

È gratis?

Sì. PyLeague è open source e puoi usarlo, modificarlo e competere senza costi. Offriamo solo servizi opzionali per organizzare tornei su misura.

Serve una chiave IA per giocare?

No. Il motore e le squadre di esempio funzionano senza alcuna API. L'IA è opzionale: se vuoi che l'allenatore o la tattica ragionino con un modello linguistico, colleghi il tuo provider preferito (Claude, OpenAI, Gemini, Groq, Mistral, DeepSeek oppure Ollama in locale).

Posso organizzare un torneo per il mio evento o la mia comunità?

Sì. PyLeague si adatta a hackathon, comunità di sviluppatori, formazione ed eventi. Scrivici e organizziamo una competizione su misura.

Su quali sistemi funziona?

Su Windows, macOS e Linux. Il motore richiede solo Python 3.13 o superiore e non ha dipendenze esterne.

Posso competere online senza installare nulla?

Sì. Sulla piattaforma online crei un account, salvi le tue squadre e giochi partite e campionati dal browser. Ogni partita gira isolata sul server e ne salva il replay, con classifica globale ELO, profilo pubblico e arene aperte dove chiunque può competere.

Come faccio a sapere che un torneo con premi è equo?

Perché ogni partita ufficiale è riproducibile: conserviamo il codice esatto di ogni squadra con il suo SHA-256, il seed e la versione del motore. Poiché il motore è deterministico, chiunque può scaricare tutto e riprodurre la partita per verificare che il risultato sia legittimo, senza fidarsi di nessuno. Nei campionati, ogni incontro è verificato uno per uno.

Brand e sponsor

Metti il tuo brand dove c'è il talento

PyLeague riunisce sviluppatori che competono con il codice: un pubblico difficile da raggiungere, in un contesto positivo —imparare e vincere—. Associati a un campionato equo e verificabile, e fallo mentre sei ancora tra i primi.

Il pubblico che fatichi a raggiungere

Raggiungi profili tecnici —sviluppatori e studenti— mentre creano e competono. Perfetto per talent acquisition ed employer branding.

Visibilità vera

Il tuo brand nel visore in stile diretta, sui tabelloni a bordo campo e nei messaggi della simulazione —e in ogni replay che viene condiviso.

Formati su misura

Il campionato della tua comunità o università, la sfida di un hackathon o un campionato interno aziendale. Scegli tu la portata.

Fiducia verificabile · premi senza sospetti

Ogni partita ufficiale è verificabile e riproducibile: vengono salvati il codice, il seed e la versione del motore. Un torneo con premi serio, a cui associare il tuo brand senza rischi reputazionali.

Brand fondatore

Non ci sono ancora sponsor: puoi essere il primo. Spazio in evidenza e rapporto diretto per chi ci punta prima di tutti.

IL TUO BRAND
IL TUO BRAND
IL TUO BRAND
IL TUO BRAND

Esempio: i tuoi tabelloni a bordo campo e nel visore di ogni partita.

Inizia a giocare

Costruisci la tua squadra.
Che decida il codice.

Crea il tuo account e gareggia online in pochi minuti, oppure clonalo e gioca in locale. In modalità base funziona senza API né configurazione.

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