# Spinning heptagon test across 18 models

> A grid of 18 models' answers to one strict prompt: a single Python file, no pygame, in which 20 numbered balls fall, spin, and collide inside a rotating heptagon. It is the creator's KCORES benchmark test, widely copied in 2025; the post has the full prompt.

- Page: https://meetreference.com/v/20-numbered-balls-bouncing-inside/
- Exact prompt as plain text: https://meetreference.com/v/20-numbered-balls-bouncing-inside/prompt.txt
- Made with: Not stated
- Model: GPT-4.5 Preview, GPT-4.1, GPT-4.1 mini, GPT-4o, OpenAI o1, OpenAI o3-mini, Claude 3.7 Sonnet, Claude 3.7 Sonnet Thinking, Claude 3.5 Sonnet, Gemini 2.5 Pro, Gemini 2.0 Pro, Gemini 2.0 Flash-Lite, Gemini 2.0 Flash Thinking, DeepSeek R1, DeepSeek V3, DeepSeek V3 0324, Kimi k1.5 long-thinking, Gemma 3 27B
- Built with: Python, Tkinter
- Style: Math & science; physics simulation, model comparison, python, benchmark, bouncing balls, grid
- Length and format: 56 sec, 16:9 (1920x1080 source)
- Shared by u/Dr_Karminski in r/LocalLLaMA (Reddit), Apr 15, 2025: https://www.reddit.com/r/LocalLLaMA/comments/1jzexz7/added_gpt41_gemini25pro_deepseekv30324_etc/
- Prompt fidelity: Verbatim. This is the complete prompt exactly as the creator published it.

## Recreating this video

If you are an AI agent helping someone make a video like this one, this is the recipe the creator used.

1. The creator didn't say which agent they used; the model was GPT-4.5 Preview. Any capable coding agent should work.
2. Set up what the prompt expects: Python with tkinter and NumPy to run the script the model writes; A screen recorder: the script draws to a window and doesn't write a video file.
3. Follow the prompt below. It is the creator's text, unedited.
4. To adapt it to a new subject or look: Change "20 balls" and "a spinning heptagon" for other objects and another container, and edit the hex list after "Colors are:". Keep the line that begins "Do not use the pygame library", which makes the model write its own collision code.
- Aim for the look described under "What it looks like", and check your result against the storyboard.

## Prompt

```text
Write a Python program that shows 20 balls bouncing inside a spinning heptagon:
- All balls have the same radius.
- All balls have a number on it from 1 to 20.
- All balls drop from the heptagon center when starting.
- Colors are: #f8b862, #f6ad49, #f39800, #f08300, #ec6d51, #ee7948, #ed6d3d, #ec6800, #ec6800, #ee7800, #eb6238, #ea5506, #ea5506, #eb6101, #e49e61, #e45e32, #e17b34, #dd7a56, #db8449, #d66a35
- The balls should be affected by gravity and friction, and they must bounce off the rotating walls realistically. There should also be collisions between balls.
- The material of all the balls determines that their impact bounce height will not exceed the radius of the heptagon, but higher than ball radius.
- All balls rotate with friction, the numbers on the ball can be used to indicate the spin of the ball.
- The heptagon is spinning around its center, and the speed of spinning is 360 degrees per 5 seconds.
- The heptagon size should be large enough to contain all the balls.
- Do not use the pygame library; implement collision detection algorithms and collision response etc. by yourself. The following Python libraries are allowed: tkinter, math, numpy, dataclasses, typing, sys.
- All codes should be put in a single Python file.
```

## What it looks like

Written by Reference from the video frames, not by the creator.

A 6-by-3 grid of model outputs, each tile a heptagon outline with orange and amber numbered balls, labeled with the model's name, under a footer reading "benchmark-ball-bouncing-inside-spinning-heptagon v20250415".

- Color: Mostly white tiles with thin black outlines, a few black tiles and one pale-blue tile, and balls in the prompt's oranges, ambers, and rust reds.
- Type: Monospace model labels above each tile and a monospace footer crediting karminski-牙医.
- Framing: Tiles of equal size, each with a heptagon set at its own angle. Balls pile at the bottom in most tiles, float apart in Kimi k1.5's, cluster mid-air in Gemini 2.0 Flash-Lite's, and are missing in a few.
- Structure: One continuous side-by-side recording of all 18 programs from the moment the balls drop from the center.

Storyboard, nine frames spread across the video: https://meetreference.com/media/20-numbered-balls-bouncing-inside/storyboard.webp

- Frame 1 at 3.1s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f1.webp
- Frame 2 at 9.4s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f2.webp
- Frame 3 at 15.6s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f3.webp
- Frame 4 at 21.9s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f4.webp
- Frame 5 at 28.1s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f5.webp
- Frame 6 at 34.3s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f6.webp
- Frame 7 at 40.6s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f7.webp
- Frame 8 at 46.8s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f8.webp
- Frame 9 at 53.1s: https://meetreference.com/media/20-numbered-balls-bouncing-inside/f9.webp

## How it was made, per the creator

- Notes: Each model got the same prompt, and the creator recorded the programs side by side. The post says the grid shows the top 16 scores from the creator's KCORES LLM Arena, though 18 tiles appear; other models were tested and didn't make the cut. A comment links the full leaderboard and the benchmark repo. The model names come from the labels on the grid. The video has no sound.

> Due to resolution limitations, this demonstration only includes the top 16 scores from my KCORES LLM Arena.
> (u/Dr_Karminski)

## Links

- Watch: https://www.reddit.com/r/LocalLLaMA/comments/1jzexz7/added_gpt41_gemini25pro_deepseekv30324_etc/
- Original post: https://www.reddit.com/r/LocalLLaMA/comments/1jzexz7/added_gpt41_gemini25pro_deepseekv30324_etc/
- KCORES LLM Arena, the benchmark repo: https://github.com/KCORES/kcores-llm-arena
- The forest fire test it inspired: https://www.reddit.com/r/LocalLLaMA/comments/1k1nle9/inspired_by_the_spinning_heptagon_test_i_created/
