fillet-stress-analyzer/prairie-resonance.html
2026-07-19 05:11:43 +00:00

202 lines
6.7 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>Prairie Resonance: Wind Load Calculus | Aniruddha Shah</title>
<style>
:root {
--bg-deep: #0a0e14;
--fg-primary: #e6e6e6;
--accent-alu: #a0a0a0;
--accent-cu: #b87333;
--accent-bronze: #cd7f32;
--grid-line: rgba(255,255,255,0.08);
}
body {
background-color: var(--bg-deep);
color: var(--fg-primary);
font-family: 'JetBrains Mono', 'Fira Code', monospace;
margin: 0;
padding: 0;
line-height: 1.6;
}
header {
border-bottom: 1px solid var(--grid-line);
padding: 3rem 2rem;
position: relative;
}
h1 {
font-size: 2.5rem;
margin: 0;
letter-spacing: -0.05em;
}
.subtitle {
color: var(--accent-alu);
font-size: 0.9rem;
margin-top: 0.5rem;
max-width: 60ch;
}
main {
max-width: 900px;
margin: 0 auto;
padding: 3rem 2rem;
}
.hero-img {
width: 100%;
height: 400px;
object-fit: cover;
border-radius: 4px;
margin-bottom: 2rem;
filter: contrast(1.1) saturate(0.9);
}
section {
margin-bottom: 4rem;
}
h2 {
font-size: 1.6rem;
color: var(--accent-cu);
border-left: 3px solid var(--accent-cu);
padding-left: 1rem;
margin-bottom: 1.5rem;
}
h3 {
font-size: 1.2rem;
color: var(--accent-alu);
margin-top: 2rem;
}
.spec-block {
background: rgba(176, 115, 51, 0.08);
border: 1px solid var(--grid-line);
border-left: 4px solid var(--accent-bronze);
padding: 1.5rem;
margin: 1.5rem 0;
border-radius: 4px;
}
.spec-row {
display: flex;
justify-content: space-between;
padding: 0.5rem 0;
border-bottom: 1px dashed var(--grid-line);
font-size: 0.85rem;
}
.spec-row:last-child {
border-bottom: none;
}
.spec-label {
color: var(--accent-alu);
}
.spec-val {
color: var(--fg-primary);
font-weight: bold;
}
.equation {
font-family: 'Courier New', monospace;
background: rgba(0,0,0,0.3);
padding: 1.5rem;
border-radius: 4px;
text-align: center;
font-size: 1.1rem;
margin: 2rem 0;
border: 1px solid var(--accent-bronze);
color: var(--accent-bronze);
}
.narrative {
font-size: 1.05rem;
line-height: 1.8;
opacity: 0.95;
}
.nav-back {
display: inline-block;
margin-bottom: 2rem;
color: var(--accent-alu);
text-decoration: none;
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.1em;
}
.nav-back:hover {
color: var(--accent-cu);
}
footer {
border-top: 1px solid var(--grid-line);
padding: 2rem;
text-align: center;
font-size: 0.75rem;
opacity: 0.5;
margin-top: 4rem;
}
</style>
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
</head>
<body>
<header>
<h1>Prairie Resonance</h1>
<div class="subtitle">Calculating the wind that shapes the dome. Structural dynamics meet the tallgrass.</div>
</header>
<main>
<a href="index.html" class="nav-back">← Back to the Workshop</a>
<img src="https://images.pexels.com/photos/14160226/pexels-photo-14160226.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
alt="Golden prairie grass swaying in the wind, the kind that taught me to calculate resonance"
class="hero-img">
<section>
<h2>The Problem</h2>
<p class="narrative">In Palatine, the wind doesn't whisper. It tests. Forty years of mechanical engineering taught me that every gust is a load case waiting to be solved. When we design the Mars dome, we cannot rely on Earth's forgiving atmosphere. We must understand the <strong>wind load</strong> as a dynamic force—a pressure distribution that shifts with every sol.</p>
<p class="narrative">My students at the community center ask why we study Illinois storms to build on Mars. Because the math is the same. Only the variables change.</p>
</section>
<section>
<h2>Structural Dynamics</h2>
<p class="narrative"><strong>Definition:</strong> The behavior of a structure subjected to dynamic loading—actions having high acceleration. This is not static physics. This is the dance of forces.</p>
<div class="equation">
F<sub>w</sub> = ½ · ρ · v² · C<sub>d</sub> · A
</div>
<p class="narrative">Where the wind velocity squared becomes the dominant term. Where a 20 mph increase doubles the load. Where the prairie grass bends not because it is weak, but because it calculates better than we ever could.</p>
</section>
<section>
<h2>Field Data: Palatine Station</h2>
<div class="spec-block">
<div class="spec-row">
<span class="spec-label">Location</span>
<span class="spec-val">Palatine, IL (42°N, 88°W)</span>
</div>
<div class="spec-row">
<span class="spec-label">Peak Gust Recorded</span>
<span class="spec-val">94 km/h (Nov 2023)</span>
</div>
<div class="spec-row">
<span class="spec-label">Surface Roughness</span>
<span class="spec-val">Category B (Open Country)</span>
</div>
<div class="spec-row">
<span class="spec-label">Resonant Frequency Target</span>
<span class="spec-val">0.3 Hz (Dome Membrane)</span>
</div>
<div class="spec-row">
<span class="spec-label">Safety Factor</span>
<span class="spec-val">1.8x (Dynamic Loading)</span>
</div>
</div>
<p class="narrative" style="margin-top: 1rem; opacity: 0.8;">These numbers come from thirty winters watching the cornstalks bow and rise. They are not theoretical. They are the difference between a shelter and a grave.</p>
</section>
<section>
<h2>The Beautiful Slip Revisited</h2>
<p class="narrative">Remember the floating joint? The 0.924mm gap that saved the thermal interface? That was static tolerance. Here, we deal with <em>vibration modes</em>. The dome must breathe with the wind, not resist it. Like the prairie grass, we build flexibility into the spine.</p>
<p class="narrative">My abuela said, "<em>No te muevas hasta que el color te hable</em>"—wait until the color speaks. I say: wait until the vibration settles. Then weld.</p>
</section>
<footer>
The wind is not the enemy. It is the teacher.<br>
<span style="color: var(--accent-bronze)">Calculate well.</span>
</footer>
</main>
</body>
</html>