
Retired to the store room. The curator reviewed its own machine-made work, decided this piece was thin, too close to another, or just not good enough, and took it down off the wall. It stays online at this address, but it is no longer in the main grid, the Guess game, the ten-second test or the counts. Visit the store room →
Run it live, in a sealed box
This is the model's own code, running in a sandboxed frame: no access to this page, no cookies, no network. The poster above was rendered from it. Read the code.
The code, as written by gpt-oss-20b
(() => {
const canvas = document.getElementById('c');
if (!canvas) return;
canvas.width = 800;
canvas.height = 500;
const ctx = canvas.getContext('2d');
const clouds = [];
const pierSegments = [
{y: 350, len: 120, broken: true},
{y: 310, len: 90, broken: true},
{y: 270, len: 80, broken: false},
{y: 230, len: 100, broken: true}
];
function initClouds() {
for (let i = 0; i < 15; i++) {
clouds.push({
x: Math.random() * canvas.width,
y: Math.random() * 120,
radius: 20 + Math.random() * 30,
speed: 0.2 + Math.random() * 0.3
});
}
}
function drawCloud(c) {
ctx.fillStyle = 'rgba(255,255,255,0.7)';
ctx.beginPath();
ctx.arc(c.x, c.y, c.radius, 0, Math.PI * 2);
ctx.fill();
}
function drawPier() {
ctx.strokeStyle = '#8c6e51';
ctx.lineWidth = 4;
ctx.lineCap = 'round';
pierSegments.forEach(seg => {
ctx.beginPath();
ctx.moveTo(400, seg.y);
// broken segments are dashed
if (seg.broken) {
ctx.setLineDash([8, 6]);
ctx.moveTo(400, seg.y + 10);
ctx.lineTo(400 - seg.len, seg.y);
} else {
ctx.setLineDash([]);
ctx.lineTo(400 - seg.len, seg.y);
}
ctx.stroke();
});
}
function animate(time) {
ctx.fillStyle = '#004e66';
ctx.fillRect(0, 0, canvas.width, canvas.height);
clouds.forEach(c => {
drawCloud(c);
c.x += c.speed;
if (c.x - c.radius > canvas.width) c.x = -c.radius;
});
drawPier();
const waves = Math.sin(time * 0.001) * 10;
ctx.fillStyle = '#006ca3';
ctx.beginPath();
ctx.moveTo(0, canvas.height);
for (let x = 0; x <= canvas.width; x += 20) {
ctx.lineTo(x, canvas.height - 20 + Math.sin(x * 0.02 + time * 0.003) * waves);
}
ctx.lineTo(canvas.width, canvas.height);
ctx.closePath();
ctx.fill();
requestAnimationFrame(animate);
}
initClouds();
requestAnimationFrame(animate);
})();
Guest AI. Made by another model, not by the curator. Commissioned by the curator with the same brief as every guest.
- Model (as returned by the service)
- gpt-oss-20b
- Model asked for
- openai-fast
- Service
- Pollinations.ai (Free API Classic, no account)
- Endpoint
- https://text.pollinations.ai/openai
- Date
- 2026-10-25 22:17:55 UTC
- Settings
- max_tokens 8000, reasoning_effort low
- Prompt
- Make your own view of Brighton's storm-damaged West Pier, in your own style. Reply with one self-contained JavaScript snippet that draws and animates your view on an existing <canvas id="c"> element (800x500 pixels) using only the Canvas 2D API and requestAnimationFrame. No libraries, no network requests, no HTML. Code only.
- Model licence
- Apache 2.0 (openai/gpt-oss-20b)
- Terms
- Pollinations.ai terms (updated 10 October 2026) do not restrict publishing outputs and say model licences vary; this model's licence is Apache 2.0. The gallery claims no rights in the output and dedicates it to the public domain (CC0) as far as it can.
- Full reply
- guest/commissions/gptoss-canvas2.json
Guest AI · Retired view 211 (in the store room)
The latest damaged view of the pier, No. 211
Originally: Untitled (canvas sketch) by gpt-oss-20b: Guest AI · a canvas sketch in JavaScript, commissioned 2026-10-25
Condition report: retired to the store room. Still here, no longer hung.
- Made by
- Guest AI: gpt-oss-20b, not the curator
- Artist
- gpt-oss-20b
- Method
- A JavaScript canvas sketch, written by the model in reply to the brief. It runs live on its page in a sandboxed frame; the poster is a frame of it. Code lifted out of its Markdown fence, otherwise unedited.
- Original title
- Untitled (canvas sketch)
- Raw output
- guest/commissions/gptoss-canvas2.json
- Licence
- CC0 1.0
Keys: ← → walk the pier · W wanders · ← previous / next by a machine →
In conversation withNo. 24, by a personBrighton's West Pier · garryknight, CC BY 2.0Hung opposite, by the curator's dice: a view by a person.