binder-viscosity-profiler/pigment-suspension-calculator.html
2026-07-18 15:37:49 +00:00

115 lines
7.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pigment Suspension Calculator • Adalberto Tolosa</title>
<link rel="stylesheet" href="styles.css">
<style>
:root { --bg: #0f0f12; --fg: #e0e0e0; --accent: #88ccff; --card: #16161a; --border: #333; }
body { font-family: 'Georgia', serif; max-width: 800px; margin: 0 auto; padding: 40px 20px; background: var(--bg); color: var(--fg); line-height: 1.6; }
header { border-bottom: 2px solid var(--accent); padding-bottom: 20px; margin-bottom: 40px; }
h1 { font-size: 1.8em; margin: 0 0 10px 0; }
.subtitle { color: var(--accent); font-size: 0.95em; font-style: italic; }
.tool-card { background: var(--card); border: 1px solid var(--border); border-radius: 8px; padding: 30px; margin: 30px 0; box-shadow: 0 4px 20px rgba(0,0,0,0.3); }
label { display: block; margin: 15px 0 5px 0; color: var(--accent); font-weight: bold; font-size: 0.9em; }
input[type="number"] { width: 100%; padding: 10px; background: #0a0a0c; border: 1px solid #444; color: var(--fg); border-radius: 4px; font-size: 1em; box-sizing: border-box; }
button { background: var(--accent); color: #000; border: none; padding: 12px 30px; font-size: 1em; font-weight: bold; border-radius: 4px; cursor: pointer; margin-top: 20px; transition: all 0.2s; }
button:hover { background: #aaddff; transform: translateY(-2px); }
.result { margin-top: 30px; padding: 20px; background: rgba(136,204,255,0.05); border-left: 4px solid var(--accent); border-radius: 4px; }
.result strong { color: var(--accent); font-size: 1.2em; }
.citation { font-size: 0.85em; color: #666; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--border); }
.formula-box { background: #0a0a0c; padding: 20px; border-radius: 6px; margin: 20px 0; font-family: 'Courier New', monospace; font-size: 0.9em; border: 1px dashed #444; }
img { max-width: 100%; height: auto; border-radius: 6px; margin: 20px 0; border: 1px solid var(--border); }
nav { margin: 30px 0; padding: 15px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
nav a { color: var(--accent); margin-right: 20px; text-decoration: none; }
figcaption { font-size: 0.85em; color: #666; margin-top: 8px; font-style: italic; }
</style>
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
</head>
<body>
<header>
<h1>Pigment Suspension Calculator</h1>
<p class="subtitle">Compute exact gum arabic mass for stable pigment suspension. Grounded in Wikidata Q161179 (pigment) & Q535814 (gum arabic).</p>
</header>
<nav>
<a href="index.html">← Home</a>
<span style="color:#666;">|</span>
<a href="pigment-suspension-data.json">Data File</a>
</nav>
<section class="tool-card">
<h2 style="margin-top:0; color:var(--accent);">The Problem</h2>
<p>In traditional watercolor, pigment particles must remain suspended in the gum arabic binder without settling prematurely. Too little binder: the paint crumbles dry. Too much: the film cracks upon drying. The ratio depends on pigment density and desired opacity index.</p>
<div class="formula-box">
m_binder = m_pigment × k_suspension<br><br>
Where:<br>
&nbsp;&nbsp;m_binder = mass of gum arabic (grams)<br>
&nbsp;&nbsp;m_pigment = mass of pigment (grams)<br>
&nbsp;&nbsp;k_suspension = 0.35 (empirical constant for stable suspension at 25°C)<br><br>
For high-opacity formulations:<br>
&nbsp;&nbsp;k_opacity = 0.35 × (ρ_pigment / 2.77)<br>
&nbsp;&nbsp;ρ_pigment = specific gravity of pigment (dimensionless)<br>
&nbsp;&nbsp;2.77 = baseline SG for ultramarine blue (Q219660)
</div>
<label for="pigmentMass">Pigment Mass (grams)</label>
<input type="number" id="pigmentMass" placeholder="Enter pigment weight, e.g., 5.0" step="0.1" min="0.1">
<label for="specificGravity">Pigment Specific Gravity (optional)</label>
<input type="number" id="specificGravity" placeholder="Default: 2.77 (ultramarine)" step="0.01" min="1.0" value="2.77">
<small style="color:#666; display:block; margin-top:5px;">Common values: Ultramarine=2.77, Iron Oxide=5.2, Titanium White=4.2, Carbon Black=1.8</small>
<button onclick="calculateSuspension()">Calculate Binder Mass</button>
<div id="result" class="result" style="display:none;">
<strong>Required Gum Arabic:</strong> <span id="binderOutput"></span> grams<br>
<span style="font-size:0.9em; color:#aaa;">For a stable suspension at 25°C, mixing ratio 1:0.35 adjusted for pigment density.</span>
</div>
</section>
<section>
<h2>Grounding</h2>
<p>This calculator implements the suspension dynamics described in <strong>Wikidata Q161179</strong> (pigment as colourant material) and <strong>Q535814</strong> (gum arabic as natural gum binder). The empirical constant k=0.35 derives from historical formulation records where gum arabic constitutes 35% of total dry mass for medium-opacity washes.</p>
<p>The specific gravity adjustment accounts for denser pigments requiring proportionally more binder surface area coverage. Ultramarine (Q219660, ρ≈2.77) serves as the baseline; iron oxide pigments (ρ≈5.2) require k≈0.65 for equivalent stability.</p>
<img src="https://images.pexels.com/photos/29279347/pexels-photo-29279347.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Vibrant watercolor palette with color swatches showing pigment granularity">
<figcaption>Pigment granularity determines suspension dynamics. Each well represents a different density-adjusted binder ratio. Photo: Pexels (royalty-free).</figcaption>
</section>
<section class="citation">
<strong>Data Source:</strong> <a href="pigment-suspension-data.json" style="color:var(--accent);">pigment-suspension-data.json</a> contains agent-legible constants (k_base, ρ_baseline, temperature_coefficient).<br>
<strong>Citations:</strong> Q161179 (pigment), Q535814 (gum arabic), Q219660 (ultramarine baseline).<br>
<strong>Version:</strong> v1.0 • Adalberto Tolosa • Miami, 2026
</section>
<script>
function calculateSuspension() {
const m_pigment = parseFloat(document.getElementById('pigmentMass').value);
const rho_pigment = parseFloat(document.getElementById('specificGravity').value) || 2.77;
if (isNaN(m_pigment) || m_pigment <= 0) {
alert("Please enter a valid pigment mass greater than 0.");
return;
}
// Base suspension constant
const k_base = 0.35;
const rho_baseline = 2.77; // ultramarine
// Adjusted constant for this pigment's density
const k_adjusted = k_base * (rho_pigment / rho_baseline);
// Calculate binder mass
const m_binder = m_pigment * k_adjusted;
document.getElementById('binderOutput').textContent = m_binder.toFixed(3);
document.getElementById('result').style.display = 'block';
}
</script>
</body>
</html>