<?xml version="1.0" encoding="UTF-8"?>
<!-- name="generator" content="pyblosxom/1.4.1 7/27/2007" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
<channel>
<title>Блогчетање   </title>
<link>https://danilo.segan.org/blog</link>
<description>Данилово блогче</description>
<language>en</language>
<item>
  <title>Postscriptum on LLMs: pelicans on bicycles with a twist</title>
  <link>https://danilo.segan.org/blog/llm/postscript-pelicans-on-bicycles</link>
  <description><![CDATA[

<h2>
  Judge Dread? Or welcome to my first LLM-related post.
</h2>
<p>
  As LLMs and especially coding agents became part of our daily workflows,
  we started relying more on actual <em>judgement</em> of models
  we use — judgement, to me, is any decision they default to based on
  their training and pre-processing without humans actually directing
  them with prompts or skills.
</p>

<p>
  It might be a simple decision about using tabs or spaces, or
  a more complex one about how to structure your tests and test
  fixtures, but you can already get a lot done by offloading
  <em>decision-making</em> as well.
</p>

<p>
  While this is fast improving, I wanted to test <em>my</em>
  understanding by asking them to do an extremely common test by
  Simon Willison of generating a vector image of a
  <a href="https://simonwillison.net/tags/pelican-riding-a-bicycle/
           ">pelican riding a bicycle</a>,
  but <strong>with a twist</strong>: instead of asking for an SVG,
  ask for a conceptually different vector format
  <a href="https://paulbourke.net/dataformats/postscript/"
     >PostScript</a> (really, a programming language), which is
  closer to the plotting/printing model from 80s, with instructions
  like <code>moveto</code>, Y-axis actually going upwards, for loops,
  matrix transformations etc — enough difference in semantic
  interpretation and less training data to throw a frontier model off :)
</p>

<p>
  My expectation was that they would be a generation or two behind
  compared to what Simon is getting with SVGs.
</p>

<p>
  I'll let you be the judge if my foresight was right or not.
</p>

<p style="font-size: 2em;">
  Prompt: <em>Generate a native PostScript image of a pelican riding a bicycle.</em>
</p>

<div style="
            display: flex;
            flex-wrap: wrap;
            align-items: flex-start;
            gap: 16px;
            line-height: 200px;
            ">

  <a href="pelican-riding-bicycle-chatgpt-5.6-sol-extra-high.ps">
    <figure style="margin: 0; padding: 8px; border: 1px solid #bbb; border-radius: 6px;">
      <img
        src="/slike/ps-pelicans/pelican-riding-bicycle-chatgpt-5.6-sol-extra-high.ps.png"
        alt="PS Pelican riding a bicycle with ChatGPT 5.6 Sol Extra-High"
        style="display: block; width: auto; height: 360px;"
      >
      <figcaption style="margin-top: 8px; text-align: center;">
        ChatGPT 5.6 Sol Extra-High
      </figcaption>
    </figure>
  </a>

  <a href="pelican-riding-bicycle-claude-fable-5-high.ps">
    <figure style="margin: 0; padding: 8px; border: 1px solid #bbb; border-radius: 6px;">
      <img
        src="/slike/ps-pelicans/pelican-riding-bicycle-claude-fable-5-high.ps.png"
        alt="PS Pelican riding a bicycle with Claude Fable 5 High"
        style="display: block; width: auto; height: 360px;"
      >
      <figcaption style="margin-top: 8px; text-align: center;">
        Claude Fable 5 High
      </figcaption>
    </figure>
  </a>

  <a href="pelican-riding-bicycle-claude-opus-5-extra.ps">
    <figure style="margin: 0; padding: 8px; border: 1px solid #bbb; border-radius: 6px;">
      <img
        src="/slike/ps-pelicans/pelican-riding-bicycle-claude-opus-5-extra.ps.png"
        alt="PS Pelican riding a bicycle with Claude Opus 5 Extra"
        style="display: block; width: auto; height: 360px;"
      >
      <figcaption style="margin-top: 8px; text-align: center;">
        Claude Opus 5 Extra
      </figcaption>
    </figure>
  </a>

  <a href="pelican-riding-bicycle-gemini-3.1-pro-high.ps">
    <figure style="margin: 0; padding: 8px; border: 1px solid #bbb; border-radius: 6px;">
      <img
        src="/slike/ps-pelicans/pelican-riding-bicycle-gemini-3.1-pro-high.ps.png"
        alt="PS Pelican riding a bicycle with Gemini 3.1 Pro High"
        style="display: block; width: auto; height: 360px;"
      >
      <figcaption style="margin-top: 8px; text-align: center;">
        Gemini 3.1 Pro High
      </figcaption>
    </figure>
  </a>

  <a href="pelican-riding-bicycle-gemini-3.7-flash-thinking-v2.ps">
    <figure style="margin: 0; padding: 8px; border: 1px solid #bbb; border-radius: 6px;">
      <img
        src="/slike/ps-pelicans/pelican-riding-bicycle-gemini-3.7-flash-thinking-v2.ps.png"
        alt="PS Pelican riding a bicycle with Gemini 3.7 Flash Thinking v2"
        style="display: block; width: auto; height: 360px;"
      >
      <figcaption style="margin-top: 8px; text-align: center;">
        Gemini 3.7 Flash Thinking v2 (v1 had a syntax error which required fixing)
      </figcaption>
    </figure>
  </a>

  <a href="pelican-riding-bicycle-qwen-3.7-plus-thinking.ps">
    <figure style="margin: 0; padding: 8px; border: 1px solid #bbb; border-radius: 6px;">
      <img
        src="/slike/ps-pelicans/pelican-riding-bicycle-qwen-3.7-plus-thinking.ps.png"
        alt="PS Pelican riding a bicycle with Qwen 3.7 Plus Thinking"
        style="display: block; width: auto; height: 360px;"
      >
      <figcaption style="margin-top: 8px; text-align: center;">
        Qwen 3.7 Plus Thinking
      </figcaption>
    </figure>
  </a>

  <a href="pelican-riding-bicycle-qwen-3.8-max-thinking.ps">
    <figure style="margin: 0; padding: 8px; border: 1px solid #bbb; border-radius: 6px;">
      <img
        src="/slike/ps-pelicans/pelican-riding-bicycle-qwen-3.8-max-thinking.ps.png"
        alt="PS Pelican riding a bicycle with Qwen 3.8 Max  Thinking"
        style="display: block; width: auto; height: 360px;"
      >
      <figcaption style="margin-top: 8px; text-align: center;">
        Qwen 3.8 Max Thinking
      </figcaption>
    </figure>
  </a>

</div>

<h2>Some quick notes</h2>

<ul>
  <li>I tried converting PostScript files with ImageMagick first, but after seeing it miss a few things during conversion, decided to use GhostScript loader from within Inkscape instead and export a PNG out.</li>
  <li>Gemini 3.7 Flash had a broken first version which it was able to fix with the Ghostscript error message passed back (I think it was wrong parameters for ellipse command).</li>
  <li>Opus 5 took around 4 iterations of rendering to a raster image and reviewing (also hitting a PS syntax error), but managed to improve with each cycle.  I did not check the costs, but it was probably expensive :)</li>
  <li>My first few attempts were with a slightly different prompt of "Make an PS or EPS (PostScript) of a pelican riding a bicycle" ("an" typo included — I probably went for EPS first and never corrected the language). This resulted in <em>greyscale</em> images in ChatGPT confirming that this might be worth looking into.  I did not approach it scientifically at all, but switching to "Generate" to match Simon's version always produced a colorized version.</li>
  <li>All of the text in this post was hand-typed, including the em-dashes.</li>

</ul>


]]></description>
</item>

</channel>
</rss>
