Skip to content

Killer Sumdoku

Killer Sumdoku is a harder version of Sudoku.

Core trick

Rewards human-style candidate elimination and penalizes guessing, with puzzle difficulty adjusted from a rolling average of five games.

Tags

Description

Killer Sumdoku is a harder version of Sudoku. Computers use brute force (recursive) Depth First Search to solve, but humans treat this as a very long horizon reasoning problem (a single puzzle can take many hours!). If we can create an environment where playing the puzzle like a human is rewarded and brute-forcing/guessing is penalized, we have a very good env for long-horizon reasoning. There is also room for self-play curriculum: if the model does good / bad in a running average of 5 games, we make the next puzzles harder / easier (increase puzzle difficulty number by how populated it is in the beginning as well as how big the grid is).
arnavinator/Killer_Sumdoku_OpenEnv_and_GRPO_Finetune★ 00 forksPythonCreated Mar 8, 2026 · last push Mar 8, 2026

README excerpt

---
title: Killer Sudoku Env Environment Server
emoji: 🎴
colorFrom: pink
colorTo: yellow
sdk: docker
pinned: false
app_port: 8000
base_path: /web
tags:
  - openenv
---

# Killer Sudoku Environment

An OpenEnv environment for training LLMs on long-horizon reasoning via Killer Sudoku (Sumdoku) puzzles with adaptive difficulty progression.

## Overview

The agent solves Sumdoku puzzles by proposing candidate values, eliminating candidates through logical reasoning, and entering final answers. Difficulty automatically adapts based on rolling performance.

## Quick Start

### Direct (no Docker)

```python
import sys, os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from killer_sudoku_env.server.killer_sudoku_env_environment import KillerSudokuEnvironment
from killer_sudoku_env.models import KillerSudokuAction

env = KillerSudokuEnvironment()
obs = env.reset()
print(obs.board_display)

# Enter an answer
obs = env.step(KillerSudokuAction(action_type="enter_answer", x=0, y=0, value=5))
print(obs.action_result, obs.reward)
```

### Docker

```bash
docker build -t killer_sudoku_env-env:latest -f server/Dockerfile .
```

```python
from killer_sudoku_env import KillerSudokuEnv, KillerSudokuAction

env = KillerSudokuEnv.from_docker_image("killer_sudoku_env-env:latest")
result = env.reset()
print(result.observation.board_display)
```

## Action Space

Three action types via `KillerSudokuAction`:

| Action | Required Fields | Description |
|--------|----------------|------

Team