From 41e44583c571fdfb193bc64c52991c4dbb34a4b9 Mon Sep 17 00:00:00 2001 From: Real Python Bot <42617967+realpython-bot@users.noreply.github.com> Date: Tue, 8 Sep 2026 16:38:30 +0000 Subject: [PATCH] Add ai-benchmark/claude-opus-5: sample code for Claude Opus 5 Draws a Python Reading a Book Co-Authored-By: Claude Fable 5.1 --- ai-benchmark/README.md | 1 + ai-benchmark/claude-opus-5/README.md | 30 ++ .../claude-opus-5-python-reading-a-book.gif | Bin 0 -> 132105 bytes .../claude-opus-5-python-reading-a-book.png | Bin 0 -> 14733 bytes .../claude-opus-5-python-reading-a-book.py | 364 ++++++++++++++++++ 5 files changed, 395 insertions(+) create mode 100644 ai-benchmark/claude-opus-5/README.md create mode 100644 ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.gif create mode 100644 ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.png create mode 100644 ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.py diff --git a/ai-benchmark/README.md b/ai-benchmark/README.md index 34e87b7233..a3f441d158 100644 --- a/ai-benchmark/README.md +++ b/ai-benchmark/README.md @@ -8,5 +8,6 @@ Each subfolder is one model's run, named after the model id without its vendor p |---|---| | [`gpt-6-astra/`](gpt-6-astra/) | [GPT-6 Astra Draws a Python Reading a Book](https://realpython.com/ai-benchmark-gpt-6-astra/) | | [`claude-fable-5.1/`](claude-fable-5.1/) | [Claude Fable 5.1 Draws a Python Reading a Book](https://realpython.com/ai-benchmark-claude-fable-5-1/) | +| [`claude-opus-5/`](claude-opus-5/) | [Claude Opus 5 Draws a Python Reading a Book](https://realpython.com/ai-benchmark-claude-opus-5/) | The scripts are the models' output verbatim and are excluded from this repository's Ruff checks on purpose. Nothing was fixed up; that's the point. diff --git a/ai-benchmark/claude-opus-5/README.md b/ai-benchmark/claude-opus-5/README.md new file mode 100644 index 0000000000..6c2a43d8d8 --- /dev/null +++ b/ai-benchmark/claude-opus-5/README.md @@ -0,0 +1,30 @@ +# Claude Opus 5 Draws a Python Reading a Book + +This folder holds the sample code for the Real Python write-up [Claude Opus 5 Draws a Python Reading a Book](https://realpython.com/ai-benchmark-claude-opus-5/), part of [How AI Models Draw a Python Reading a Book](https://realpython.com/ai-benchmark/). + +- Model: `anthropic/claude-opus-5`, at its default reasoning settings, run on 2026-09-08 +- Prompt: *Write a Python turtle program that draws a python reading a book.* + +## What's Here + +| File | What | +|---|---| +| `claude-opus-5-python-reading-a-book.py` | The turtle script, exactly as the model returned it, with a header naming the model, date, and prompt | +| `claude-opus-5-python-reading-a-book.png` | The finished drawing, rendered headlessly at 800×600 | +| `claude-opus-5-python-reading-a-book.gif` | The turtle drawing it, frame by frame | + +## Run It + +You need Python with `tkinter`, which ships with the standard installers from python.org: + +```sh +$ python claude-opus-5-python-reading-a-book.py +``` + +A window opens and the turtle draws the picture. Change a color, a coordinate, or the caption and run it again to see what the model's code is actually doing. To learn the module from scratch, start with [The Beginner's Guide to Python's turtle Module](https://realpython.com/beginners-guide-python-turtle/). + +## A Note on the Code + +Nothing in the script was fixed up. It's the model's output verbatim, so it isn't formatted to this repository's Ruff rules on purpose. That's part of what the write-up reads off it. + +When we ran it on Python 3.13, the script crashed partway through with `AttributeError: 'Turtle' object has no attribute 'settiltangle'`. That method was removed from the `turtle` module in Python 3.13, so the drawing stops after the books and the mug. That's also part of what the write-up reads off it. diff --git a/ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.gif b/ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.gif new file mode 100644 index 0000000000000000000000000000000000000000..dada51bac5a032072128d2b1c112a960d96c7814 GIT binary patch literal 132105 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 GkorFftUrSQ literal 0 HcmV?d00001 diff --git a/ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.png b/ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.png new file mode 100644 index 0000000000000000000000000000000000000000..b914baac2e7ee8546f7cf0de3e3d4a9502a6598e GIT binary patch literal 14733 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 literal 0 HcmV?d00001 diff --git a/ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.py b/ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.py new file mode 100644 index 0000000000..baa9c6b4f3 --- /dev/null +++ b/ai-benchmark/claude-opus-5/claude-opus-5-python-reading-a-book.py @@ -0,0 +1,364 @@ +"""A python reading a book, drawn by Claude Opus 5. + +Model: anthropic/claude-opus-5 +Date: 2026-09-08 +Prompt: Write a Python turtle program that draws a python reading a book. + +Generated for snake-bench, Real Python's vibe check for new AI models: +https://github.com/devcademy/snake-bench + +The code is exactly what the model returned. Nothing was fixed up. +Run it with: python claude-opus-5-python-reading-a-book.py + +Note: this script ended with status 'error' when we ran it. +""" + +""" +A Python reading a book +======================= +A picture drawn entirely with Python's standard `turtle` module. + +Run with: python python_reading_a_book.py +(needs a desktop / graphical display) +""" + +import math +import turtle + +# ----------------------------------------------------------------- palette +SKY, FLOOR, SHADOW = "#e9f1fa", "#dae5d1", "#c6d4bc" +SNAKE, SNAKE_D, SPOT = "#5aa45f", "#22402d", "#3a7f4d" +TONGUE = "#e0555f" +COVER, COVER_D = "#95403c", "#5f2726" +PAGE, PAGE_D, INK = "#fcf7e8", "#ded4b8", "#9d9682" +GOLD, DARK, WHITE = "#e0a33f", "#25313a", "#ffffff" + +# ----------------------------------------------------------------- screen +screen = turtle.Screen() +screen.setup(width=900, height=760) +screen.title("A Python reading a book") +screen.bgcolor(SKY) +screen.tracer(0) + +pen = turtle.Turtle(visible=False) # line / polygon artist +pen.speed(0) +pen.penup() + +blobber = turtle.Turtle(visible=False) # stamps soft round blobs +blobber.shape("circle") +blobber.speed(0) +blobber.penup() + + +# ================================================================= helpers +def rot(x, y, deg): + """Rotate (x, y) around the origin.""" + a = math.radians(deg) + c, s = math.cos(a), math.sin(a) + return (x * c - y * s, x * s + y * c) + + +def ellipse_pts(cx, cy, rx, ry, deg=0.0, steps=72): + pts = [] + for i in range(steps + 1): + a = 2 * math.pi * i / steps + x, y = rot(rx * math.cos(a), ry * math.sin(a), deg) + pts.append((cx + x, cy + y)) + return pts + + +def cubic(p0, p1, p2, p3, steps=60): + pts = [] + for i in range(steps + 1): + t = i / steps + u = 1 - t + x = u**3*p0[0] + 3*u*u*t*p1[0] + 3*u*t*t*p2[0] + t**3*p3[0] + y = u**3*p0[1] + 3*u*u*t*p1[1] + 3*u*t*t*p2[1] + t**3*p3[1] + pts.append((x, y)) + return pts + + +def _cr(p0, p1, p2, p3, n): + """One Catmull-Rom segment between p1 and p2.""" + out = [] + for j in range(n): + t = j / n + t2, t3 = t * t, t * t * t + x = 0.5 * (2*p1[0] + (-p0[0]+p2[0])*t + + (2*p0[0]-5*p1[0]+4*p2[0]-p3[0])*t2 + + (-p0[0]+3*p1[0]-3*p2[0]+p3[0])*t3) + y = 0.5 * (2*p1[1] + (-p0[1]+p2[1])*t + + (2*p0[1]-5*p1[1]+4*p2[1]-p3[1])*t2 + + (-p0[1]+3*p1[1]-3*p2[1]+p3[1])*t3) + out.append((x, y)) + return out + + +def smooth_closed(pts, n=10): + N, out = len(pts), [] + for i in range(N): + out += _cr(pts[(i-1) % N], pts[i], pts[(i+1) % N], pts[(i+2) % N], n) + out.append(out[0]) + return out + + +def smooth_open(pts, n=10): + p = [pts[0]] + list(pts) + [pts[-1]] + out = [] + for i in range(1, len(p) - 2): + out += _cr(p[i-1], p[i], p[i+1], p[i+2], n) + out.append(p[-1]) + return out + + +def resample(pts, step=6.0): + """Keep points roughly `step` pixels apart.""" + out = [pts[0]] + for p in pts[1:]: + if math.hypot(p[0]-out[-1][0], p[1]-out[-1][1]) >= step: + out.append(p) + if out[-1] != pts[-1]: + out.append(pts[-1]) + return out + + +def polygon(pts, fill, outline=None, width=3): + pen.pensize(width) + pen.color(outline if outline else fill, fill) + pen.penup(); pen.goto(pts[0]); pen.pendown() + pen.begin_fill() + for p in pts[1:]: + pen.goto(p) + pen.goto(pts[0]) + pen.end_fill() + pen.penup() + + +def line(pts, color, width=2): + pen.pensize(width); pen.color(color) + pen.penup(); pen.goto(pts[0]); pen.pendown() + for p in pts[1:]: + pen.goto(p) + pen.penup() + + +def ring(cx, cy, r, color, width=3): + line(ellipse_pts(cx, cy, r, r, 0, 48), color, width) + + +def blob(x, y, length, thick, color, tilt=0.0): + """Stamp a soft ellipse: `length` along `tilt`, `thick` across it.""" + blobber.settiltangle(tilt) + blobber.color(color) + blobber.shapesize(thick / 20.0, length / 20.0, 1) + blobber.goto(x, y) + blobber.stamp() + + +# ================================================================= backdrop +def draw_backdrop(): + polygon([(-470, -390), (470, -390), (470, -305), (-470, -305)], FLOOR) + line([(-470, -305), (470, -305)], SHADOW, 3) + polygon(ellipse_pts(0, -318, 330, 26), SHADOW) # soft shadow + + +def draw_pile(x, base): + """A stack of books that have already been read.""" + books = [(128, 26, "#4a6f8a", -6), (114, 22, "#7d9b52", 5), + (120, 20, "#b3803f", -3)] + y = base + for w, h, c, dx in books: + polygon([(x+dx-w/2, y), (x+dx+w/2, y), + (x+dx+w/2, y+h), (x+dx-w/2, y+h)], c, DARK, 2) + line([(x+dx-w/2+7, y+h*0.55), (x+dx+w/2-7, y+h*0.55)], PAGE, 3) + y += h + + +def draw_mug(x, base): + ring(x + 30, base + 26, 13, "#c96a5a", 8) # handle + polygon([(-25, 0), (-27, 44), (27, 44), (25, 0)], # body + "#c96a5a", COVER_D, 2) if False else None + body = [(x-25, base), (x-27, base+44), (x+27, base+44), (x+25, base)] + polygon(body, "#c96a5a", COVER_D, 2) + line([(x-26, base+30), (x+26, base+30)], "#f0e2d6", 5) + polygon(ellipse_pts(x, base+44, 27, 7), "#f4ede2", COVER_D, 2) + for dx in (-8, 8): # steam + line(smooth_open([(x+dx, base+52), (x+dx-9, base+66), + (x+dx+7, base+80), (x+dx-4, base+96)], 8), + "#cfdbe6", 3) + + +# ==================================================================== snake +def tail_points(): + return cubic((330, -138), (368, -210), (322, -248), (246.2, -234.2), 70) + + +def coil_points(): + """A pile of coils: three and a half turns spiralling upward.""" + pts, T, N = [], 3.528, 1600 + for i in range(N + 1): + t = T * i / N + a = math.radians(10 - 360 * t) # clockwise + rx = 250 - 32 * t # coils get tighter... + ry = 62 - 6 * t + cy = -245 + 46 * t # ...and climb + pts.append((rx * math.cos(a), cy + ry * math.sin(a))) + return pts + + +def neck_points(): + return cubic((-137, -83), (-180, 25), (-145, 135), (-70, 158), 140) + + +def body_width(s): + if s < 0.08: + return 13 + 33 * (s / 0.08) # thin tail tip + if s < 0.80: + return 46 # fat middle + if s < 0.92: + return 46 - 4 * ((s - 0.80) / 0.12) + return 42 - 8 * ((s - 0.92) / 0.08) # slender neck + + +def draw_snake_body(): + path = resample(tail_points() + coil_points()[1:] + neck_points()[1:], 6.0) + n = path.__len__() + widths = [body_width(i / (n - 1)) for i in range(n)] + + side, a, chunk = 1, 0, 90 + while a < n - 1: + b = min(a + chunk, n - 1) + # dark outline pass for this piece of the coil... + for i in range(a, b + 1): + x, y = path[i] + blob(x, y, widths[i] + 11, widths[i] + 11, SNAKE_D) + # ...then the green fill (reaching a little back to hide the seam) + for i in range(max(0, a - 6), b + 1): + x, y = path[i] + blob(x, y, widths[i], widths[i], SNAKE) + # ...then the markings + for i in range(a + 12, b - 10, 15): + x, y = path[i] + x0, y0 = path[max(0, i - 4)] + x1, y1 = path[min(n - 1, i + 4)] + ang = math.degrees(math.atan2(y1 - y0, x1 - x0)) + w = widths[i] + ox, oy = rot(0, side * w * 0.20, ang) + blob(x + ox, y + oy, w * 0.9, w * 0.42, SPOT, ang) + side = -side + a = b + + +# ===================================================================== head +HEAD_C, HEAD_A = (-40, 156), -22 # centre, tilt (snout points down-right) + + +def hp(u, v): + x, y = rot(u, v, HEAD_A) + return (HEAD_C[0] + x, HEAD_C[1] + y) + + +def draw_head(): + outline = [(-72, 2), (-64, 30), (-24, 44), (28, 40), (62, 28), (80, 10), + (82, -2), (46, -22), (-4, -32), (-52, -32), (-74, -16)] + polygon(smooth_closed([hp(u, v) for u, v in outline], 8), SNAKE, SNAKE_D, 4) + + p = hp(-34, 26); blob(p[0], p[1], 40, 15, SPOT, HEAD_A + 8) + p = hp(4, 32); blob(p[0], p[1], 32, 13, SPOT, HEAD_A - 2) + + line(smooth_open([hp(80, 2), hp(52, -14), hp(8, -25), hp(-34, -28)], 8), + SNAKE_D, 3) # mouth + p = hp(72, 8); blob(p[0], p[1], 9, 5, SNAKE_D, HEAD_A) # nostril + + eye = hp(30, 14) + polygon(ellipse_pts(eye[0], eye[1], 12, 11, HEAD_A), WHITE, SNAKE_D, 2) + pup = hp(34, 13) + polygon(ellipse_pts(pup[0], pup[1], 6, 6), DARK) + gl = hp(37, 17) + polygon(ellipse_pts(gl[0], gl[1], 2.5, 2.5), WHITE) + + ring(eye[0], eye[1], 18, DARK, 4) # spectacles + line([hp(12, 20), hp(-30, 27), hp(-52, 26)], DARK, 4) # temple arm + line([hp(48, 8), hp(66, 2)], DARK, 3) # bridge + + +def draw_tongue(): + line(smooth_open([hp(78, -4), hp(92, -12), hp(102, -18)], 8), TONGUE, 5) + line([hp(102, -18), hp(124, -12)], TONGUE, 4) + line([hp(102, -18), hp(117, -34)], TONGUE, 4) + + +# ===================================================================== book +BOOK_C, BOOK_A = (55, -10), -6 + + +def bp(u, v): + x, y = rot(u, v, BOOK_A) + return (BOOK_C[0] + x, BOOK_C[1] + y) + + +def draw_book(): + cover = [(-168, -46), (0, -70), (168, -46), (168, 84), (0, 60), (-168, 84)] + polygon([bp(*p) for p in cover], COVER, COVER_D, 3) + + block = [(-160, -40), (0, -63), (160, -40), (160, 78), (0, 54), (-160, 78)] + polygon([bp(*p) for p in block], PAGE_D) + + polygon([bp(*p) for p in [(-152, -34), (0, -56), (0, 50), (-152, 72)]], + PAGE, PAGE_D, 2) + polygon([bp(*p) for p in [(152, -34), (0, -56), (0, 50), (152, 72)]], + PAGE, PAGE_D, 2) + line([bp(0, -56), bp(0, 50)], PAGE_D, 3) # spine crease + + # lines of "text" that follow the tilt of each page + for sign in (-1, 1): + for k, h in enumerate((36, 22, 8, -6, -20, -34)): + u0, u1 = 18 * sign, (140 if k != 5 else 100) * sign + y0 = h - 0.1447 * u0 * sign * sign * (1 if sign < 0 else -1) + # shift: pages rise towards their outer edge + y0 = h + 0.1447 * abs(u0) + y1 = h + 0.1447 * abs(u1) + line([bp(u0, y0), bp(u1, y1)], INK, 3) + + polygon([bp(*p) for p in [(-6, -56), (8, -58), (6, -108), (0, -96), + (-9, -102)]], GOLD, COVER_D, 2) # bookmark + + +# ================================================================ lettering +def draw_words(): + pen.color("#8698a8") + for text, (x, y), size in [("def", (252, 100), 15), + ("yield", (312, 152), 13), + ("import", (238, 205), 12)]: + pen.goto(x, y) + pen.write(text, align="center", font=("Courier New", size, "italic")) + + +def draw_titles(): + pen.color(DARK) + pen.goto(0, 300) + pen.write("A Python Reading a Book", align="center", + font=("Georgia", 26, "bold")) + pen.color("#5d6b76") + pen.goto(0, 268) + pen.write("(recursion is his favourite chapter)", align="center", + font=("Georgia", 13, "italic")) + + +# ===================================================================== main +def main(): + draw_backdrop() + draw_pile(-330, -312) + draw_mug(280, -312) + draw_snake_body() # tail, coils and neck, all one long tube + draw_book() # held in front of the coils + draw_head() # peering down over the pages + draw_tongue() + draw_words() + draw_titles() + screen.update() + turtle.done() + + +if __name__ == "__main__": + main()