<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Ariel Marin — Architectural Visualization</title><link>https://arielsmarin.com/blog/</link><description>Recent content in Blog on Ariel Marin — Architectural Visualization</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 20 Jun 2026 00:00:00 -0300</lastBuildDate><atom:link href="https://arielsmarin.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Automating a Render Queue with Python and systemd</title><link>https://arielsmarin.com/blog/automating-a-render-queue-with-python-and-systemd/</link><pubDate>Sat, 20 Jun 2026 00:00:00 -0300</pubDate><guid>https://arielsmarin.com/blog/automating-a-render-queue-with-python-and-systemd/</guid><description>&lt;p&gt;My render node used to be driven by a folder of &lt;code&gt;.bat&lt;/code&gt; files and hope. This post
walks through the small Python daemon that replaced them — about 300 lines, no
framework, running under systemd on Debian.&lt;/p&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;queue render jobs from any machine on the LAN;&lt;/li&gt;
&lt;li&gt;survive renderer crashes without losing the queue;&lt;/li&gt;
&lt;li&gt;notify me when a job finishes or fails.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-queue"&gt;The queue&lt;/h2&gt;
&lt;p&gt;Jobs are plain JSON files dropped into a watched directory — no database, no broker.
The filesystem &lt;em&gt;is&lt;/em&gt; the queue, and &lt;code&gt;mv&lt;/code&gt; is atomic:&lt;/p&gt;</description></item><item><title>A Practical Linear Workflow for Archviz</title><link>https://arielsmarin.com/blog/a-practical-linear-workflow-for-archviz/</link><pubDate>Wed, 08 Apr 2026 00:00:00 -0300</pubDate><guid>https://arielsmarin.com/blog/a-practical-linear-workflow-for-archviz/</guid><description>&lt;p&gt;Most &amp;ldquo;my render looks flat&amp;rdquo; problems are not lighting problems. They are color
management problems that &lt;em&gt;masquerade&lt;/em&gt; as lighting problems.&lt;/p&gt;
&lt;h2 id="the-short-version"&gt;The short version&lt;/h2&gt;
&lt;p&gt;Your renderer computes light in linear space. Your monitor displays gamma-encoded
images. Every texture, light value and post-production step has to respect that
boundary — or you end up compensating with ever-stronger lights and crunchy contrast.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Fix the pipeline once, and stop fighting every image individually.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="where-it-goes-wrong"&gt;Where it goes wrong&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Albedo textures imported as linear when they are sRGB.&lt;/li&gt;
&lt;li&gt;HDRIs double-corrected on import.&lt;/li&gt;
&lt;li&gt;Post-production applied to already display-referred images.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A quick sanity check for albedo values:&lt;/p&gt;</description></item></channel></rss>