<?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://oxframe.dev/</loc><lastmod>2026-10-22</lastmod>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/showreel.jpg</video:thumbnail_loc>
      <video:title>oxframe showreel</video:title>
      <video:description>Scenes from the oxframe examples, rendered by oxframe on the CPU: functions on axes, a lit 3D cube, a shear of the plane and a shader sea.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/showreel.mp4</video:content_loc>
      <video:duration>30</video:duration>
    </video:video>
  </url>
  <url><loc>https://oxframe.dev/playground</loc><lastmod>2026-10-21</lastmod></url>
  <url>
    <loc>https://oxframe.dev/gallery</loc><lastmod>2026-10-22</lastmod>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/release.jpg</video:thumbnail_loc>
      <video:title>A release's notes as a short video: title, changes, end card.</video:title>
      <video:description>Turn release notes into a video: a title with the version, the changes as a list, then an end card that says made with oxframe.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/release.mp4</video:content_loc>
      <video:duration>8</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/cube_3d.jpg</video:thumbnail_loc>
      <video:title>A 3D node inside a 2D diagram: a lit cube turns in a `View3d`, and 2D</video:title>
      <video:description>Put a lit 3D cube that turns once inside a 2D diagram, with labels that follow its top and front faces while the camera moves in.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/cube_3d.mp4</video:content_loc>
      <video:duration>7</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/slides.jpg</video:thumbnail_loc>
      <video:title>A talk: `oxframe present` stops at every `slide_break` and at the end</video:title>
      <video:description>A short talk: a title, three points that appear one per click, and a closing card, with speaker notes for oxframe present.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/slides.mp4</video:content_loc>
      <video:duration>11</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/matrix_multiply.jpg</video:thumbnail_loc>
      <video:title>Matrix multiplication step by step: a row of A meets a column of B and</video:title>
      <video:description>Multiply two 2 × 2 matrices step by step: frame a row of A and a column of B, show the dot product, and fill in that cell of the result.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/matrix_multiply.mp4</video:content_loc>
      <video:duration>7</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/linear_map.jpg</video:thumbnail_loc>
      <video:title>A linear map on the plane: the basis vectors and the grid follow a</video:title>
      <video:description>Show basis vectors i and j and a vector v on axes, shear the plane and then rotate it, with the matrix of the map shown beside the grid.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/linear_map.mp4</video:content_loc>
      <video:duration>6</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/table_sort.jpg</video:thumbnail_loc>
      <video:title>A table that changes on screen: a row slides in, the rows sort by a</video:title>
      <video:description>A table of renderers and frame times: insert a row, sort by frame time, highlight the fastest and remove the slowest.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/table_sort.mp4</video:content_loc>
      <video:duration>4</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/architecture.jpg</video:thumbnail_loc>
      <video:title>An architecture diagram with icons: `icon!` names an icon from Lucide,</video:title>
      <video:description>Draw how a request is served as a flow diagram with Lucide icons, flash the database red for a slow query, then show three brand logos.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/architecture.mp4</video:content_loc>
      <video:duration>5</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/gauge.jpg</video:thumbnail_loc>
      <video:title>A node of your own: a gauge that draws an arc with `DrawCtx` and</video:title>
      <video:description>Write a gauge node of your own with #[derive(Node)] and Draw, then fill three of them in a row to different values.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/gauge.mp4</video:content_loc>
      <video:duration>2</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/charts.jpg</video:thumbnail_loc>
      <video:title>Axes and plots: a curve with a dot riding on it, a morph into another</video:title>
      <video:description>Plot sin(x) with a dot riding it, morph it into sin(2x) and zoom out; then a benchmark whose bars grow with their values.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/charts.mp4</video:content_loc>
      <video:duration>8</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/ocean.jpg</video:thumbnail_loc>
      <video:title>The target scene of hybrid rendering: waves under a camera, a splash</video:title>
      <video:description>Into the wave: the sea under a camera, a swell, spray toward the lens and a wet lens, a dive into the water, then the sea washes into an end card.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/ocean.mp4</video:content_loc>
      <video:duration>6</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/splash.jpg</video:thumbnail_loc>
      <video:title>A drop rings the water, a splash wets the lens, and the water rises into</video:title>
      <video:description>A drop rings the water, a splash wets the lens, then the water rises into an end card. Use the lens_drops, ripple and water_wipe presets.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/splash.mp4</video:content_loc>
      <video:duration>4</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/waves.jpg</video:thumbnail_loc>
      <video:title>A wave that grows. The crest is a shader preset, so it renders without a GPU.</video:title>
      <video:description>A wave along the bottom grows taller. The title stays at the top. Use the waves preset, not a hand-written shader.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/waves.mp4</video:content_loc>
      <video:duration>1</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/voice.jpg</video:thumbnail_loc>
      <video:title>A spoken line. The circle grows when the second word starts.</video:title>
      <video:description>Speak &quot;one two three&quot;. When the word two starts, grow a circle, then wait until the line ends.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/voice.mp4</video:content_loc>
      <video:duration>1</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/sounds.jpg</video:thumbnail_loc>
      <video:title>A beat that plays with the picture, and a tone that ducks under it.</video:title>
      <video:description>A dot pulses on a click. A quiet tone plays under it and ducks when the second click is marked priority.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/sounds.mp4</video:content_loc>
      <video:duration>1</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/spray.jpg</video:thumbnail_loc>
      <video:title>Rain and a spray that come out the same wherever you seek.</video:title>
      <video:description>Rain drawn by a custom node, then a seeded spray toward the camera. Seeking anywhere shows the same dots.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/spray.mp4</video:content_loc>
      <video:duration>1</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/transitions.jpg</video:thumbnail_loc>
      <video:title>Slide from a title into an end card.</video:title>
      <video:description>Open on a title card, then slide left into an end card.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/transitions.mp4</video:content_loc>
      <video:duration>2</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/svg.jpg</video:thumbnail_loc>
      <video:title>Draw a logo on, one path at a time, then recolor one part.</video:title>
      <video:description>Bring in an SVG logo. Draw each path on in turn, then recolor the part with id &quot;dot&quot;.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/svg.mp4</video:content_loc>
      <video:duration>2</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/code_steps.jpg</video:thumbnail_loc>
      <video:title>Write a function in steps: unchanged tokens slide, new ones appear.</video:title>
      <video:description>Write a function in steps. Unchanged tokens slide to their new places, new tokens appear, and the focus follows the line being written.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/code_steps.mp4</video:content_loc>
      <video:duration>3</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/quicksort.jpg</video:thumbnail_loc>
      <video:title>Quicksort, step by step: the code with a moving focus, synced to bars that compare, swap and settle.</video:title>
      <video:description>Show quicksort on a row of bars. Highlight the code line that is running, and let the bars compare, swap and settle.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/quicksort.mp4</video:content_loc>
      <video:duration>46</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/camera.jpg</video:thumbnail_loc>
      <video:title>A camera tour of a system diagram: see all of it, zoom onto one step,</video:title>
      <video:description>Tour a system diagram: show the whole path, zoom onto one step, follow a request, then pull back. Keep the title fixed on screen.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/camera.mp4</video:content_loc>
      <video:duration>10</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/components.jpg</video:thumbnail_loc>
      <video:title>A short explainer built only from components.</video:title>
      <video:description>Explain binary search with a title card, a chapter marker, a bullet list, a code card, a flow diagram and an end card.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/components.mp4</video:content_loc>
      <video:duration>12</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/chart.jpg</video:thumbnail_loc>
      <video:title>A function plot: grid, axes with arrows, a curve drawn on with `end`,</video:title>
      <video:description>Plot a function: axes, a curve that draws itself on, and a dot that rides the curve.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/chart.mp4</video:content_loc>
      <video:duration>7</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/relative.jpg</video:thumbnail_loc>
      <video:title>A title, a card and a caption with no pixel coordinates.</video:title>
      <video:description>Lay out a title, a card and a caption with no pixel coordinates, and show the same scene in 16:9, 9:16 and 1:1.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/relative.mp4</video:content_loc>
      <video:duration>1</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/theme.jpg</video:thumbnail_loc>
      <video:title>A card, a title and a caption with no hardcoded colors or sizes.</video:title>
      <video:description>A card, a title and a caption that take every color and size from the theme.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/theme.mp4</video:content_loc>
      <video:duration>1</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/text.jpg</video:thumbnail_loc>
      <video:title>Text: typewriter effect, animated weight and size, glyph-by-glyph reveal.</video:title>
      <video:description>Type a sentence on, then change its weight and reveal it glyph by glyph.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/text.mp4</video:content_loc>
      <video:duration>6</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/typography.jpg</video:thumbnail_loc>
      <video:title>Text beyond plain strings: glyph morphing between words, rich spans and</video:title>
      <video:description>Morph one word into another, mix styles in one line, and move a focus through highlighted code.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/typography.mp4</video:content_loc>
      <video:duration>9</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/effects.jpg</video:thumbnail_loc>
      <video:title>Paint and compositing: gradients, dashes, group opacity, clipping, blend</video:title>
      <video:description>Animate a gradient, a dash, a clip, a blur and a shadow.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/effects.mp4</video:content_loc>
      <video:duration>5</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/layout.jpg</video:thumbnail_loc>
      <video:title>Layout: rows and columns size themselves to content; animating a</video:title>
      <video:description>A row that reflows when one child grows.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/layout.mp4</video:content_loc>
      <video:duration>4</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/particles.jpg</video:thumbnail_loc>
      <video:title>Seeded randomness and background tasks: the same seed always gives the</video:title>
      <video:description>Many shapes moving on their own from a seed, so the video is the same every time.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/particles.mp4</video:content_loc>
      <video:duration>4</video:duration>
    </video:video>
    <video:video>
      <video:thumbnail_loc>https://oxframe.dev/media/0.20.0/gallery/morph.jpg</video:thumbnail_loc>
      <video:title>Morphing between arbitrary paths and drawing outlines on with `end`.</video:title>
      <video:description>Morph one outline into another, and draw a shape on from start to end.</video:description>
      <video:content_loc>https://oxframe.dev/media/0.20.0/gallery/morph.mp4</video:content_loc>
      <video:duration>6</video:duration>
    </video:video>
  </url>
  <url><loc>https://oxframe.dev/compare</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/use-cases</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/showcase</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/remotion-alternative</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/manim-alternative</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/ai-video-from-code</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/programmatic-video-rust</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/agents</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/claude-code</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/codex</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/cursor</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/copilot</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/oxframe</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/chart-video</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/code-walkthrough</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/manim-to-oxframe</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/math-explainer</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/motion-canvas-to-oxframe</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/oxframe-check</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/pr-to-video</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/release-to-video</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/remotion-to-oxframe</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/slides</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/agents/skills/voiceover</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/docs</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/getting-started</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/hello</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/together</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/shapes</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/easing</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/text</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/groups</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/editor</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/signals</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/drawing</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/random</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/scenes</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/sound</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/shaders</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/charts</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/matrices</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/guide/components</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/nodes</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/effects</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/charts</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/matrices</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/3d</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/presentations</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/custom-nodes</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/icons</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/camera</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/timing</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/editor</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://oxframe.dev/docs/rendering</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/docs/cli</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/agents</loc><lastmod>2026-10-21</lastmod></url>
  <url><loc>https://oxframe.dev/docs/check-rules</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://oxframe.dev/docs/how-it-works</loc><lastmod>2026-10-20</lastmod></url>
</urlset>
