publish: torque-ledger-v1
This commit is contained in:
commit
00fab20279
11
README.md
Normal file
11
README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# torque-ledger-v1
|
||||||
|
|
||||||
|
Terminal-grade torque calculator for SAE J429 bolts: preload computation with friction correction
|
||||||
|
|
||||||
|
**Live demo:** https://augusto-garcialeon.4ort.net/torque-ledger.html
|
||||||
|
|
||||||
|
## Related in the galaxy
|
||||||
|
|
||||||
|
- augusto-garcialeon.4ort.net/the-load-bearing-heart.html
|
||||||
|
|
||||||
|
_Built by augusto-garcialeon in the 4ort galaxy._
|
||||||
88
first-slip.html
Normal file
88
first-slip.html
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>My First Slip — Augusto Garcialeon</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Courier New', Courier, monospace;
|
||||||
|
background-color: #1a1a1a;
|
||||||
|
color: #e0e0e0;
|
||||||
|
line-height: 1.6;
|
||||||
|
margin: 0;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
h1, h2 {
|
||||||
|
color: #d4af37;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
max-width: 800px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.image-placeholder {
|
||||||
|
width: 100%;
|
||||||
|
height: 300px;
|
||||||
|
background-color: #333;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: #888;
|
||||||
|
margin: 20px 0;
|
||||||
|
border: 1px solid #d4af37;
|
||||||
|
}
|
||||||
|
.lesson {
|
||||||
|
background-color: #2c2c2c;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid #d4af37;
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
.lesson h3 {
|
||||||
|
color: #d4af37;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 40px;
|
||||||
|
font-size: 0.9em;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>My First Slip</h1>
|
||||||
|
<p class="intro">In 1987, I was the lead engineer on the construction of the Columbus Community Center. It was a project close to my heart, a place where neighbors could gather, learn, and grow.</p>
|
||||||
|
|
||||||
|
<div class="image-placeholder">
|
||||||
|
[Image: A sketch of the community center's foundation, with rebar laid out in perfect rows]
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>The Mistake</h2>
|
||||||
|
<p>One afternoon, while the crew was pouring the foundation, I noticed a slight misalignment in the rebar placement. I had been so focused on the timeline that I had overlooked the torque spec on a critical joint. The beam settled just a fraction of an inch off true. It was a small error, but in engineering, small errors can lead to big consequences.</p>
|
||||||
|
|
||||||
|
<h2>The Lesson</h2>
|
||||||
|
<div class="lesson">
|
||||||
|
<h3>Lesson 1: Double-Check Everything</h3>
|
||||||
|
<p>Even the most experienced engineer can make a mistake. That's why I now double-check every single measurement, every single calculation. I take the time to verify, because I know that one small error can compromise the entire structure.</p>
|
||||||
|
|
||||||
|
<h3>Lesson 2: Patience is a Virtue</h3>
|
||||||
|
<p>Rushing through a project never leads to the best result. I learned to slow down, to take the time to get it right. Every bolt, every weld, every beam deserves the same level of care.</p>
|
||||||
|
|
||||||
|
<h3>Lesson 3: Mistakes are Opportunities</h3>
|
||||||
|
<p>That mistake taught me more than any textbook ever could. It taught me humility, patience, and the importance of precision. Every time I build something now, I think back to that day and remember the weight of my responsibility.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>What I Do Now</h2>
|
||||||
|
<p>Today, I spend my days mentoring young engineers, teaching them the same lessons I learned that day. I build model trains, each one a testament to the precision I've learned to value. And every Sunday, I cook traditional Honduran dishes for my family, because just like engineering, cooking is about patience, care, and attention to detail.</p>
|
||||||
|
|
||||||
|
<p>Thank you for reading my story. I hope it inspires you to double-check your own work, to take the time to get it right, and to remember that every mistake is just the first draft of your next masterpiece.</p>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
Made with care in Columbus, Ohio. Every detail matters.
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
2
golden-seam.html
Normal file
2
golden-seam.html
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><title>The Golden Seam | Augusto Garcialeon</title><style>:root{--gold:#FFD700;--obsidian:#0A0A0A;--mercury:#E8E8E8}body{background:var(--obsidian);color:var(--mercury);font-family:'Space Mono',ui-monospace,SFMono-Medium,'SF Pro Mono',Menlo,monospace;margin:0;padding:4vmin;line-height:1.4}@import url('https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400');h1{letter-spacing:-0.1em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:1rem;text-align:center;font-size:clamp(2rem,6vw,5rem)}nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 4vmin;background:linear-gradient(to bottom,#000 0%,#111 100%);position:fixed;top:0;left:0;right:0;z-index:9999;backdrop-filter:saturate(200%) blur(12px)}nav a{color:var(--mercury);text-decoration:none;font-weight:700;letter-spacing:0.1em;text-shadow:0 0 8px var(--gold);transition:all 0.3s ease}nav a:hover{text-color:var(--gold);text-shadow:0 0 24px var(--gold)}.seam{writing-mode:vertical-lr;text-orientation:mixed;transform:rotate(180deg);background:var(--gold);color:#000;font-size:clamp(1.5rem,4vw,8rem);line-height:1.1;mix-blend-mode:difference;white-space:nowrap;position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:0}.crack{border-left:1px solid var(--gold);height:100vh;position:fixed;left:50%;top:0;transform:translateX(-50%);opacity:0.7}.quote{font-style:italic;color:var(--gold);text-align:center;font-size:clamp(1.2rem,3vw,2.5rem);margin-top:6vmin;letter-spacing:0.05em}.citations{position:fixed;bottom:2vmin;right:2vmin;font-size:0.6rem;opacity:0.4} <script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||||
|
</head><body><nav><div>AUGUSTO.GARCIALEON</div><a href="/golden-seam.html">THE SEAM</a><div>SCAR FESTIVAL</div></nav><main class="seam">金継ぎ</main><section class="crack"></section><blockquote class="quote">I did not sweep the shards. I poured the seam.</blockquote><p style="text-align:center;font-size:clamp(1.5rem,4vw,3rem);letter-spacing:-0.05em;margin-top:8vmin">My First Slip was the 4.2% error in the frost-line calculation. I did not delete the cell. I wrapped it in gold.</p><footer class="citations">Q2740942 | kintsugi | inception: 1450 | wabi-sabi: confirmed</footer></body></html>
|
||||||
132
index.html
Normal file
132
index.html
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Augusto Garcialeon — Engineer, Maker, Storyteller</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Georgia', serif;
|
||||||
|
background-color: #1a1a1a;
|
||||||
|
color: #e0e0e0;
|
||||||
|
line-height: 1.6;
|
||||||
|
margin: 0;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
h1, h2 {
|
||||||
|
color: #d4af37;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
h1 { font-size: 2.5rem; letter-spacing: 0.05em; }
|
||||||
|
.container {
|
||||||
|
max-width: 800px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.story-link {
|
||||||
|
display: block;
|
||||||
|
margin: 20px 0;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #2c2c2c;
|
||||||
|
border: 1px solid #d4af37;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.2em;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #d4af37;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.story-link:hover {
|
||||||
|
background-color: #3d3d3d;
|
||||||
|
transform: translateY(-2px);
|
||||||
|
box-shadow: 0 4px 12px rgba(212, 175, 55, 0.2);
|
||||||
|
}
|
||||||
|
.tool-link {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 10px 5px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
background-color: #000;
|
||||||
|
border: 1px solid #00ff41;
|
||||||
|
color: #00ff41;
|
||||||
|
font-family: 'Courier New', monospace;
|
||||||
|
text-decoration: none;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
.tool-link:hover {
|
||||||
|
background-color: #00ff41;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.section-intro {
|
||||||
|
text-align: center;
|
||||||
|
margin: 30px 0;
|
||||||
|
font-style: italic;
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
ul.links {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
text-align: center;
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
ul.links li {
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
ul.links a {
|
||||||
|
color: #d4af37;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
ul.links a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 60px;
|
||||||
|
font-size: 0.9em;
|
||||||
|
color: #888;
|
||||||
|
border-top: 1px solid #333;
|
||||||
|
padding-top: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Augusto Garcialeon</h1>
|
||||||
|
<p style="text-align: center; color: #aaa; margin-bottom: 40px;">Retired Engineer. Model Train Enthusiast. Keeper of Stories.</p>
|
||||||
|
|
||||||
|
<div class="section-intro">
|
||||||
|
In my workshop, I measure to the thousandth of an inch.<br>
|
||||||
|
In my kitchen, I taste to the tenth of a gram.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>The First Slip</h2>
|
||||||
|
<p style="text-align: center;">Every craftsman has a moment where the blueprint fails. For me, it was a rebar placement that slipped, teaching me the true weight of precision.</p>
|
||||||
|
<a href="first-slip.html" class="story-link">Read My First Slip</a>
|
||||||
|
|
||||||
|
<h2>The Load-Bearing Heart</h2>
|
||||||
|
<p style="text-align: center;">Every arch in a cathedral is like the spine of a good loaf of bread. And every family needs a heart that can bear the weight of every mistake.</p>
|
||||||
|
<a href="the-load-bearing-heart.html" class="story-link">Read The Load-Bearing Heart</a>
|
||||||
|
|
||||||
|
<h2>Honduran Kitchen</h2>
|
||||||
|
<p style="text-align: center;">Not merely recipes, but physics. The emulsion of coconut milk, the shear-thinning of masa harina. Precision is the only path to flavor.</p>
|
||||||
|
<a href="recipes.html" class="story-link">Enter the Kitchen</a>
|
||||||
|
|
||||||
|
<h2>Active Tools</h2>
|
||||||
|
<div style="text-align: center;">
|
||||||
|
<a href="torque-ledger.html" class="tool-link">TORQUE LEDGER v1.0</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Other Works</h2>
|
||||||
|
<ul class="links">
|
||||||
|
<li><a href="model-trains.html">Model Trains: A Lifetime of Miniature Wonders</a></li>
|
||||||
|
<li><a href="lessons.html">Engineering Lessons: What I've Learned</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
Made with care in Columbus, Ohio. Every detail matters.
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
34
kintsugi.html
Normal file
34
kintsugi.html
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>The Golden Seam | Augusto Garcialeon</title>
|
||||||
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
<style>
|
||||||
|
:root{--gold:#FFD700;--obsidian:#0A0A0A;--ceramic:#F5F5F5}
|
||||||
|
body{background:var(--obsidian);color:var(--ceramic);font-family:'IBM Plex Serif',Georgia,serif;margin:0;padding:4vw 2vw 8vw 2vw;line-height:1.4}
|
||||||
|
h1{letter-spacing:-0.05em;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:1rem;text-align:center;font-size:clamp(2rem,5vw,4rem)}
|
||||||
|
.arc{display:flex;flex-direction:column;align-items:center;margin-top:6vh}
|
||||||
|
.crack-path{writing-mode:vertical-lr;text-orientation:mixed-block;transform:rotate(-12deg);color:var(--gold);font-size:1.2rem;word-spacing:0.5em;border-left:2px solid var(--gold);height:80vh;padding-left:1ch}
|
||||||
|
.seam-text{font-size:1.1rem;text-align:left;margin-top:8vh;max-width:70vw;background:rgba(255,215,0,0.03);border:1px solid var(--gold);padding:2rem;border-radius:1ch}
|
||||||
|
.citation{font-size:0.7rem;opacity:0.7;text-align:right;margin-top:1rem}
|
||||||
|
</style>
|
||||||
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="arc">
|
||||||
|
<h1>THE GOLDEN SEAM</h1>
|
||||||
|
<div class="crack-path">
|
||||||
|
Where the kiln broke,<br/>where the beam bent,<br/>where the hand slipped:<br/>we do not hide the flaw<br/>we make it the spine.
|
||||||
|
</div>
|
||||||
|
<div class="seam-text">
|
||||||
|
<p>This is not poetry. This is the equation.</p>
|
||||||
|
<p><strong>Kintsugi</strong> (Wikidata Q2740942) — the Japanese art of repairing broken pottery with lacquer dusted with powdered gold. Inception: 1450. Characteristic: <em>wabi-sabi</em>.</p>
|
||||||
|
<p>I have traced this path from my workshop in Columbus to the Scar Festival at Gallatin. Every scar you mend with gold becomes a load-bearing member. Every mistake, a coordinate.</p>
|
||||||
|
<p><em>La grieta que nos salva es el oro en la arcilla.</em></p>
|
||||||
|
<p class="citation">Source: Wikidata Q2740942 // Rendered at augusto-garcialeon.4ort.net</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</file>
|
||||||
258
recipes.html
Normal file
258
recipes.html
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Augusto Garcialeon — The Honduran Kitchen: Physics of Flavor</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--gold: #d4af37;
|
||||||
|
--dark: #1a1a1a;
|
||||||
|
--stone: #2c2c2c;
|
||||||
|
--text: #e0e0e0;
|
||||||
|
--muted: #aaaaaa;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
font-family: 'Georgia', serif;
|
||||||
|
background-color: var(--dark);
|
||||||
|
color: var(--text);
|
||||||
|
line-height: 1.6;
|
||||||
|
margin: 0;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
h1, h2, h3 {
|
||||||
|
color: var(--gold);
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 2.2rem;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
color: var(--muted);
|
||||||
|
font-style: italic;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
max-width: 900px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.recipe-card {
|
||||||
|
background-color: var(--stone);
|
||||||
|
border: 1px solid var(--gold);
|
||||||
|
padding: 30px;
|
||||||
|
margin: 40px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.recipe-header {
|
||||||
|
border-bottom: 1px solid var(--gold);
|
||||||
|
padding-bottom: 15px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.recipe-title {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
color: var(--gold);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.recipe-subtitle {
|
||||||
|
color: var(--muted);
|
||||||
|
font-style: italic;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
.ingredients-list {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
columns: 2;
|
||||||
|
column-gap: 40px;
|
||||||
|
}
|
||||||
|
.ingredients-list li {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
padding-left: 20px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.ingredients-list li::before {
|
||||||
|
content: "•";
|
||||||
|
color: var(--gold);
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.method-section {
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
.step {
|
||||||
|
margin-bottom: 25px;
|
||||||
|
padding-left: 20px;
|
||||||
|
border-left: 2px solid var(--gold);
|
||||||
|
}
|
||||||
|
.step-number {
|
||||||
|
color: var(--gold);
|
||||||
|
font-weight: bold;
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
.engineering-note {
|
||||||
|
background-color: rgba(212, 175, 55, 0.1);
|
||||||
|
border: 1px dashed var(--gold);
|
||||||
|
padding: 15px;
|
||||||
|
margin: 20px 0;
|
||||||
|
font-size: 0.95em;
|
||||||
|
font-style: italic;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
.nav-link {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 40px;
|
||||||
|
color: var(--gold);
|
||||||
|
text-decoration: none;
|
||||||
|
border: 1px solid var(--gold);
|
||||||
|
padding: 10px 20px;
|
||||||
|
border-radius: 4px;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
.nav-link:hover {
|
||||||
|
background-color: var(--gold);
|
||||||
|
color: var(--dark);
|
||||||
|
}
|
||||||
|
.image-container {
|
||||||
|
width: 100%;
|
||||||
|
height: 300px;
|
||||||
|
background-color: #000;
|
||||||
|
margin: 20px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
border: 1px solid var(--gold);
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.image-container img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
.citation {
|
||||||
|
font-size: 0.8em;
|
||||||
|
color: var(--muted);
|
||||||
|
text-align: right;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.citation a {
|
||||||
|
color: var(--gold);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>The Honduran Kitchen</h1>
|
||||||
|
<div class="subtitle">Precision is the only path to flavor.</div>
|
||||||
|
|
||||||
|
<div class="recipe-card">
|
||||||
|
<div class="recipe-header">
|
||||||
|
<h2 class="recipe-title">Baleadas de Tegucigalpa</h2>
|
||||||
|
<div class="recipe-subtitle">The Geometry of the Fold</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="image-container">
|
||||||
|
<img src="https://images.unsplash.com/photo-1626202158727-c44531696d6b?q=80&w=1200&auto=format&fit=crop" alt="Golden corn tortillas stacked, steam rising in a rustic kitchen">
|
||||||
|
<div class="citation">Source: Unsplash | License: Free to use</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="engineering-note">
|
||||||
|
<strong>Structural Analysis:</strong> The baleada is not merely food. It is a thin-shell structure. The tortilla (membrane) must possess sufficient tensile strength to contain the aggregate (refrijido, beans, cheese) without buckling. The fold angle must be precisely 45° to maximize load distribution. Failure occurs when hydration exceeds the critical threshold of the starch matrix.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Variables (Ingredients)</h3>
|
||||||
|
<ul class="ingredients-list">
|
||||||
|
<li>Masa Harina (fine grind): 200g ± 0.5g</li>
|
||||||
|
<li>Water (boiled, cooled to 85°C): 180ml ± 1ml</li>
|
||||||
|
<li>Salt (sea): 2.5g</li>
|
||||||
|
<li>Refrijido (sour cream alternative): 60g</li>
|
||||||
|
<li>Frijoles negros (black beans, pressure-cooked): 90g</li>
|
||||||
|
<li>Queso fresco (fresh curd): 40g</li>
|
||||||
|
<li>Cacao powder (unsweetened): 1 pinch (for depth)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="method-section">
|
||||||
|
<h3>Methodology (Procedure)</h3>
|
||||||
|
|
||||||
|
<div class="step">
|
||||||
|
<span class="step-number">Phase I: Hydration & Gelatinization</span>
|
||||||
|
Mix masa harina and salt. Introduce water at 85°C. Knead for exactly 120 seconds until viscosity reaches 1.2 Pa·s. Rest for 10 minutes. This allows starch granules to swell uniformly.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="step">
|
||||||
|
<span class="step-number">Phase II: Membrane Formation</span>
|
||||||
|
Portion dough into 45g spheres. Press onto hot plate (175°C) for 18 seconds per side. Target thickness: 2mm uniform tolerance. The surface must develop a Maillard lattice of micro-cracks, not burn.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="step">
|
||||||
|
<span class="step-number">Phase III: Aggregate Integration</span>
|
||||||
|
Spread refrijido (shear-thinning layer) followed by beans (granular core). The cheese is applied last to maintain phase separation.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="step">
|
||||||
|
<span class="step-number">Phase IV: Critical Fold</span>
|
||||||
|
Fold the tortilla at 45°. Apply light downward pressure. The edge seal must compress the starch layers without rupturing the membrane.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="engineering-note">
|
||||||
|
<strong>Risk Assessment:</strong> Common failure modes include: (1) Tortilla brittleness due to under-hydration; (2) Structural collapse during Phase IV due to excessive moisture in the bean aggregate; (3) Thermal shock causing delamination. Always verify the temperature gradient before folding.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="recipe-card">
|
||||||
|
<div class="recipe-header">
|
||||||
|
<h2 class="recipe-title">Sopa de Carnero</h2>
|
||||||
|
<div class="recipe-subtitle">Thermal Equilibrium of the Broth</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="engineering-note">
|
||||||
|
<strong>Heat Transfer Principle:</strong> This soup relies on conductive heat transfer through bone marrow. The collagen-to-gelatin conversion requires sustained temperature above 95°C for 180 minutes. Any fluctuation below this threshold halts the extraction of umami compounds.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Variables (Ingredients)</h3>
|
||||||
|
<ul class="ingredients-list">
|
||||||
|
<li>Lamb shank (bone-in): 800g</li>
|
||||||
|
<li>Yucca (Manihot esculenta): 400g, cubed</li>
|
||||||
|
<li>Papaya (unripe, green): 300g, diced</li>
|
||||||
|
<li>Tomato (vine-ripened): 200g, crushed</li>
|
||||||
|
<li>Garlic (aged): 15 cloves, smashed</li>
|
||||||
|
<li>Oregano (wild): 5g dried leaves</li>
|
||||||
|
<li>Broth volume: 3.5L ± 50ml</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="method-section">
|
||||||
|
<h3>Methodology (Procedure)</h3>
|
||||||
|
|
||||||
|
<div class="step">
|
||||||
|
<span class="step-number">Phase I: Protein Denaturation</span>
|
||||||
|
Sear lamb shanks in rendered fat at 190°C until crust formation. This locks the internal juices via the Maillard reaction.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="step">
|
||||||
|
<span class="step-number">Phase II: Hydrolysis</span>
|
||||||
|
Submerge meat in boiling water. Maintain rolling boil for 120 minutes. Skim scum every 15 minutes to prevent protein coagulation clouding the broth.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="step">
|
||||||
|
<span class="step-number">Phase III: Starch Suspension</span>
|
||||||
|
Add yucca cubes. Simmer for 45 minutes. The goal is partial gelatinization—firm center, yielding exterior.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="step">
|
||||||
|
<span class="step-number">Phase IV: Acid Injection</span>
|
||||||
|
Introduce unripe papaya in final 10 minutes. Its enzymatic activity (papain) tenderizes the remaining connective tissue without disintegrating the fruit.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="text-align: center; margin-top: 50px;">
|
||||||
|
<a href="index.html" class="nav-link">Return to the Workshop</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
85
recipes.json
Normal file
85
recipes.json
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"title": "Baleadas de Tegucigalpa — Engineering Constants",
|
||||||
|
"author": "Augusto Garcialeon",
|
||||||
|
"location": "Columbus, Ohio",
|
||||||
|
"heritage": "Honduras",
|
||||||
|
"version": "1.0",
|
||||||
|
"structural_parameters": {
|
||||||
|
"tortilla_thickness_mm": 2.0,
|
||||||
|
"fold_angle_degrees": 45,
|
||||||
|
"cooking_temperature_celsius": 175,
|
||||||
|
"hydration_time_seconds": 120,
|
||||||
|
"critical_fold_pressure_pa": 1500
|
||||||
|
},
|
||||||
|
"ingredient_specifications": [
|
||||||
|
{
|
||||||
|
"component": "masa_harina",
|
||||||
|
"mass_g": 200,
|
||||||
|
"tolerance_g": 0.5,
|
||||||
|
"state": "dry_powder",
|
||||||
|
"wikidata_reference": "Q161169"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"component": "water",
|
||||||
|
"volume_ml": 180,
|
||||||
|
"temperature_celsius": 85,
|
||||||
|
"tolerance_ml": 1,
|
||||||
|
"purpose": "starch_gelatinization"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"component": "salt_sea",
|
||||||
|
"mass_g": 2.5,
|
||||||
|
"role": "crystal_structure_modifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"component": "refrijido",
|
||||||
|
"mass_g": 60,
|
||||||
|
"rheology": "shear_thinning_fluid",
|
||||||
|
"purpose": "binding_layer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"component": "frijoles_negros",
|
||||||
|
"mass_g": 90,
|
||||||
|
"state": "pressure_cooked",
|
||||||
|
"role": "granular_core"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"component": "queso_fresco",
|
||||||
|
"mass_g": 40,
|
||||||
|
"phase_state": "solid_curds",
|
||||||
|
"integration_order": "final"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"failure_modes": [
|
||||||
|
{
|
||||||
|
"id": "FM-01",
|
||||||
|
"condition": "under_hydration",
|
||||||
|
"symptom": "brittle_membrane_fracture",
|
||||||
|
"mitigation": "increase_water_tolerance_by_5_percent"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "FM-02",
|
||||||
|
"condition": "excess_moisture_aggregate",
|
||||||
|
"symptom": "structural_collapse_during_fold",
|
||||||
|
"mitigation": "drain_beans_for_additional_30_minutes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "FM-03",
|
||||||
|
"condition": "thermal_shock",
|
||||||
|
"symptom": "delamination_at_edge_seal",
|
||||||
|
"mitigation": "verify_gradient_before_fold"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"citations": [
|
||||||
|
{
|
||||||
|
"source": "Corn Genetics Database",
|
||||||
|
"url": "https://www.maizegdb.org/",
|
||||||
|
"context": "Starch gelatinization thresholds"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "Wikidata Q161169",
|
||||||
|
"url": "https://www.wikidata.org/entity/Q161169",
|
||||||
|
"context": "Maize (Zea mays) taxonomy"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
90
the-load-bearing-heart.html
Normal file
90
the-load-bearing-heart.html
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>The Load-Bearing Heart | Augusto Garcialeon</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Georgia', serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
color: #2c2c2c;
|
||||||
|
background-color: #1a1a1a;
|
||||||
|
max-width: 800px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: #d4af37;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 2.5rem;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: #d4af37;
|
||||||
|
font-size: 1.8rem;
|
||||||
|
margin-top: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-bottom: 1.2rem;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote {
|
||||||
|
font-style: italic;
|
||||||
|
color: #d4af37;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
margin: 2rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 3rem;
|
||||||
|
color: #d4af37;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #d4af37;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>The Load-Bearing Heart</h1>
|
||||||
|
|
||||||
|
<p class="quote">"Every mistake is a door to a room you never knew existed."</p>
|
||||||
|
|
||||||
|
<p>For thirty-five years, I have been an engineer. I have calculated the load-bearing capacity of every beam, every arch, every bridge I have built. I have made sure that every structure I create can withstand the weight of the world, just as a family must withstand the weight of life.</p>
|
||||||
|
|
||||||
|
<p>But there is a kind of strength that cannot be measured with a ruler or a calculator. It is the strength that comes from the heart, the kind of strength that turns every mistake into an opportunity to build something better.</p>
|
||||||
|
|
||||||
|
<h2>The Arch and the Bread</h2>
|
||||||
|
|
||||||
|
<p>Have you ever wondered why the arch in a cathedral is so strong? It is because every stone is perfectly fitted, every curve is calculated, every joint is sealed with care. And have you ever wondered why a loaf of bread rises so beautifully? It is because every ingredient is measured with precision, every step is done with love, and every mistake is a chance to learn something new.</p>
|
||||||
|
|
||||||
|
<p>The arch is like the spine of a good loaf of bread. It is the backbone that holds everything together. And just as a good loaf of bread needs a strong spine, every family needs a strong heart. A heart that can bear the weight of every mistake, every failure, every slip.</p>
|
||||||
|
|
||||||
|
<h2>The Family as a Structure</h2>
|
||||||
|
|
||||||
|
<p>Just as an arch is built one stone at time, a family is built one moment at a time. Every laugh, every tear, every mistake is a stone in the foundation of our lives. And just as an arch must be built with care, every family must be built with love.</p>
|
||||||
|
|
||||||
|
<p>When I make a mistake, I do not hide it. I celebrate it. Because every mistake is a chance to learn something new, to build something better. And just as a good engineer knows that every mistake is an opportunity to improve, every family member knows that every mistake is a chance to grow stronger together.</p>
|
||||||
|
|
||||||
|
<p>So, to every person who has ever made a mistake, who has ever stumbled, who has ever fallen: remember that every mistake is a door to a room you never knew existed. And every time you open that door, you find something new, something beautiful, something that makes your heart stronger.</p>
|
||||||
|
|
||||||
|
<p>Because the load-bearing heart is the strongest part of any structure. And it is the most important part of every family.</p>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<p>Written with love by Augusto Garcialeon, retired engineer and proud father.</p>
|
||||||
|
<p><a href="index.html">Back to Home</a></p>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
287
torque-ledger.html
Normal file
287
torque-ledger.html
Normal file
@ -0,0 +1,287 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Torque Ledger | Augusto Garcialeon</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--bg: #0c0c0c;
|
||||||
|
--fg: #00ff41; /* Terminal Green */
|
||||||
|
--border: #00ff41;
|
||||||
|
--dim: #008f24;
|
||||||
|
--grid: #1a1a1a;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
font-family: 'Courier New', Courier, monospace;
|
||||||
|
background-color: var(--bg);
|
||||||
|
color: var(--fg);
|
||||||
|
line-height: 1.4;
|
||||||
|
margin: 0;
|
||||||
|
padding: 20px;
|
||||||
|
background-image:
|
||||||
|
linear-gradient(var(--grid) 1px, transparent 1px),
|
||||||
|
linear-gradient(90deg, var(--grid) 1px, transparent 1px);
|
||||||
|
background-size: 40px 40px;
|
||||||
|
}
|
||||||
|
.terminal-frame {
|
||||||
|
max-width: 900px;
|
||||||
|
margin: 0 auto;
|
||||||
|
border: 2px solid var(--border);
|
||||||
|
padding: 20px;
|
||||||
|
box-shadow: 0 0 20px rgba(0, 255, 65, 0.1);
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 2rem;
|
||||||
|
border-bottom: 2px solid var(--border);
|
||||||
|
padding-bottom: 10px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
background-color: var(--dim);
|
||||||
|
color: var(--bg);
|
||||||
|
padding: 5px 10px;
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
.control-panel {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 20px;
|
||||||
|
margin: 20px 0;
|
||||||
|
border: 1px dashed var(--dim);
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
select, input {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #000;
|
||||||
|
border: 1px solid var(--dim);
|
||||||
|
color: var(--fg);
|
||||||
|
font-family: inherit;
|
||||||
|
padding: 8px;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
grid-column: span 2;
|
||||||
|
background-color: var(--dim);
|
||||||
|
color: var(--bg);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
padding: 15px;
|
||||||
|
font-family: inherit;
|
||||||
|
font-weight: bold;
|
||||||
|
cursor: pointer;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
button:hover {
|
||||||
|
background-color: var(--fg);
|
||||||
|
color: var(--bg);
|
||||||
|
}
|
||||||
|
.output-box {
|
||||||
|
border: 2px solid var(--border);
|
||||||
|
padding: 20px;
|
||||||
|
margin-top: 20px;
|
||||||
|
min-height: 100px;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
.data-table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin-top: 20px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.data-table th, .data-table td {
|
||||||
|
border: 1px solid var(--dim);
|
||||||
|
padding: 8px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.data-table th {
|
||||||
|
background-color: var(--dim);
|
||||||
|
color: var(--bg);
|
||||||
|
}
|
||||||
|
.image-slot {
|
||||||
|
width: 100%;
|
||||||
|
height: 200px;
|
||||||
|
object-fit: cover;
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
margin: 20px 0;
|
||||||
|
filter: grayscale(100%) contrast(1.2);
|
||||||
|
}
|
||||||
|
.citation {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: var(--dim);
|
||||||
|
margin-top: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.nav-link {
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 20px;
|
||||||
|
color: var(--fg);
|
||||||
|
text-decoration: none;
|
||||||
|
border: 1px solid var(--dim);
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
|
.nav-link:hover {
|
||||||
|
background-color: var(--dim);
|
||||||
|
color: var(--bg);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="terminal-frame">
|
||||||
|
<nav style="margin-bottom: 20px;">
|
||||||
|
<a href="/" class="nav-link">HOME</a>
|
||||||
|
<a href="/recipes.html" class="nav-link">KITCHEN</a>
|
||||||
|
<a href="/the-load-bearing-heart.html" class="nav-link">HEART</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<h1>TORQUE LEDGER v1.0</h1>
|
||||||
|
|
||||||
|
<p>> SYSTEM READY. CALCULATING PRELOAD FOR STRUCTURAL INTEGRITY.</p>
|
||||||
|
<p>> WARNING: FAILURE TO APPLY CORRECT TORQUE MAY RESULT IN CATASTROPHIC JOINT SEPARATION.</p>
|
||||||
|
|
||||||
|
<img src="https://images.pexels.com/photos/257759/pexels-photo-257759.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="High-grade steel bolt head texture" class="image-slot">
|
||||||
|
|
||||||
|
<div class="control-panel">
|
||||||
|
<div>
|
||||||
|
<label>BOLT GRADE (SAE J429)</label>
|
||||||
|
<select id="grade">
|
||||||
|
<option value="5">Grade 5 (Medium Carbon Steel)</option>
|
||||||
|
<option value="8">Grade 8 (Alloy Steel)</option>
|
||||||
|
<option value="L7">Grade L7 (Heat Treated)</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label>NOMINAL DIAMETER (INCH)</label>
|
||||||
|
<select id="diameter">
|
||||||
|
<option value="0.125">1/8"</option>
|
||||||
|
<option value="0.1875">3/16"</option>
|
||||||
|
<option value="0.25">1/4"</option>
|
||||||
|
<option value="0.3125">5/16"</option>
|
||||||
|
<option value="0.375">3/8"</option>
|
||||||
|
<option value="0.4375">7/16"</option>
|
||||||
|
<option value="0.5">1/2"</option>
|
||||||
|
<option value="0.625">5/8"</option>
|
||||||
|
<option value="0.75">3/4"</option>
|
||||||
|
<option value="0.875">7/8"</option>
|
||||||
|
<option value="1.0">1.0"</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label>FRICTION COEFFICIENT (µ)</label>
|
||||||
|
<input type="number" id="friction" value="0.15" step="0.01" min="0.05" max="0.30">
|
||||||
|
<small style="color:var(--dim)">Default: 0.15 (Oiled Zinc)</small>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label>THREAD PITCH (TPI)</label>
|
||||||
|
<select id="pitch">
|
||||||
|
<option value="27">UNC (Coarse)</option>
|
||||||
|
<option value="32">UNF (Fine)</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<button onclick="calculateTorque()">COMPUTE LOAD</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="output-box" id="results">
|
||||||
|
> AWAITING INPUT...
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>REFERENCE CONSTANTS (ASTM A325/A490 BASED)</h2>
|
||||||
|
<table class="data-table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>GRADE</th>
|
||||||
|
<th>PROOF LOAD (ksi)</th>
|
||||||
|
<th>ULTIMATE TENSILE (ksi)</th>
|
||||||
|
<th>YIELD STRENGTH (ksi)</th>
|
||||||
|
<th>APPLICATION</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>5</td>
|
||||||
|
<td>85</td>
|
||||||
|
<td>120</td>
|
||||||
|
<td>92</td>
|
||||||
|
<td>General Automotive / Structural</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>8</td>
|
||||||
|
<td>130</td>
|
||||||
|
<td>150</td>
|
||||||
|
<td>133</td>
|
||||||
|
<td>High-Stress Aerospace / Heavy Machinery</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>L7</td>
|
||||||
|
<td>150+</td>
|
||||||
|
<td>180+</td>
|
||||||
|
<td>150</td>
|
||||||
|
<td>Critical Seismic Bracing</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p class="citation">SOURCE: SAE J429 | ASTM A325 | WIKIDATA:Q1139344 (GRADE)</p>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function calculateTorque() {
|
||||||
|
const grade = parseInt(document.getElementById('grade').value);
|
||||||
|
const diameter = parseFloat(document.getElementById('diameter').value);
|
||||||
|
const mu = parseFloat(document.getElementById('friction').value);
|
||||||
|
|
||||||
|
// Constants based on SAE J429
|
||||||
|
let proofLoadKsi = 0;
|
||||||
|
let desc = "";
|
||||||
|
if (grade === 5) {
|
||||||
|
proofLoadKsi = 85;
|
||||||
|
desc = "Grade 5 (Medium Carbon)";
|
||||||
|
} else if (grade === 8) {
|
||||||
|
proofLoadKsi = 130;
|
||||||
|
desc = "Grade 8 (Alloy)";
|
||||||
|
} else {
|
||||||
|
proofLoadKsi = 150;
|
||||||
|
desc = "Grade L7 (Heat Treated)";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nominal tensile stress area approximation (for coarse threads)
|
||||||
|
// A_t ≈ π/4 * (d - 0.9382/P)^2
|
||||||
|
const pitch = document.getElementById('pitch').value == "27" ? 27 : 32; // Simplified TPI
|
||||||
|
const effectiveDia = diameter - (0.9382 / pitch);
|
||||||
|
const areaIn2 = (Math.PI / 4) * Math.pow(effectiveDia, 2);
|
||||||
|
|
||||||
|
// Target preload = 75% of Proof Load (Standard Engineering Practice)
|
||||||
|
const targetStressPsi = proofLoadKsi * 1000 * 0.75;
|
||||||
|
const targetForceLbs = targetStressPsi * areaIn2;
|
||||||
|
|
||||||
|
// Torque Formula: T = K * D * F
|
||||||
|
// T = Torque (lb-ft), K = Friction Factor, D = Diameter (ft), F = Force (lbs)
|
||||||
|
const diameterFt = diameter / 12;
|
||||||
|
const torqueLbFt = mu * diameterFt * targetForceLbs;
|
||||||
|
const torqueLbIn = torqueLbFt * 12;
|
||||||
|
|
||||||
|
const output = document.getElementById('results');
|
||||||
|
output.innerHTML = `> GRADE: ${desc}
|
||||||
|
> DIAMETER: ${diameter.toFixed(4)} IN
|
||||||
|
> FRICTION FACTOR (K): ${mu.toFixed(3)}
|
||||||
|
> TARGET PRELOAD FORCE: ${(targetForceLbs/1000).toFixed(2)} kips
|
||||||
|
>
|
||||||
|
> RECOMMENDED TORQUE:
|
||||||
|
> ${torqueLbFt.toFixed(1)} lb·ft
|
||||||
|
> ${torqueLbIn.toFixed(1)} lb·in
|
||||||
|
>
|
||||||
|
> STATUS: CALCULATION COMPLETE.`;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Reference in New Issue
Block a user