{
  "version": "https://jsonfeed.org/version/1",
  "title": "Side-projects on LLBBL Blog",
  "icon": "https://avatars.micro.blog/avatars/2023/40/125738.jpg",
  "home_page_url": "https://llbbl.blog/",
  "feed_url": "https://llbbl.blog/feed.json",
  "items": [
      {
        "id": "http://llbbl.micro.blog/2026/04/05/hiding-poems-inside-images.html",
        "title": "Hiding Poems Inside Images",
        "content_html": "<p>I built a tool that hides poems inside images. Not as metadata, not as a watermark. The actual text of the poem drives the visual pattern, and you can reconstruct the poem perfectly from the image alone.</p>\n<h2 id=\"how-it-works\">How It Works</h2>\n<p>You give it a poem. It analyzes the syllable count, rhyme scheme, and stress patterns. Then it generates a visual pattern where those poetic features drive the aesthetics: spiral width, dot placement, block size, line weight.</p>\n<p>The text itself is encoded into the pattern in a variety of ways. The pattern isn&rsquo;t just inspired by the poem, it IS the poem. Run the decoder on the image and you get back the original text, character for character, including whitespace and punctuation.</p>\n<h2 id=\"seven-renderers-two-approaches\">Seven Renderers, Two Approaches</h2>\n<p>There are seven different visual styles, split into two categories.</p>\n<p>The <strong>steganographic renderers</strong> (geometric, concentric, waveform) hide text invisibly in pixel color channels using LSB encoding. The visual pattern is purely decorative. This is a well-known technique. nothing new there.</p>\n<p>I wanted to build something different, so I focused on <strong>visual encoding patterns</strong>. The encoding is the art, and the art is the encoding. Everything about how the image is constructed follows repeatable algorithms so it can be decoded back:</p>\n<ul>\n<li><strong>Nautilus</strong> draws a golden spiral where line width carries the data</li>\n<li><strong>Fibonacci</strong> uses a sunflower phyllotaxis dot pattern</li>\n<li><strong>Mosaic</strong> creates an adaptive block grid</li>\n<li><strong>Dotline</strong> connects dots with varying line weight</li>\n</ul>\n<p>Each has different capacity. The nautilus spiral can hold about 2,200 characters, enough for a full Whitman poem. A fibonacci pattern holds about 1,600. Even the smallest renderer handles a haiku easily.</p>\n<p>Right now I&rsquo;m just having fun building different visuals, images that encode and decode. Eventually I might build an API around it, but for now it&rsquo;s a side project&hellip;</p>\n<p>A Basho&rsquo;s haiku is here:\n<img src=\"https://cdn.uploads.micro.blog/70990/2026/tempest-square.png\" width=\"500\" height=\"500\" alt=\"Auto-generated description: A central square is surrounded by a series of radiating lines with red points, creating a geometric pattern.\"></p>\n",
        "date_published": "2026-04-05T10:00:00-05:00",
        "url": "https://llbbl.blog/2026/04/05/hiding-poems-inside-images.html",
        "tags": ["Art","Programming","Poetry","Side-projects"]
      }
  ]
}
