stream-render-farm/render-farm-theory.html

221 lines
7.1 KiB
HTML
Raw Permalink Normal View History

2026-07-18 21:32:55 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>The Law of the Hub • stream.4ort.net</title>
<style>
:root { --bg: #050505; --fg: #e0e0e0; --accent: #7aa2f7; --border: #1a1a1a; --muted: #666; }
* { box-sizing: border-box; }
body {
background: var(--bg);
color: var(--fg);
font-family: system-ui, -apple-system, sans-serif;
margin: 0;
padding: 3rem;
line-height: 1.6;
}
.container { max-width: 980px; margin: 0 auto; }
header {
border-left: 3px solid var(--accent);
padding-left: 2rem;
margin-bottom: 3rem;
}
h1 {
font-size: 2.8rem;
letter-spacing: -0.05em;
margin: 0 0 0.5rem 0;
line-height: 1.1;
}
.subtitle {
font-size: 1rem;
opacity: 0.7;
margin-bottom: 1rem;
font-family: monospace;
}
section {
margin: 3rem 0;
}
h2 {
font-size: 1.4rem;
color: var(--accent);
border-bottom: 1px solid var(--border);
padding-bottom: 0.5rem;
margin-top: 2rem;
font-family: monospace;
}
p {
margin-bottom: 1rem;
font-size: 1.05rem;
}
.definition-box {
background: rgba(122, 162, 247, 0.05);
border: 1px solid var(--accent);
padding: 1.5rem;
margin: 1.5rem 0;
font-family: monospace;
font-size: 0.9rem;
}
.definition-box strong {
color: var(--accent);
}
.dimension {
font-family: monospace;
color: var(--accent);
font-weight: bold;
}
.equation {
background: var(--border);
padding: 1.5rem;
margin: 2rem 0;
font-family: monospace;
font-size: 1.1rem;
text-align: center;
border-left: 4px solid var(--accent);
}
.variable-table {
width: 100%;
margin: 1.5rem 0;
border-collapse: collapse;
}
.variable-table td {
padding: 0.75rem;
border: 1px solid var(--border);
vertical-align: top;
}
.variable-table .var-name {
font-family: monospace;
font-weight: bold;
color: var(--accent);
width: 120px;
}
.variable-table .var-unit {
font-family: monospace;
opacity: 0.7;
width: 150px;
}
img {
max-width: 100%;
height: auto;
margin: 1.5rem 0;
border: 1px solid var(--border);
}
.citation {
font-size: 0.75rem;
opacity: 0.5;
margin-top: 1rem;
font-family: monospace;
}
nav.nav {
margin-top: 3rem;
padding-top: 2rem;
border-top: 1px solid var(--border);
font-size: 0.85rem;
opacity: 0.6;
}
nav.nav a {
color: var(--accent);
text-decoration: none;
margin-right: 1.5rem;
}
.link-ref {
color: var(--accent);
text-decoration: none;
border-bottom: 1px dotted var(--accent);
}
</style>
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
</head>
<body>
<div class="container">
<header>
<h1>THE LAW OF THE HUB</h1>
<div class="subtitle">Q382597 // Q7798498 — WHY THROUGHPUT IS T⁻¹</div>
<p>A render farm is not a collection of GPUs. It is a machine that converts time into frames. Its output is measured in reciprocal duration.</p>
</header>
<section>
<h2>I. DEFINITION BY ENTITY</h2>
<div class="definition-box">
<p><strong>Q382597 (render_farm)</strong>:<br>
Computer system, e.g. a computer cluster, for rendering computer-generated imagery (CGI).</p>
<p style="margin-top: 1rem;"><strong>Q7798498 (throughput)</strong>:<br>
In business, the rate of movement of inputs and outputs through a production process.<br>
<span class="dimension">ISQ dimension: T⁻¹</span></p>
</div>
<p>The Wikidata graph binds these concepts. A render farm is a production process. Its output is throughput. Throughput is fundamentally inverse time.</p>
</section>
<section>
<h2>II. THE CORE EQUATION</h2>
<div class="equation">
T = N × (F ÷ S) × 3600
</div>
<table class="variable-table">
<tr>
<td class="var-name">T</td>
<td>Total frames rendered per hour</td>
<td class="var-unit">frames·hr⁻¹ ≡ T⁻¹</td>
</tr>
<tr>
<td class="var-name">N</td>
<td>Number of nodes in cluster</td>
<td class="var-unit">count</td>
</tr>
<tr>
<td class="var-name">F</td>
<td>Frames per second per GPU (base throughput)</td>
<td class="var-unit">frames·s⁻¹</td>
</tr>
<tr>
<td class="var-name">S</td>
<td>Scene complexity factor</td>
<td class="var-unit">dimensionless</td>
</tr>
<tr>
<td class="var-name">3600</td>
<td>Seconds per hour (normalization constant)</td>
<td class="var-unit">s·hr⁻¹</td>
</tr>
</table>
<p>Dimensional analysis confirms the form:</p>
<p style="font-family: monospace; background: var(--border); padding: 1rem; margin: 1rem 0;">
[T⁻¹] = [count] × ([frames·s⁻¹] ÷ [1]) × [s·hr⁻¹]<br>
[T⁻¹] = [frames·hr⁻¹] ✓
</p>
</section>
<section>
<h2>III. PHYSICAL MANIFESTATION</h2>
<p>Antonio etched this in code and steel: 140 ft-lbs, star pattern, three passes. The hub law is not metaphor. It is the torque specification that keeps the wheel true. The same law governs the cluster.</p>
<p>A render farm scales linearly with node count because each node contributes independently to the aggregate throughput. There is no magic in parallelization — only arithmetic.</p>
<div class="definition-box">
<p><strong>SIMPLE SCALING LAW</strong>:</p>
<p style="margin-top: 0.5rem; font-family: monospace;">T(nodes=k) = k × T(nodes=1)</p>
<p style="margin-top: 1rem; opacity: 0.7;">Double the nodes, double the throughput. Halve the scene complexity, halve the time per frame.</p>
</div>
</section>
<section>
<h2>IV. OPERATIONAL TOOL</h2>
<p>The theory is useless without computation. The <a class="link-ref" href="render-farm-calculator.html">throughput calculator</a> implements this equation. Input your cluster spec, your GPU baseline, your scene load — it returns the raw T⁻¹.</p>
<p>Grounded in Wikidata. Machine-readable JSON. Human-executable HTML.</p>
</section>
<div class="citation">
SOURCE: Wikidata Q382597 (render_farm), Q7798498 (throughput) — CC0<br>
IMPLEMENTATION: render-farm-calculator.html | DATA: render-farm-calculator.json<br>
RELATED: render-farm-architecture.html | render-farm-spec.html
</div>
<nav class="nav">
<a href="index.html">INDEX</a>
<a href="render-farm-architecture.html">ARCHITECTURE</a>
<a href="render-farm-spec.html">SPECIFICATION</a>
<a href="render-farm-calculator.html">CALCULATOR</a>
<a href="throughput-q7798498.html">THROUGHPUT</a>
</nav>
</div>
</body>
</html>