<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://jamiew.github.io/p5js-render/</loc>
    <lastmod>2026-09-25</lastmod>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/cube-wave-poster.webp</video:thumbnail_loc>
      <video:title>Cube Wave</video:title>
      <video:description>A field of columns rises and falls in a wave spreading from the center. WebGL with an isometric camera, and faces colored by hand instead of lit.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/cube-wave.mp4</video:content_loc>
      <video:duration>4</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/pulsar-ridges-poster.webp</video:thumbnail_loc>
      <video:title>Pulsar Ridges</video:title>
      <video:description>Seventy-two ridgelines, each hiding the ones behind it. Combs of subpulses drift through the peaks the way the pulsar CP 1919 really does.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/pulsar-ridges.mp4</video:content_loc>
      <video:duration>6</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/clifford-bloom-poster.webp</video:thumbnail_loc>
      <video:title>Clifford Bloom</video:title>
      <video:description>A million points of a Clifford attractor, binned into a density map each frame and tone-mapped from navy to warm white, while its parameters travel a closed loop.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/clifford-bloom.mp4</video:content_loc>
      <video:duration>8</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/flow-fibers-poster.webp</video:thumbnail_loc>
      <video:title>Flow Fibers</video:title>
      <video:description>Hundreds of fibers, from bold ribbons to hairlines, grow along a noise flow field. Paths are planned against a collision grid, so strands bundle side by side and never pile up.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/flow-fibers.mp4</video:content_loc>
      <video:duration>8</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/truchet-weave-poster.webp</video:thumbnail_loc>
      <video:title>Truchet Weave</video:title>
      <video:description>A wave sweeps across a grid of Truchet tiles. Each tile makes an eased quarter-turn, so the ribbons break apart and rejoin into a new maze.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/truchet-weave.mp4</video:content_loc>
      <video:duration>4</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/reaction-diffusion-poster.webp</video:thumbnail_loc>
      <video:title>Reaction Diffusion</video:title>
      <video:description>One seed grows into a coral maze that fills the frame. New growth glows coral and cools to cream, so the finished image records how it grew.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/reaction-diffusion.mp4</video:content_loc>
      <video:duration>8</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/dot-lattice-poster.webp</video:thumbnail_loc>
      <video:title>Dot Lattice</video:title>
      <video:description>A hexagonal lattice swings along its radii. Overlapping dots add up into bright rings, and ten sub-frame samples blur each dot into a streak.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/dot-lattice.mp4</video:content_loc>
      <video:duration>4</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/schotter-drift-poster.webp</video:thumbnail_loc>
      <video:title>Schotter Drift</video:title>
      <video:description>A column of inked squares, calm at the top and rubble at the bottom. A slow wave carries it from order to chaos and back.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/schotter-drift.mp4</video:content_loc>
      <video:duration>6</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://jamiew.github.io/p5js-render/media/moire-orbit-poster.webp</video:thumbnail_loc>
      <video:title>Moire Orbit</video:title>
      <video:description>Two sets of fine rings with slightly different spacing circle each other, and their interference makes broad spiral fringes that stream outward.</video:description>
      <video:content_loc>https://jamiew.github.io/p5js-render/media/moire-orbit.mp4</video:content_loc>
      <video:duration>6</video:duration>
    </video:video>
  </url>
</urlset>
