Skip to main content

Ascii Maze Benchmark

This is a benchmark for testing how capable different LLMs are at solving ascii mazes. Here is an example 4x4 maze:

START
 v
# #######
#       #
# ##### #
# #     #
# #######
#     # #
##### # #
#       #
####### #
       ^
   FINISH

Here is the solution:

#.#######
#.      #
#.##### #
#.#     #
#.#######
#.....# #
#####.# #
#    ...#
#######.#

The benchmark randomly generates mazes from a seed, and evaluates LLMs ability to solve the maze.

Some LLMs tend to struggle with perfectly formatting the output for some reason, so we report scores at varying string distances to the correct response.

We evaluate all models using the OpenRouter API, to keep it simple. If it's not on open router, the benchmark will not be run.

Usage

Setup

  1. Copy .env.example to .env and add your OpenRouter API key:

    cp .env.example .env
    
  2. Edit the .env file and replace your_api_key_here with your actual OpenRouter API key.

Generate Example Mazes

To generate and solve an example maze:

uv run ascii-maze-benchmark generate-example WIDTH HEIGHT [--seed SEED]

Example:

uv run ascii-maze-benchmark generate-example 5 5 --seed 42

Run Benchmarks

To run benchmarks against a specific model:

uv run ascii-maze-benchmark run-benchmark MODEL_ID [OPTIONS]

Options:

  • --maze-sizes TEXT: Comma-separated list of maze sizes to test (format: WIDTHxHEIGHT)
  • --mazes-per-size INTEGER: Number of different mazes to generate per size
  • --seed INTEGER: Random seed for reproducible maze generation
  • --cache-dir TEXT: Directory to cache benchmark results

Example:

uv run ascii-maze-benchmark run-benchmark anthropic/claude-3-haiku-20240307 --maze-sizes 3x3,4x4 --mazes-per-size 2

Development Tips

  • Benchmark results are cached in the .cache/benchmark_results directory by default, so visualization code can be rerun without spending money to rerun the benchmark.
  • Test the benchmarking code on a cheap model on OpenRouter first, to save costs.
  • Use the .env file to manage OpenRouter credentials.
  • Use uv for package management and running commands.
  • There is a src/ascii_maze_benchmark/generate_maze_script.py file you can use as a reference for maze generation logic.

Metadata

Release files for ascii-maze-benchmark 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ascii-maze-benchmark 0.1.0
File Size Uploaded
ascii_maze_benchmark-0.1.0.tar.gz 41.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ascii-maze-benchmark 0.1.0
File Interpreter ABI Platform
ascii_maze_benchmark-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 62.2 kB

Release files / ascii_maze_benchmark-0.1.0.tar.gz

Download URL ascii_maze_benchmark-0.1.0.tar.gz
Size 41.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8f9ce728f524c736e888f8a8ee8000f22b9704e06083f266afc0098641694579
BLAKE2b-256 checksum
How to use checksums
6904c98c2b8d22694df24342f2c3f5992f963e7e1690f7cade8fa8e6b9dc6cc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.6.14

Release files / ascii_maze_benchmark-0.1.0-py3-none-any.whl

Download URL ascii_maze_benchmark-0.1.0-py3-none-any.whl
Size 20.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b6d30ac70c992dba9c6ac2df0272f31f3d5b5e59b7bf3191ddd9aa18818b171
BLAKE2b-256 checksum
How to use checksums
4c22726ebb332541d4930ca44999db93d225fa8679ef51c0cfdb50c39634a7f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.6.14

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page