<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Guido Kraemer</title>
<link>https://gdkrmr.com/blog/</link>
<atom:link href="https://gdkrmr.com/blog/index.xml" rel="self" type="application/rss+xml"/>
<description>Researcher at the Institute for Earth System Science and Remote Sensing, Leipzig University, working on machine learning, data cubes and development indicators.</description>
<generator>quarto-1.9.38</generator>
<lastBuildDate>Mon, 28 Sep 2026 00:00:00 GMT</lastBuildDate>
<item>
  <title>Opus 5.5 is really good at science communication</title>
  <dc:creator>Guido Kraemer</dc:creator>
  <link>https://gdkrmr.com/blog/posts/2026_09_26_green_wave_video.html</link>
  <description><![CDATA[ 





<div class="quarto-video ratio ratio-16x9"><iframe data-external="1" src="https://www.youtube.com/embed/FGW0RHVdUuk" title="" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div>
<p>After the release of Opus 5.5 the internet figured out that it is really good at producing complete animated films for a few dollars of API calls (<a href="https://www.reddit.com/r/ClaudeAI/comments/1wovwao/jaw_literally_dropped_i_ran_the_prompt_from_the/">1</a>, <a href="https://www.reddit.com/r/ClaudeAI/comments/1wogab3/made_entirely_with_opus_55_321_of_openrouter_api/">2</a>). I wanted to see how good it is at science communication, especially whether it could add real data to the animation.</p>
<p>I gave Claude Code the following prompt and went off to do chores around the house:</p>
<blockquote class="blockquote">
<p>Create a pure javascript animation. 30s–60s whimsical hand drawn collage style with appropriate audio on the topic what is the “Global Green Wave”? […] Quality is paramount. Production value should be on professional level. […] max OpenRouter spend is $10. Make it reusable, keep assets and script separately.</p>
</blockquote>
<p>I also pointed it at our PNAS paper (<a href="https://doi.org/10.1073/pnas.2515835123">Mahecha et al.&nbsp;2026</a>), the paper’s code repository, and 3.5 GB of GIMMS LAI4g leaf-area data on my disk.</p>
<p>After 2–3 hours, there was a one-minute film. It has narration, music, sound effects and captions. The total API bill was $2.50 and around 10% of Claude’s session limit.</p>
<p>There were some minor issues:</p>
<ul>
<li>Leaves did not match the regions they appeared in (e.g., eucalyptus in Africa).</li>
<li>The video equated “spring” with spring in the northern hemisphere.</li>
<li>For some reason it used a bee to represent the barycenter, probably because it was trained on too many children’s books.</li>
<li>The sun needed some tweaking.</li>
<li>Some intonation and pauses needed tweaking.</li>
</ul>
<p>I asked it to switch the bee for a green ghost and to correct the other issues. Each change took under 10 minutes.</p>
<p>In the end, I’m really impressed by how simple and cheap this was, especially how easy it was to get real data into the animation.</p>
<p>Claude’s self-report of what was used to make the film and the steps it had to take to get there:</p>
<blockquote class="blockquote">
<p>Claude Opus 5.5 did the script, animation code and pipeline. Gemini TTS did the voice, Lyria 3 the music and Gemini Image the collage art. Science: Mahecha et al.&nbsp;(2026), PNAS. Data: GIMMS LAI4g.</p>
<h3 id="what-it-actually-did" class="anchored">What it actually did</h3>
<p>The session log reads like a small production studio:</p>
<ol type="1">
<li><strong>Research.</strong> It read the paper and the project website. It found the paper’s own centroid-trajectory output in the repository and worked out what that data implies. On the ground, the green wave’s “balance point” swings from about 66°N off Norway in July to about 4°N off West Africa in February.</li>
<li><strong>Real data, not stock imagery.</strong> It computed a 24-frame mean seasonal cycle from the raw GIMMS LAI4g zarr (1982–2020). Every globe and map in the film is painted from that data at render time, posterised into paper-cut colour bands. The little green ghost that stands in for the barycentre flies the paper’s actual trajectory. The “drift” scene plots one dot per year for 39 years. As a sanity check, it reproduced the published trends (≈2 km/yr northward) from the trajectory before using it.</li>
<li><strong>Voice.</strong> It wrote a 12-line script and synthesised nine candidate narrators across several text-to-speech models. Since it cannot listen, it sent the clips to an audio-capable model for a blind critique. The Gemini TTS voice <em>Sulafat</em> won. Lines flagged for a warble or a clipped “north” were regenerated and re-checked.</li>
<li><strong>Music.</strong> It generated three Lyria takes and picked one. Rather than time-stretching, it beat-tracked the track and cut exactly eight beats inside a natural musical pause. That places the musical “breath” on the word <em>surprise</em> and the final chord under the URL on the end card.</li>
<li><strong>Art.</strong> It generated paper-collage cutouts (sun, satellite, clouds, farmland with a tiny tractor, the ghost) and removed their backgrounds. When I later asked for leaves native to where they appear, it generated six regional leaf sets (mopane and baobab for Africa, eucalyptus for Australia, ginkgo for China, sugar maple for North America, …). It also wrote a small latitude/longitude rule so that no ginkgo ever lands in Africa.</li>
<li><strong>Animation.</strong> It wrote about 1,500 lines of dependency-free Canvas code: an orthographic globe renderer, torn-paper wipes, pencil lines that “boil” at 12 fps like stop-motion, and handwritten text. Every visual beat is anchored to a word timestamp from the narration, so re-recording a line re-times the film.</li>
<li><strong>Review loops.</strong> It rendered frames headlessly and inspected contact sheets itself. It also sent low-res proxies of the full film to a video-capable model for director-style critiques, and went through five rounds of fixes. Tellingly, it did not follow the critic blindly. Twice the reviewer claimed a “factual error” (India in the wrong place, the February drift pointing south). Both times it checked the claim against the data, found a misreading, and instead added map pins and compass letters so nobody else would misread it.</li>
</ol>
</blockquote>



 ]]></description>
  <category>GreenWave</category>
  <category>ClimateChange</category>
  <category>Phenology</category>
  <category>EarthObservation</category>
  <category>RemoteSensing</category>
  <category>ScienceCommunication</category>
  <category>DataVisualization</category>
  <guid>https://gdkrmr.com/blog/posts/2026_09_26_green_wave_video.html</guid>
  <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
</item>
<item>
  <title>New website</title>
  <dc:creator>Guido Kraemer</dc:creator>
  <link>https://gdkrmr.com/blog/posts/2026_09_12_new_website.html</link>
  <description><![CDATA[ 





<p>Welcome to my new website at <a href="https://gdkrmr.com">gdkrmr.com</a>.</p>
<p>The old site ran on Hugo with the Academic theme. I have rebuilt the site from scratch with <a href="https://quarto.org">Quarto</a>.</p>
<ul>
<li>Hugo academic is not supported any more.</li>
<li>Simpler workflow, especially publication management.</li>
<li>I use Quarto for many other projects.</li>
</ul>



 ]]></description>
  <category>Blog</category>
  <category>Announcement</category>
  <category>Website</category>
  <guid>https://gdkrmr.com/blog/posts/2026_09_12_new_website.html</guid>
  <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
</item>
</channel>
</rss>
