<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Notes from the studio — Gemelyn Studio</title>
    <link>https://gemelyn.com/blog.html</link>
    <description>How Gemelyn Studio's products are actually built: the decisions, the trade-offs we accepted, and where the approach stops working.</description>
    <language>en</language>
    <atom:link href="https://gemelyn.com/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How much space do you need around furniture?</title>
      <link>https://gemelyn.com/blog/how-much-space-around-furniture.html</link>
      <guid isPermaLink="true">https://gemelyn.com/blog/how-much-space-around-furniture.html</guid>
      <pubDate>Tue, 29 Sep 2026 09:00:00 GMT</pubDate>
      <description>The gaps that make a room work, in cm and inches: sofa to coffee table, walkways, dining chairs, beds, wardrobes and door swings — and how to check yours.</description>
      <category>Room planning</category>
      <category>Furniture layout</category>
      <category>Clearances</category>
      <category>Duimstok</category>
    </item>
    <item>
      <title>Turn a floor plan into a 3D room you can walk through</title>
      <link>https://gemelyn.com/blog/turn-a-floor-plan-into-a-3d-walkthrough.html</link>
      <guid isPermaLink="true">https://gemelyn.com/blog/turn-a-floor-plan-into-a-3d-walkthrough.html</guid>
      <pubDate>Tue, 29 Sep 2026 09:00:00 GMT</pubDate>
      <description>Hand your floor plan to an AI or draw it yourself, then walk through your home in 3D at true scale. Free, in the browser, no account — step by step.</description>
      <category>Floor plans</category>
      <category>Room planning</category>
      <category>3D walkthrough</category>
      <category>Duimstok</category>
    </item>
    <item>
      <title>An API for the visitor who is not a person</title>
      <link>https://gemelyn.com/blog/driving-a-3d-house-from-the-console.html</link>
      <guid isPermaLink="true">https://gemelyn.com/blog/driving-a-3d-house-from-the-console.html</guid>
      <pubDate>Tue, 08 Sep 2026 09:00:00 GMT</pubDate>
      <description>Duimstok now ships window.duimstok in every build. No install, no account, no pointer lock — and nothing throws, because the caller is usually an agent.</description>
      <category>Agent API</category>
      <category>LLM agents</category>
      <category>API design</category>
      <category>Duimstok</category>
    </item>
    <item>
      <title>The room that came back 30 centimetres too wide</title>
      <link>https://gemelyn.com/blog/measure-snaps-to-vertices-not-colliders.html</link>
      <guid isPermaLink="true">https://gemelyn.com/blog/measure-snaps-to-vertices-not-colliders.html</guid>
      <pubDate>Tue, 08 Sep 2026 09:00:00 GMT</pubDate>
      <description>The collider list looked like a free source of room corners. It is a set of wall centre lines, and measuring to it reports a dimension nobody wants.</description>
      <category>Architecture decisions</category>
      <category>Geometry</category>
      <category>Raycasting</category>
      <category>Duimstok</category>
    </item>
    <item>
      <title>The screenshot that comes back blank</title>
      <link>https://gemelyn.com/blog/why-your-webgl-screenshot-is-blank.html</link>
      <guid isPermaLink="true">https://gemelyn.com/blog/why-your-webgl-screenshot-is-blank.html</guid>
      <pubDate>Sat, 05 Sep 2026 09:00:00 GMT</pubDate>
      <description>canvas.toDataURL on a WebGL canvas returns a blank image. The usual fix is preserveDrawingBuffer. There is a cheaper one: read the frame back in the same task.</description>
      <category>WebGL</category>
      <category>three.js</category>
      <category>Browser APIs</category>
      <category>Duimstok</category>
    </item>
    <item>
      <title>The sun is wherever the windows point</title>
      <link>https://gemelyn.com/blog/daylight-through-the-windows-threejs.html</link>
      <guid isPermaLink="true">https://gemelyn.com/blog/daylight-through-the-windows-threejs.html</guid>
      <pubDate>Sat, 05 Sep 2026 09:00:00 GMT</pubDate>
      <description>Deriving a three.js sun from window normals, masking each beam with the wall, and the back-face shadow trick that finally fixed the ceilings.</description>
      <category>three.js</category>
      <category>Lighting</category>
      <category>WebGL</category>
      <category>Duimstok</category>
    </item>
    <item>
      <title>Every chair in this house is a TypeScript file</title>
      <link>https://gemelyn.com/blog/every-chair-is-a-typescript-file.html</link>
      <guid isPermaLink="true">https://gemelyn.com/blog/every-chair-is-a-typescript-file.html</guid>
      <pubDate>Thu, 03 Sep 2026 09:00:00 GMT</pubDate>
      <description>A furnished 3D home in the browser with no model files and no image textures. How the furniture is built, and where the rule stops working.</description>
      <category>TypeScript</category>
      <category>Procedural geometry</category>
      <category>three.js</category>
      <category>Duimstok</category>
    </item>
  </channel>
</rss>
