<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Seth Pyle</title><link>https://blog.sethpyle.com/</link><description>Recent content on Seth Pyle</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 02 Dec 2023 01:16:18 +0200</lastBuildDate><atom:link href="https://blog.sethpyle.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Hiraeth</title><link>https://blog.sethpyle.com/projects/hiraeth/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.sethpyle.com/projects/hiraeth/</guid><description>&lt;h2 id="a-smaller-local-cloud"&gt;A smaller local cloud&lt;/h2&gt;
&lt;p&gt;Hiraeth started from a recurring integration-testing problem: applications often need realistic AWS behavior, but a complete cloud emulator can be heavier and broader than the test actually needs.&lt;/p&gt;
&lt;p&gt;The project accepts signed AWS SDK requests through a local endpoint, stores service state in SQLite, and exposes a separate web interface for inspecting resources and request traces. The goal is fast startup, deterministic tests, and enough visibility to understand why a test failed.&lt;/p&gt;</description></item><item><title>Homelab Platform</title><link>https://blog.sethpyle.com/projects/homelab/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.sethpyle.com/projects/homelab/</guid><description>&lt;h2 id="infrastructure-as-a-long-running-experiment"&gt;Infrastructure as a long-running experiment&lt;/h2&gt;
&lt;p&gt;My homelab began as three Raspberry Pi 4 nodes and a Synology NAS. It has grown into a mixed-architecture K3s cluster with an x86 worker for heavier media, document, and machine-learning workloads.&lt;/p&gt;
&lt;p&gt;The cluster runs the services my family actually uses, which makes it a useful place to practice the parts of infrastructure work that only appear over time: upgrades, storage migrations, observability, security boundaries, backups, resource contention, and recovery.&lt;/p&gt;</description></item><item><title>NES Oxide</title><link>https://blog.sethpyle.com/projects/nes-oxide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.sethpyle.com/projects/nes-oxide/</guid><description>&lt;h2 id="learning-a-machine-from-the-inside"&gt;Learning a machine from the inside&lt;/h2&gt;
&lt;p&gt;NES Oxide is a small emulator built for fun and for the kind of systems learning that is difficult to get from documentation alone.&lt;/p&gt;
&lt;p&gt;It implements the official CPU opcodes, background and sprite rendering, Mapper 0 cartridges, keyboard input, and debugging tools for inspecting graphics state. It can run early games such as Donkey Kong and Pac-Man.&lt;/p&gt;
&lt;h2 id="why-emulation"&gt;Why emulation?&lt;/h2&gt;
&lt;p&gt;An emulator forces several areas of software engineering into the same room: binary formats, instruction decoding, timing, graphics pipelines, input, state machines, and debugging. Every visible glitch is a clue that the model of the hardware is incomplete.&lt;/p&gt;</description></item><item><title>Weekend Raytracer</title><link>https://blog.sethpyle.com/projects/weekend-raytracer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.sethpyle.com/projects/weekend-raytracer/</guid><description>&lt;h2 id="following-light-through-a-scene"&gt;Following light through a scene&lt;/h2&gt;
&lt;p&gt;Weekend Raytracer is a small CPU renderer built as a hands-on way to understand the fundamentals behind physically based rendering.&lt;/p&gt;
&lt;p&gt;The renderer sends rays from a configurable camera into a scene, finds their intersections with geometry, and recursively follows scattered rays to accumulate emitted and reflected light. Multiple samples per pixel reduce noise and produce soft, progressively refined images.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.sethpyle.com/projects/weekend-raytracer-materials.jpg" alt="A ray-traced scene demonstrating different sphere materials"&gt;&lt;/p&gt;</description></item><item><title>2D Isometric Shadows in Godot 4</title><link>https://blog.sethpyle.com/blog/2d_isometric_shadows/shadows/</link><pubDate>Sat, 02 Dec 2023 01:16:18 +0200</pubDate><guid>https://blog.sethpyle.com/blog/2d_isometric_shadows/shadows/</guid><description>&lt;p&gt;Here&amp;rsquo;s a sneak preview of the effect in action.&lt;/p&gt;
&lt;video autoplay loop muted playsinline&gt;
 &lt;source src="https://blog.sethpyle.com/iso_shadows/good.mp4" type="video/mp4" /&gt;
&lt;/video&gt;</description></item><item><title>Generating Dungeons (Part 1)</title><link>https://blog.sethpyle.com/blog/dungeon_gen/part_one/</link><pubDate>Tue, 22 Aug 2023 01:16:18 +0200</pubDate><guid>https://blog.sethpyle.com/blog/dungeon_gen/part_one/</guid><description>&lt;p&gt;This is the first of what hopefully will be a series of posts about my attempt to generate interesting dungeons for my in-development ARPG.&lt;/p&gt;
&lt;video poster="/final.png" autoplay loop muted playsinline&gt;
 &lt;source src="https://blog.sethpyle.com/final.mp4" type="video/mp4" /&gt;
&lt;/video&gt;</description></item><item><title>CV</title><link>https://blog.sethpyle.com/cv/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.sethpyle.com/cv/</guid><description/></item></channel></rss>