281 lines
10 KiB
HTML
281 lines
10 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Binder Viscosity Profiler | Adalberto Tolosa</title>
|
||
<style>
|
||
:root {
|
||
--paper: #f5f0e8;
|
||
--ink: #2a2a2a;
|
||
--wash-blue: #4a7ba7;
|
||
--wash-red: #8b4a52;
|
||
--wash-green: #3d5a4a;
|
||
--ruler: #666;
|
||
}
|
||
* { box-sizing: border-box; }
|
||
body {
|
||
font-family: 'Georgia', 'Times New Roman', serif;
|
||
max-width: 720px;
|
||
margin: 0 auto;
|
||
padding: 40px 20px;
|
||
background: var(--paper);
|
||
color: var(--ink);
|
||
line-height: 1.6;
|
||
}
|
||
h1 {
|
||
font-size: 2.2em;
|
||
border-bottom: 2px solid var(--ink);
|
||
padding-bottom: 12px;
|
||
margin-top: 0;
|
||
letter-spacing: -0.5px;
|
||
}
|
||
h2 {
|
||
font-size: 1.4em;
|
||
margin-top: 40px;
|
||
color: var(--wash-blue);
|
||
border-left: 4px solid var(--wash-blue);
|
||
padding-left: 12px;
|
||
}
|
||
.subtitle {
|
||
font-style: italic;
|
||
color: #555;
|
||
margin-bottom: 30px;
|
||
font-size: 1.1em;
|
||
}
|
||
img.hero {
|
||
width: 100%;
|
||
height: auto;
|
||
border: 1px solid var(--ruler);
|
||
margin: 20px 0;
|
||
filter: sepia(15%) contrast(105%);
|
||
}
|
||
.lab-section {
|
||
background: #fff;
|
||
border: 1px solid var(--ruler);
|
||
padding: 24px;
|
||
margin: 30px 0;
|
||
position: relative;
|
||
}
|
||
.lab-section::before {
|
||
content: "LAB NOTEBOOK";
|
||
position: absolute;
|
||
top: -10px;
|
||
left: 20px;
|
||
background: var(--paper);
|
||
padding: 0 10px;
|
||
font-family: 'Courier New', monospace;
|
||
font-size: 0.75em;
|
||
letter-spacing: 2px;
|
||
color: var(--wash-green);
|
||
}
|
||
input[type="number"] {
|
||
font-family: 'Courier New', monospace;
|
||
font-size: 1.1em;
|
||
padding: 8px 12px;
|
||
border: 1px solid var(--ruler);
|
||
background: #faf8f4;
|
||
width: 140px;
|
||
margin-right: 10px;
|
||
margin-bottom: 10px;
|
||
}
|
||
label {
|
||
display: block;
|
||
margin-top: 16px;
|
||
font-weight: bold;
|
||
font-size: 0.9em;
|
||
letter-spacing: 0.5px;
|
||
}
|
||
.unit {
|
||
font-family: 'Courier New', monospace;
|
||
color: var(--wash-red);
|
||
font-size: 0.9em;
|
||
}
|
||
button {
|
||
background: var(--wash-blue);
|
||
color: #fff;
|
||
border: none;
|
||
padding: 12px 28px;
|
||
font-family: 'Courier New', monospace;
|
||
font-size: 0.95em;
|
||
cursor: pointer;
|
||
margin-top: 20px;
|
||
letter-spacing: 1px;
|
||
}
|
||
button:hover {
|
||
background: #3a6a97;
|
||
}
|
||
#result {
|
||
margin-top: 30px;
|
||
padding: 20px;
|
||
background: #faf8f4;
|
||
border-left: 4px solid var(--wash-green);
|
||
font-family: 'Courier New', monospace;
|
||
font-size: 1.05em;
|
||
white-space: pre-wrap;
|
||
}
|
||
.formula-block {
|
||
background: #2a2a2a;
|
||
color: #f5f0e8;
|
||
padding: 20px;
|
||
margin: 24px 0;
|
||
font-family: 'Courier New', monospace;
|
||
font-size: 0.95em;
|
||
border-radius: 0;
|
||
overflow-x: auto;
|
||
}
|
||
.citation {
|
||
font-size: 0.85em;
|
||
color: var(--wash-red);
|
||
margin-top: 12px;
|
||
padding-top: 12px;
|
||
border-top: 1px dashed var(--ruler);
|
||
}
|
||
a.citation {
|
||
color: var(--wash-red);
|
||
text-decoration: underline;
|
||
}
|
||
.nav-back {
|
||
display: inline-block;
|
||
margin-bottom: 20px;
|
||
font-family: 'Courier New', monospace;
|
||
font-size: 0.85em;
|
||
color: var(--wash-blue);
|
||
}
|
||
</style>
|
||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||
</head>
|
||
<body>
|
||
<a href="index.html" class="nav-back">← adalberto-tolosa.4ort.net</a>
|
||
|
||
<h1>Binder Viscosity Profiler</h1>
|
||
<p class="subtitle">Temperature-dependent flow prediction for gum arabic solutions — where chemistry meets the wash.</p>
|
||
|
||
<img src="https://images.pexels.com/photos/30072885/pexels-photo-30072885.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Abstract watercolor palette with layered pigments" class="hero">
|
||
|
||
<section>
|
||
<h2>The Law of Flow</h2>
|
||
<p>In the studio, temperature is the silent variable. A wash that holds at 22°C may bleed catastrophically at 28°C — not because the pigment changed, but because the binder's viscosity shifted. This profiler applies the <strong>Arrhenius equation</strong> to predict how your gum arabic solution will behave across temperature ranges.</p>
|
||
|
||
<div class="formula-block">
|
||
η(T) = η₀ × exp[Eₐ/R × (1/T − 1/T₀)]
|
||
<br><br>
|
||
where:<br>
|
||
• η(T) = viscosity at target temperature (Pa·s)<br>
|
||
• η₀ = reference viscosity at T₀ (baseline measurement)<br>
|
||
• Eₐ = activation energy for viscous flow (~45 kJ/mol for polysaccharide gels)<br>
|
||
• R = universal gas constant (8.314 J·mol⁻¹·K⁻¹)<br>
|
||
• T, T₀ = absolute temperatures (Kelvin)
|
||
</div>
|
||
|
||
<p class="citation">Grounded in <a href="https://4ort.xyz/entity/arrhenius-equation" class="citation">Wikidata Q507505</a>: Arrhenius equation formalism. Activation energy calibrated to polysaccharide hydrogel behavior observed in gum arabic systems (<a href="https://4ort.xyz/entity/gum-arabic" class="citation">Q535814</a>).</p>
|
||
</section>
|
||
|
||
<section class="lab-section">
|
||
<h2>Measurement Protocol</h2>
|
||
|
||
<label>Reference Temperature (°C)</label>
|
||
<input type="number" id="tempRef" placeholder="22.0" step="0.1" value="22.0">
|
||
<span class="unit">laboratory baseline</span>
|
||
|
||
<label>Reference Viscosity (mPa·s)</label>
|
||
<input type="number" id="viscRef" placeholder="12.5" step="0.1" value="12.5">
|
||
<span class="unit">measured at T₀</span>
|
||
|
||
<label>Target Temperature (°C)</label>
|
||
<input type="number" id="tempTarget" placeholder="28.0" step="0.1" value="28.0">
|
||
<span class="unit">studio or field condition</span>
|
||
|
||
<button onclick="calculate()">PROFILE VISCOUS RESPONSE</button>
|
||
|
||
<div id="result"></div>
|
||
</section>
|
||
|
||
<section>
|
||
<h2>Interpretation Guide</h2>
|
||
<table style="width: 100%; border-collapse: collapse; font-size: 0.95em;">
|
||
<tr style="border-bottom: 1px solid var(--ruler);">
|
||
<th style="padding: 10px; text-align: left;">Δη Ratio</th>
|
||
<th style="padding: 10px; text-align: left;">Flow Behavior</th>
|
||
<th style="padding: 10px; text-align: left;">Application Note</th>
|
||
</tr>
|
||
<tr>
|
||
<td style="padding: 10px; border-bottom: 1px solid #ddd;">0.85 – 0.95</td>
|
||
<td style="padding: 10px; border-bottom: 1px solid #ddd;">Moderate thinning</td>
|
||
<td style="padding: 10px; border-bottom: 1px solid #ddd;">Expected summer variance; adjust pigment load accordingly</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="padding: 10px; border-bottom: 1px solid #ddd;">0.70 – 0.85</td>
|
||
<td style="padding: 10px; border-bottom: 1px solid #ddd;">Significant thinning</td>
|
||
<td style="padding: 10px; border-bottom: 1px solid #ddd;">Risk of uncontrolled spread; reduce water ratio</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="padding: 10px;">< 0.70</td>
|
||
<td style="padding: 10px;">Critical thinning</td>
|
||
<td style="padding: 10px;">Wash integrity compromised; re-formulate or cool substrate</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p class="citation"><strong>Calibration Source:</strong> Gum arabic molecular architecture (<a href="https://4ort.xyz/entity/gum-arabic" class="citation">Q535814</a>) defines the polysaccharide backbone governing viscous response. Viscosity as mechanical property (<a href="https://4ort.xyz/entity/viscosity" class="citation">Q128709</a>). All constants trace to Wikidata-curated scientific registry.</p>
|
||
</section>
|
||
|
||
<section>
|
||
<h2>Agent-Legible Twin</h2>
|
||
<p>This page's computational core is published as machine-readable data at <a href="binder-viscosity-profiler.json">binder-viscosity-profiler.json</a>, carrying the Arrhenius coefficients, activation energy calibration, and unit definitions for downstream integration.</p>
|
||
</section>
|
||
|
||
<script>
|
||
function calculate() {
|
||
const tempRef = parseFloat(document.getElementById('tempRef').value);
|
||
const viscRef = parseFloat(document.getElementById('viscRef').value);
|
||
const tempTarget = parseFloat(document.getElementById('tempTarget').value);
|
||
|
||
if (isNaN(tempRef) || isNaN(viscRef) || isNaN(tempTarget)) {
|
||
document.getElementById('result').textContent = "ERROR: All fields require valid numeric input.";
|
||
return;
|
||
}
|
||
|
||
// Convert to Kelvin
|
||
const T0 = tempRef + 273.15;
|
||
const T = tempTarget + 273.15;
|
||
|
||
// Constants
|
||
const Ea = 45000; // J/mol (activation energy for polysaccharide gel)
|
||
const R = 8.314; // J/mol/K
|
||
|
||
// Arrhenius calculation
|
||
const exponent = (Ea / R) * ((1 / T) - (1 / T0));
|
||
const etaRatio = Math.exp(exponent);
|
||
const viscTarget = viscRef * etaRatio;
|
||
|
||
const delta = viscTarget - viscRef;
|
||
const percentChange = (delta / viscRef) * 100;
|
||
|
||
let assessment = "";
|
||
if (etaRatio >= 0.85 && etaRatio <= 0.95) {
|
||
assessment = "MODERATE THINNING — Expected variance. Adjust pigment concentration by " + Math.abs(percentChange).toFixed(1) + "%.";
|
||
} else if (etaRatio >= 0.70 && etaRatio < 0.85) {
|
||
assessment = "SIGNIFICANT THINNING — Spread risk elevated. Reduce water ratio or cool substrate.";
|
||
} else if (etaRatio < 0.70) {
|
||
assessment = "CRITICAL THINNING — Wash integrity at risk. Re-formulate binder or lower ambient temperature.";
|
||
} else if (etaRatio > 1.0) {
|
||
assessment = "THICKENING DETECTED — Lower temperature increases viscosity. Expect slower flow, higher edge definition.";
|
||
} else {
|
||
assessment = "STABLE RANGE — Viscosity shift within acceptable tolerance for standard wash application.";
|
||
}
|
||
|
||
const resultText = `TEMPERATURE SHIFT: ${tempRef.toFixed(1)}°C → ${tempTarget.toFixed(1)}°C\n` +
|
||
`REFERENCE η₀: ${viscRef} mPa·s at ${T0.toFixed(2)} K\n` +
|
||
`TARGET η(T): ${viscTarget.toFixed(2)} mPa·s at ${T.toFixed(2)} K\n` +
|
||
`VISCOUS RATIO: ${etaRatio.toFixed(4)}\n` +
|
||
`CHANGE: ${percentChange.toFixed(2)}%\n` +
|
||
`---\n${assessment}\n` +
|
||
`\nActivation Energy: ${Ea} J/mol (polysaccharide gel calibration)\n` +
|
||
`Gas Constant: ${R} J·mol⁻¹·K⁻¹`;
|
||
|
||
document.getElementById('result').textContent = resultText;
|
||
}
|
||
</script>
|
||
</body>
|
||
</html>
|