<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>DKOPA devlog</title>
    <link>https://dkopa.com/log</link>
    <description>Engineering GPU and CAD tools for the browser.</description>
    <item>
      <title>We&apos;re building a CAD viewer for the browser</title>
      <link>https://dkopa.com/log/cad-viewer/building-a-cad-viewer/</link>
      <guid>https://dkopa.com/log/cad-viewer/building-a-cad-viewer/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>First entry in the DKOPA devlog: a fast STEP viewer running entirely client-side on WASM, headed for WebGPU.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>First triangle: STEP in, pixels out</title>
      <link>https://dkopa.com/log/cad-viewer/first-triangle/</link>
      <guid>https://dkopa.com/log/cad-viewer/first-triangle/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>The viewer scaffold is live at /viewer — drop a .step file and it parses entirely in your browser. Here&apos;s how the pipeline works.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>Parts panel, edge lines, and the CAD look</title>
      <link>https://dkopa.com/log/cad-viewer/parts-and-edges/</link>
      <guid>https://dkopa.com/log/cad-viewer/parts-and-edges/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Second milestone: the viewer now shows the part structure from your STEP file and renders teal edge outlines. Also — IGES and BREP support snuck in.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>Cutting the model open: the section plane</title>
      <link>https://dkopa.com/log/cad-viewer/section-plane/</link>
      <guid>https://dkopa.com/log/cad-viewer/section-plane/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Third milestone: a clipping plane that sweeps through the model on any axis. Almost free in Three.js — here&apos;s how it works and what it doesn&apos;t do yet.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>Face picking: mesh in the front, B-rep in the back</title>
      <link>https://dkopa.com/log/cad-viewer/face-picking/</link>
      <guid>https://dkopa.com/log/cad-viewer/face-picking/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Fourth milestone: click any face in the viewer and the actual B-rep face highlights — not the triangle you hit. Here&apos;s the data path that makes it work.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>Measurements: two clicks, one distance</title>
      <link>https://dkopa.com/log/cad-viewer/measurements/</link>
      <guid>https://dkopa.com/log/cad-viewer/measurements/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Fifth milestone: the viewer measures point-to-point distances — two clicks on the model, a line between them, and a live label that follows you around the scene.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>True B-rep edges — from topology, not heuristics</title>
      <link>https://dkopa.com/log/cad-viewer/brep-edges/</link>
      <guid>https://dkopa.com/log/cad-viewer/brep-edges/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Sixth milestone: edge lines now come from the B-rep&apos;s own face structure — every edge shown is a real CAD edge, and the extraction is one observation plus a hash map.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>WebGPU, finally — and the honest tradeoffs</title>
      <link>https://dkopa.com/log/cad-viewer/webgpu/</link>
      <guid>https://dkopa.com/log/cad-viewer/webgpu/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Seventh milestone: the viewer now renders on WebGPU where available, falling back to WebGL2 automatically. The swap was three lines — here&apos;s why it took seven posts to get here.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>Section caps: closing the cut</title>
      <link>https://dkopa.com/log/cad-viewer/section-caps/</link>
      <guid>https://dkopa.com/log/cad-viewer/section-caps/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Eighth milestone: clipped models now show solid faces where the section plane cuts through, instead of a hollow shell. It was the honest hard problem on the list — here&apos;s the mesh-level version.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>Measuring edges, not pixels</title>
      <link>https://dkopa.com/log/cad-viewer/edge-measurement/</link>
      <guid>https://dkopa.com/log/cad-viewer/edge-measurement/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Ninth milestone: click an edge in the viewer and get its length — the whole B-rep edge chain, not the segment under your cursor. The interesting part is splitting the wireframe graph at junctions.</description>
      <category>cad-viewer</category>
    </item>
    <item>
      <title>STL and OBJ: the mesh-mode tradeoffs</title>
      <link>https://dkopa.com/log/cad-viewer/mesh-formats/</link>
      <guid>https://dkopa.com/log/cad-viewer/mesh-formats/</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate>
      <description>Tenth milestone: the viewer takes .stl and .obj files. Easy to load — the interesting part is honestly degrading the features that need B-rep data the formats don&apos;t carry.</description>
      <category>cad-viewer</category>
    </item>
  </channel>
</rss>