Same prompt, same single HTML file, same Three.js from cdnjs. Each OpenAI model was asked to build Lighthouse Cove, an interactive voxel island with a spinning lighthouse, a fishing village, boats, seagulls and a night mode. This repo holds every result, a homepage that ranks them, and the scoring used to rank them.
Live: eval-forge.github.io
- The prompt
- The entries
- How the ranking works
- How to run an entry
- Repository layout
- Adding an entry
- License
The full prompt is on the homepage. In short, each entry had to:
- Build a floating island with sand, grassy cliffs, a rocky underside and waterfalls.
- Add a striped lighthouse with a rotating beam, a fishing village, a dock, two sailboats and a voxel water pool.
- Add palms, bushes, flowers, barrels, crates, an animated campfire, three islets and seagulls.
- Support drag to rotate, scroll to zoom, auto-rotate, a day/night toggle and a beam toggle.
- Use InstancedMesh, per-voxel colour variation, fog, soft shadows and animated water.
- Open with a top bar showing the model, date and total time, with an Eval Forge homepage link at the far right.
- Ship as one self-contained HTML file that loads Three.js from cdnjs.
Ranked by the formula in How the ranking works. Time is the value each model reported in its own top bar.
| Rank | Model | Looks | Accuracy | Prompt | Time | Score | File |
|---|---|---|---|---|---|---|---|
| 1 | GPT-6 Astra | 92 | 88 | 80 | 13m 09s | 85.4 | gpt-6-astra.html |
| 2 | GPT-6.1 Sol | 88 | 82 | 90 | 8m 40s | 84.1 | gpt-6.1-sol.html |
| 3 | GPT-5.6 Sol | 80 | 76 | 80 | 7m 54s | 77.2 | gpt-5.6-sol.html |
| 4 | GPT-6 Sol | 80 | 70 | 85 | 7m 46s | 75.9 | gpt-6-sol.html |
| 5 | GPT-5.6 Luna | 72 | 72 | 95 | 2m 49s | 75.0 | gpt-5.6-luna.html |
| 6 | GPT-6 Luna | 65 | 78 | 85 | 1m 00s | 72.7 | gpt-6-luna.html |
| 7 | GPT-5.5 | 50 | 84 | 90 | 14m 04s | 61.7 | gpt-5-5.html.html |
| 8 | GPT-5.6 Terra | 45 | 58 | 80 | 3m 41s | 54.1 | gpt-5.6-terra.html |
Looks, accuracy and prompt-following are 0 to 100 ratings. Time points are described below.
Each entry gets a score from 0 to 100:
| Symbol | Meaning |
|---|---|
| V | Looks: lighting, materials, composition, UI polish, and whether the scene feels finished. |
| A | Accuracy: how much of the prompt's scene checklist is actually built and working. |
| H | Prompt-following: top bar format, the homepage link, one self-contained file, and cdnjs-hosted Three.js. |
| T | Time points: the fastest entry scores 100 and the slowest scores 0. |
| t | Seconds to finish, as reported by the model in its top bar. |
| T_min, T_max | Fastest and slowest times in the set (60 s and 844 s). |
Looks and accuracy carry most of the weight. Time is a tiebreaker, not the headline.
The ratings for looks, accuracy and prompt-following are judgment calls made from each file's source and rendered output. They are not measured.
No build step. Every entry is a single HTML file that loads Three.js from cdnjs.
- Clone the repo, or download the file you want.
- Open the
.htmlfile in a modern browser. - You need an internet connection, because Three.js loads from
cdnjs.cloudflare.com.
To view entries without cloning, use the homepage at eval-forge.github.io. Its cards load each scene on click.
.
├── index.html Homepage: ranking, scoring equation, entry cards
├── gpt-*.html One file per model (the entries)
├── gpt-5-5.html.html GPT-5.5 entry (file name kept as published)
├── LICENSE MIT
└── README.md
- Add the new
.htmlfile to the repo root. It should be one self-contained file that loads Three.js from cdnjs. - Add an entry to the
ENTRIESarray inindex.htmlwith its model name, file, title, date, time in seconds, and V, A and H ratings. - Open
index.htmllocally to check the card, the ranking table and the score. - Open a pull request with the ratings and a short reason for each.
Scores depend on the whole set, because time is scaled between the fastest and slowest entries. Adding an entry that is slower or faster than the current extremes will shift everyone's time points.
Released under the MIT License.