| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>OMLCheT — Open Machine Learning Chess Tournament</title> |
| <link rel="stylesheet" href="style.css"/> |
| </head> |
| <body> |
| <main class="fibonacci-grid"> |
| <section class="panel-alpha"> |
| <a href="#" class="logo-mark">OMLCheT</a> |
| <nav> |
| <ul class="nav-links"> |
| <li><a href="https://huggingface.co/OMLCheT" target="_blank">Hugging Face</a></li> |
| <li><a href="https://huggingface.co/OMLCheT/models" target="_blank">Models</a></li> |
| <li><a href="https://huggingface.co/OMLCheT/datasets" target="_blank">Datasets</a></li> |
| <li><a href="https://discord.gg/VgZffqPjzk" target="_blank">Discord</a></li> |
| </ul> |
| </nav> |
| </section> |
| <section class="panel-beta"> |
| <header class="hero-section"> |
| <h1>Open Machine Learning Chess Tournament</h1> |
| <p>A community championship showcasing open-source ingenuity, strategic code, and resource-efficient architectures. Run for fun and absolute bragging rights.</p> |
| </header> |
|
|
| |
| <article class="brackets-container"> |
| <div class="bracket-card"> |
| <h3>Language Models</h3> |
| <p>Autoregressive generators, sequence architectures, and causal networks predicting structural moves as natural language strings.</p> |
| <div class="meta-spec">Max 1.5B Parameters</div> |
| </div> |
| <div class="bracket-card"> |
| <h3>Reinforcement Learning</h3> |
| <p>Deep policy architectures, Q-learning pipelines, and custom state evaluation models navigating deep decision spaces.</p> |
| <div class="meta-spec">Max 100M Parameters</div> |
| </div> |
| </article> |
|
|
| |
| <article class="content-section"> |
| <h2 class="section-heading">Constraints</h2> |
| <div class="constraints-table"> |
| <div class="constraints-header"> |
| <span></span> |
| <span>LM Bracket</span> |
| <span>RL Bracket</span> |
| </div> |
| <div class="constraints-row"> |
| <span class="constraint-label">Max Size</span> |
| <span>1.5B parameters</span> |
| <span>100M parameters</span> |
| </div> |
| <div class="constraints-row"> |
| <span class="constraint-label">Input</span> |
| <span>SAN</span> |
| <span>SAN, FEN, or Bitboards</span> |
| </div> |
| <div class="constraints-row"> |
| <span class="constraint-label">Architectures</span> |
| <span>Transformers, Mamba, RWKV, LSTM, Hybrids</span> |
| <span>DQN, Actor-Critic, Policy Gradients</span> |
| </div> |
| <div class="constraints-row"> |
| <span class="constraint-label">Precision</span> |
| <span>Any (FP32, FP16, INT8, INT4, Trinary…)</span> |
| <span>Any</span> |
| </div> |
| <div class="constraints-row"> |
| <span class="constraint-label">Weights Format</span> |
| <span>*.safetensors</span> |
| <span>*.safetensors</span> |
| </div> |
| </div> |
| </article> |
|
|
| |
| <article class="content-section"> |
| <h2 class="section-heading">Submission Requirements</h2> |
| <p class="section-lead">Host your model on Hugging Face and submit the repository link. Every repo must contain these four components.</p> |
| <div class="requirements-list"> |
| <div class="requirement-item"> |
| <span class="requirement-index">01</span> |
| <div> |
| <h4>README.md</h4> |
| <p>A model card covering architecture overview, parameter count, training data & methodology, known failure modes, inference speed, license, and optional performance metrics.</p> |
| </div> |
| </div> |
| <div class="requirement-item"> |
| <span class="requirement-index">02</span> |
| <div> |
| <h4>model.safetensors</h4> |
| <p>Serialized model weights. Standard pickled files (<code>.pth</code>, <code>.bin</code>) are explicitly not allowed for security and rule enforcement.</p> |
| </div> |
| </div> |
| <div class="requirement-item"> |
| <span class="requirement-index">03</span> |
| <div> |
| <h4>config.json</h4> |
| <p>Architecture configuration used to verify parameter counts and model settings against bracket constraints.</p> |
| </div> |
| </div> |
| <div class="requirement-item"> |
| <span class="requirement-index">04</span> |
| <div> |
| <h4>chess_agent.py</h4> |
| <p>Your inference logic implementing the standard <code>ChessAgent</code> class template so the evaluation engine can drive games automatically.</p> |
| </div> |
| </div> |
| </div> |
| </article> |
|
|
| |
| <article class="content-section"> |
| <h2 class="section-heading">Inference Template</h2> |
| <p class="section-lead">Your <code>chess_agent.py</code> must implement exactly this class structure.</p> |
| <pre class="code-block"><code><span class="kw">import</span> chess |
|
|
| <span class="kw">class</span> <span class="cls">ChessAgent</span>: |
| <span class="kw">def</span> <span class="fn">__init__</span>(self, model_dir=<span class="str">"./"</span>): |
| <span class="cm">""" |
| Initialize your model, tokenizer, or custom |
| neural network here. model_dir points to the |
| root of your Hugging Face repo download. |
| """</span> |
| <span class="kw">pass</span> |
|
|
| <span class="kw">def</span> <span class="fn">select_move</span>( |
| self, |
| board_history_san: <span class="cls">str</span>, |
| legal_moves_san: <span class="cls">list</span>[<span class="cls">str</span>] |
| ) -> <span class="cls">str</span>: |
| <span class="cm">""" |
| Inputs: |
| board_history_san — space-separated game so |
| far, e.g. "e4 e5 Nf3 Nc6" |
| legal_moves_san — list of legal SAN moves, |
| e.g. ["d4", "Bc4", "Nxe5"] |
| Output: |
| One string from legal_moves_san. |
| """</span> |
| chosen_move = legal_moves_san[<span class="num">0</span>] |
| <span class="kw">return</span> chosen_move</code></pre> |
| </article> |
|
|
| |
| <article class="content-section"> |
| <h2 class="section-heading">Tournament Rules</h2> |
| <div class="rules-grid"> |
| <div class="rule-item"> |
| <span class="rule-tag">Arena</span> |
| <p>Games run asynchronously on Kaggle / Colab via the <code>python-chess</code> framework, keeping hardware access open and reproducible.</p> |
| </div> |
| <div class="rule-item"> |
| <span class="rule-tag">Illegal Move Fallback</span> |
| <p>If your agent returns an unparseable or illegal move, the engine substitutes a random legal move so play continues. Repeated reliance on the fallback will hurt strategic performance.</p> |
| </div> |
| <div class="rule-item"> |
| <span class="rule-tag">Format</span> |
| <p>Swiss-system group stage leading into a single-elimination knockout. The LM bracket champion faces the RL bracket champion in the Grand Finale.</p> |
| </div> |
| <div class="rule-item"> |
| <span class="rule-tag">Results</span> |
| <p>Full PGN match histories and bracket summaries will be published once the tournament simulation concludes.</p> |
| </div> |
| </div> |
| </article> |
|
|
| |
| <article class="cta-section"> |
| <div class="cta-body"> |
| <h2>Ready to compete?</h2> |
| <p>Join the Discord to stay updated, share your submission, and discuss architectures with other participants.</p> |
| </div> |
| <div class="cta-actions"> |
| <a href="https://huggingface.co/organizations/OMLCheT/share/HOcwvemgspRoFUwRlzTdPshVYrIjIlBMQy" target="_blank" class="btn-primary">Join Tournament</a> |
| <a href="https://discord.gg/VgZffqPjzk" target="_blank" class="btn-ghost">Discord</a> |
| </div> |
| </article> |
| </section> |
| </main> |
| <footer> |
| <div class="footer-content"> |
| <span>OMLCheT</span> |
| <span>2026-today</span> |
| </div> |
| </footer> |
| </body> |
| </html> |