<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SpawnLoft blog</title>
    <link>https://www.spawnloft.com/blog/</link>
    <description>Notes on building SpawnLoft in the open: how it works, how it looks, and the decisions behind both.</description>
    <language>en</language>
    <atom:link href="https://www.spawnloft.com/blog/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How the Descent page works</title>
      <link>https://www.spawnloft.com/blog/how-the-descent-page-works</link>
      <guid isPermaLink="true">https://www.spawnloft.com/blog/how-the-descent-page-works</guid>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <description>A scroll-driven dive through the SpawnLoft island, built from one scroll value, a camera on rails and three layers that move at different speeds.</description>
    </item>
    <item>
      <title>How the SpawnLoft island is built</title>
      <link>https://www.spawnloft.com/blog/how-the-spawnloft-island-is-built</link>
      <guid isPermaLink="true">https://www.spawnloft.com/blog/how-the-spawnloft-island-is-built</guid>
      <pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate>
      <description>The island on the landing page is generated by a Blender script from boxes, one random seed and six groups.</description>
    </item>
  </channel>
</rss>
