{
"id": "231",
"prompt": "A 480x270 sunset (export dims() with (480 << 16) | 270): per-scanline channel-lerped sky from deep violet at the top to burnt orange at the horizon, a half-set sun scan-filled above the horizon line, and a dark sea below with hash-jittered shimmer lines plus a warm glint column under the sun, re-jittered every few frames.",
"solution_rl": "fn dims() -> i32 {\n (480 << 16) | 270\n}\n\nfn frame(t: i32) {\n let w: i32 = host::display::width();\n let h: i32 = host::display::height();\n let hz: i32 = h * 3 / 5;\n let mut y: i32 = 0;\n while y < hz {\n let r: i32 = 26 + (255 - 26) * y / hz;\n let g: i32 = 5 + (144 - 5) * y / hz;\n let b: i32 = 51 + (64 - 51) * y / hz;\n host::display::fill_rect(0, y, w, 1, r * 65536 + g * 256 + b);\n y = y + 1;\n }\n let scy: i32 = hz - 34;\n let mut dy: i32 = 0 - 30;\n while dy <= 30 {\n if scy + dy < hz {\n let mut hw: i32 = 30;\n while hw * hw + dy * dy > 900 {\n hw = hw - 1;\n }\n host::display::fill_rect(w / 2 - hw, scy + dy, hw * 2 + 1, 1, 0xffe9a0);\n }\n dy = dy + 1;\n }\n host::display::fill_rect(0, hz, w, h - hz, 0x0a1030);\n let mut sy: i32 = hz + 3;\n while sy < h {\n let mut hsh: i32 = sy * 7919 + (t / 6) * 104729;\n hsh = hsh * 1103515245 + 12345;\n let sx: i32 = ((hsh >> 16) & 32767) % (w - 60);\n host::display::fill_rect(sx, sy, 60, 1, 0x35507a);\n hsh = hsh * 1103515245 + 12345;\n let gx: i32 = w / 2 - 20 + ((hsh >> 16) & 31);\n host::display::fill_rect(gx, sy, 22, 1, 0xd8a060);\n sy = sy + 6;\n }\n host::display::present();\n}\n",
"tags": [
"generative",
"dims",
"color",
"prng"
]
}