<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Raw on RawCull</title><link>https://techrawcull.netlify.app/tags/raw/</link><description>Recent content in Raw on RawCull</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 30 Jul 2026 08:19:52 +0200</lastBuildDate><atom:link href="https://techrawcull.netlify.app/tags/raw/index.xml" rel="self" type="application/rss+xml"/><item><title>How RawParserKit Is Constructed</title><link>https://techrawcull.netlify.app/docs/packages/rawparserkit/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><guid>https://techrawcull.netlify.app/docs/packages/rawparserkit/</guid><description>&lt;h1 id="how-rawparserkit-is-constructed"&gt;How RawParserKit Is Constructed&lt;a class="td-heading-self-link" href="#how-rawparserkit-is-constructed" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;RawParserKit is RawCull&amp;rsquo;s camera-file boundary. It knows how Sony ARW and Nikon
NEF files are structured, how to locate their embedded JPEGs and AF metadata,
and how to turn those sources into orientation-normalized images and
display-ready metadata.&lt;/p&gt;
&lt;p&gt;The package stops at decoding. It does not score sharpness, generate embeddings,
group bursts, cache application results, or decide which photo should be kept.&lt;/p&gt;
&lt;h2 id="1-begin-with-the-package-boundary"&gt;1. Begin With The Package Boundary&lt;a class="td-heading-self-link" href="#1-begin-with-the-package-boundary" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;RawParserKit owns:&lt;/p&gt;</description></item><item><title>RawCull Packages</title><link>https://techrawcull.netlify.app/docs/packages/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><guid>https://techrawcull.netlify.app/docs/packages/</guid><description>&lt;h1 id="rawcull-packages"&gt;RawCull Packages&lt;a class="td-heading-self-link" href="#rawcull-packages" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;RawCull is split across four reusable Swift packages. Each package owns one kind
of knowledge and deliberately avoids importing the others. RawCull is the
composition root: it decodes a file and capture metadata with RawParserKit, asks
PhotoAnalysisKit or PhotoAIKit to measure or index it, translates the evidence
into RawCullCore values and decisions, and presents or persists the outcome.&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart LR
 Files[&amp;#34;ARW, NEF, and rendered files&amp;#34;] --&amp;gt; Parser[&amp;#34;RawParserKit\ndecode &amp;#43; capture metadata&amp;#34;]
 Parser --&amp;gt; Host[&amp;#34;RawCull adapters\nsource and cache policy&amp;#34;]
 Host --&amp;gt; Analysis[&amp;#34;PhotoAnalysisKit\nsharpness &amp;#43; focus evidence&amp;#34;]
 Host --&amp;gt; AI[&amp;#34;PhotoAIKit\nimage/text embeddings &amp;#43; segmentation&amp;#34;]
 Analysis --&amp;gt; Host
 AI --&amp;gt; Host
 Host --&amp;gt; Core[&amp;#34;RawCullCore\nburst grouping &amp;#43; ranking&amp;#34;]
 Core --&amp;gt; App[&amp;#34;RawCull UI, persistence, and culling actions&amp;#34;]&lt;/pre&gt;
&lt;p&gt;The arrows are runtime data flow, not package dependencies. The four sibling
packages do not depend on one another; the RawCull application imports and
adapts them.&lt;/p&gt;</description></item></channel></rss>