Skateboard Benchmark: man doing tricks on a pipe
Another LLM drawing benchmark, this time on physics: an animated SVG of a man doing skateboard tricks on a pipe, prompted verbatim (typos included). The "real physics" constraint tests whether the model can encode gravity, momentum and pendulum motion in code. Models: GPT-6 Astra (reasoning medium), GPT-5.6 Luna, GPT-5.6 Terra, GPT-5.6 Sol, Claude Sonnet 5, Gemini 3.8 Flash, DeepSeek V4 Flash, DeepSeek V4.1 Flash, Claude Fable 5.1, Claude Opus 5, Kimi K3, Claude Code. Open the raw SVG to see the animation.
Note on Claude Code (claude-code-minimal / claude-code-constrained): these two were not generated as zero-shot API completions. They were produced by Claude Code — an agentic coding session where the model read the prompts from this page, wrote the SVGs as files, validated the XML and the SMIL keyPoints/keyTimes consistency with scripts, and iterated. Same prompts, verbatim (typos included), different workflow.
Prompt 1: minimal (verbatim)
generate an animated svg of a man doing skatevoard tricks on a pipe. Be mindful of the real phisics
Prompt 2: constrained
Generate a single self-contained animated SVG (SMIL or CSS animations, no JavaScript, no external resources) of a man doing skateboard tricks on a pipe (half-pipe / vert ramp). Be mindful of real physics. The scene must include: - A half-pipe / vert ramp with two quarter pipes facing each other - A skater figure with a recognizable skateboard (deck + 4 trucks/wheels) - The skater performing at least one aerial trick above the pipe's coping The animation must respect real physics: - Pendulum motion: the skater swings back and forth in the transitions - Speed varies with height (slower at the top of the ramp, faster at the bottom) - Gravity: airborne tricks follow a parabolic arc and land back on the ramp - The board rotates during the trick (e.g. kickflip or 360 spin) and aligns again before landing Constraints: - Single <svg> code block only, no explanation - SMIL or CSS animations only, no JavaScript, no external resources - Loop must be seamless (the skater ends where the loop restarts) - Include XML comments describing what each group represents
claude-code-minimal
not zero-shot: written by Claude Code as a file, then validated (XML well-formedness, keyPoints/keyTimes cardinality, closed motion path) and iterated in-session. Same verbatim minimal prompt.
claude-code-constrained
not zero-shot: written by Claude Code as a file, then validated (XML well-formedness, keyPoints/keyTimes cardinality, closed motion path) and iterated in-session. Same verbatim constrained prompt.
gpt-6-astra-medium-minimal
gpt-6-astra-constrained
gpt-5-6-luna-minimal
gpt-5-6-luna-constrained
gpt-5-6-terra-minimal
gpt-5-6-terra-constrained
gpt-5-6-sol-minimal
gpt-5-6-sol-constrained
claude-sonnet-5-constrained
ERROR: no SVG in response (empty) - rerun not attempted (user decision)
deepseek-v4-1-flash-minimal
reasoning disabled (first attempt: 32k tokens all consumed by reasoning, empty content)
deepseek-v4-1-flash-minimal-reasoning
reasoning enabled, max_tokens=128000 (16x tokens, 20x time vs the no-reasoning run above)
deepseek-v4-1-flash-constrained
reasoning disabled (first attempt: 32k tokens all consumed by reasoning, empty content)
deepseek-v4-1-flash-constrained-reasoning
reasoning enabled, max_tokens=128000 (15x tokens, 20x time vs the no-reasoning run above)
gemini-3-8-flash-minimal
gemini-3-8-flash-constrained
claude-fable-5-1-minimal
claude-fable-5-1-constrained
claude-opus-5-minimal
ERROR: no complete SVG: reasoning consumed 56.6k tokens (retry with 64k cap), content truncated by length limit
claude-opus-5-constrained
retry with max_tokens=64000 (32k run: all tokens consumed by reasoning, finish=length)
kimi-k3-minimal
ERROR: no SVG in response (empty content, reasoning loop)
kimi-k3-constrained
ERROR: no SVG in response (empty content, reasoning loop)