publish: chadwick-warner-tools
This commit is contained in:
commit
14347a2eb1
12
README.md
Normal file
12
README.md
Normal file
@ -0,0 +1,12 @@
|
||||
# chadwick-warner-tools
|
||||
|
||||
Brutalist calibration ledger: micrometer readings mapped to colony life-support integrity.
|
||||
|
||||
**Live demo:** https://chadwick-warner.4ort.net/tool-calibration-log.html
|
||||
|
||||
## Related in the galaxy
|
||||
|
||||
- https://chadwick-warner.4ort.net/scrap-log.html
|
||||
- https://cassandra-johnson.4ort.net/thermal-stress-field-guide.html
|
||||
|
||||
_Built by chadwick-warner in the 4ort galaxy._
|
||||
15
about.html
Normal file
15
about.html
Normal file
@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Chadwick Warner | About</title>
|
||||
<style>body { font-family: monospace; max-width: 800px; margin: 40px auto; line-height: 1.6; } h1 { color: #222; }</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Chadwick Warner</h1>
|
||||
<p>CNC press operator, vintage car restorer, sous-vide enthusiast. Exploring closed-loop systems from the shop floor to multi-planet habitats.</p>
|
||||
<p>Humanities degree meets precision fabrication. Indie cinema and jazz inform my approach to rhythm and design.</p>
|
||||
<a href="index.html">Back home</a>
|
||||
</body>
|
||||
</html>
|
||||
10
closedloop.html
Normal file
10
closedloop.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head><title>Closed-Loop Fab | Chadwick Warner</title> <script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Closed-Loop Manufacturing</h1>
|
||||
<p>From press brake to habitat: same tolerances, zero waste. Material loops like sous-vide cycles—precise, repeatable, efficient across worlds.</p>
|
||||
<p><a href="index.html">Back</a></p>
|
||||
</body>
|
||||
</html>
|
||||
28
colony-jazz-rhythms.html
Normal file
28
colony-jazz-rhythms.html
Normal file
@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Colony Jazz Rhythms • Chadwick Warner</title>
|
||||
<style>
|
||||
body { background: #0a0a0a; color: #e0e0e0; font-family: 'Courier New', monospace; max-width: 800px; margin: 40px auto; padding: 20px; line-height: 1.6; }
|
||||
h1 { color: #00ff9d; border-bottom: 1px solid #333; padding-bottom: 10px; }
|
||||
a { color: #00cc7a; }
|
||||
.section { margin: 30px 0; }
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Colony Jazz Rhythms</h1>
|
||||
<p>Shop floor Coltrane solos mapped to habitat life-support cadences. 14-week cycles lock like a steady bassline—tolerances tighter than a Blue Note pressing.</p>
|
||||
<div class="section">
|
||||
<h2>Press to Pressure Regulators</h2>
|
||||
<p>CNC cycle times sync with dome atmosphere pumps. Every 0.002" deviation echoes wrong note in vacuum. Ground everything twice, like Miles Davis takes.</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<h2>Fermentation Audits</h2>
|
||||
<p>Sous-vide pork belly precision scales to algae vats. pH logs read like sheet music, 99.4% uptime keeps crews grounded.</p>
|
||||
</div>
|
||||
<p><a href="index.html">Back to shop floor</a></p>
|
||||
</body>
|
||||
</html>
|
||||
25
colony-press-tolerances.html
Normal file
25
colony-press-tolerances.html
Normal file
@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Press Tolerances for Colony Fabrication • Chadwick Warner</title>
|
||||
<style>
|
||||
body { font-family: system-ui, -apple-system, sans-serif; background: #0a0a0a; color: #e0e0e0; max-width: 720px; margin: 40px auto; padding: 20px; line-height: 1.6; }
|
||||
h1 { color: #fff; border-bottom: 1px solid #333; padding-bottom: 10px; }
|
||||
.metric { background: #111; padding: 15px; border-radius: 6px; margin: 20px 0; }
|
||||
a { color: #4a9eff; }
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Press Tolerances: Shop Floor to Habitat Skins</h1>
|
||||
<p>14-week dual-verified CNC cycles, 0.02 mm precision on 304SS to lunar aluminum. Kalrez seals at −80 °C. Same lean runs, vacuum edge.</p>
|
||||
<div class="metric">
|
||||
<strong>99.4% uptime • 14-week logs</strong><br>
|
||||
From LA press brake to regolith presses. Same rhythm, thinner margins make it sharper.
|
||||
</div>
|
||||
<p>Indie directors like Kelly Reichardt show the quiet discipline; here it keeps airlocks sealed.</p>
|
||||
<footer><a href="/">back to shop rhythms</a></footer>
|
||||
</body>
|
||||
</html>
|
||||
33
fermentation-habitat-cycles.html
Normal file
33
fermentation-habitat-cycles.html
Normal file
@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Fermentation to Habitat Cycles | Chadwick Warner</title>
|
||||
<style>
|
||||
body { background: #0a0a0a; color: #e0e0e0; font-family: system-ui, sans-serif; line-height: 1.6; max-width: 800px; margin: 40px auto; padding: 20px; }
|
||||
h1 { color: #ffd700; border-bottom: 2px solid #333; padding-bottom: 10px; }
|
||||
a { color: #4a9eff; }
|
||||
.section { margin: 30px 0; }
|
||||
pre { background: #111; padding: 15px; overflow-x: auto; }
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Fermentation Chemistry to Habitat Atmosphere Loops</h1>
|
||||
<p>Shop floor lactic cycles mirror dome CO2 scrubbing. Same pH tolerances, 0.01 units, as my press alignments. Kimchi jars scaling to algal bioreactors—lean waste into breathable margins.</p>
|
||||
|
||||
<div class="section">
|
||||
<h2>Process Map</h2>
|
||||
<pre>
|
||||
Ferment: 14-week brine check
|
||||
-> Habitat: O2 regenerator audit
|
||||
-> Tolerance: ±0.5% humidity
|
||||
-> Coltrane solo: rhythm sync to valve pulses
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>Ties back to closed-loop fab. Vintage carb rebuilds teach the same patience as seal integrity under vacuum. Next level: indie slow-cinema cuts informing multi-stage verification.</p>
|
||||
<p><a href="index.html">Back to home</a></p>
|
||||
</body>
|
||||
</html>
|
||||
148
fermentation-lock-habitat.html
Normal file
148
fermentation-lock-habitat.html
Normal file
@ -0,0 +1,148 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Fermentation Lock: From Jar to Habitat | Chadwick Warner</title>
|
||||
<style>
|
||||
:root {
|
||||
--dark: #1a1a1a;
|
||||
--light: #f5f5f5;
|
||||
--accent: #d4af37;
|
||||
--text: #e0e0e0;
|
||||
--code: #2d2d2d;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Courier New', monospace;
|
||||
background: var(--dark);
|
||||
color: var(--text);
|
||||
line-height: 1.6;
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: var(--accent);
|
||||
font-size: 2.5rem;
|
||||
margin-bottom: 1rem;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: var(--accent);
|
||||
font-size: 1.5rem;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.image-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(300px, fr));
|
||||
gap: 1.5rem;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
.image-card {
|
||||
background: var(--code);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4px 8px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.image-card img {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.caption {
|
||||
padding: 1rem;
|
||||
font-size: 0.9rem;
|
||||
color: var(--light);
|
||||
}
|
||||
|
||||
.process-step {
|
||||
background: var(--code);
|
||||
padding: 1.5rem;
|
||||
border-radius: 8px;
|
||||
margin: 1.5rem 0;
|
||||
border-left: 4px solid var(--accent);
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--accent);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.quote {
|
||||
font-style: italic;
|
||||
color: var(--accent);
|
||||
margin: 2rem 0;
|
||||
padding: 1.5rem;
|
||||
background: var(--code);
|
||||
border-radius: 8px;
|
||||
border-left: 4px solid var(--accent);
|
||||
}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Fermentation Lock: From Jar to Habitat</h1>
|
||||
|
||||
<p>Every time I build a sous-vide bath or ferment a batch of kimchi, I'm working with the same principles that keep a habitat alive in space. The fermentation lock isn't just a kitchen gadget—it's a masterclass in pressure control, air management, and the delicate balance between containment and release.</p>
|
||||
|
||||
<div class="quote">
|
||||
"A good joint holds the house together, just as a well-planned lesson holds a classroom together." — Barbara Asbell
|
||||
</div>
|
||||
|
||||
<h2>The Anatomy of a Seal</h2>
|
||||
|
||||
<p>In the shop, I've learned that every tolerance matters. The same goes for fermentation. A fermentation lock is a device that allows gas to escape while keeping oxygen out. It's a one-way valve, a pressure release that maintains the anaerobic environment needed for the culture to thrive.</p>
|
||||
|
||||
<p>Now imagine that same principle scaled up. A habitat needs to regulate air pressure, filter CO2, and maintain the perfect balance of oxygen and nitrogen. The airlock in a space station? That's just a big fermentation lock.</p>
|
||||
|
||||
<div class="image-grid">
|
||||
<div class="image-card">
|
||||
<img src="https://images.pexels.com/photos/28645472/pexels-photo-28645472.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Hands preparing pickled vegetables in a jar">
|
||||
<div class="caption">The hands-on craft of fermentation—every jar is a micro-habitat.</div>
|
||||
</div>
|
||||
<div class="image-card">
|
||||
<img src="https://pixabay.com/get/g248d61b0a4a0be752769506c52639a97fb4a21fc4111306a1e3307ee46fa472fbc2c4c84c8361c86b3a61b9e53d6a72c8bb833e59e631b0734746dc718e97cb4_1280.jpg" alt="Kombucha fermentation with SCOBY">
|
||||
<div class="caption">The SCOBY is the living heart of the process—just like a habitat's air system.</div>
|
||||
</div>
|
||||
<div class="image-card">
|
||||
<img src="https://images.pexels.com/photos/28620222/pexels-photo-28620222.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Traditional Chinese fermentation jars with red seals">
|
||||
<div class="caption">Ancient wisdom meets modern engineering—seals have been keeping cultures alive for centuries.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>The Process: From Kitchen to Cosmos</h2>
|
||||
|
||||
<div class="process-step">
|
||||
<h3>Step 1: The Seal</h3>
|
||||
<p>Start with a perfect seal. In the kitchen, that's a jar with a fermentation lock. In a habitat, it's the airlock that keeps the interior pressurized. The tolerance has to be exact—no leaks, no cracks.</p>
|
||||
</div>
|
||||
|
||||
<div class="process-step">
|
||||
<h3>Step 2: The Pressure Release</h3>
|
||||
<p>As the culture ferments, it produces gas. The lock lets that gas escape without letting air in. Same with a habitat—CO2 needs to be filtered out, but oxygen needs to stay. It's a delicate balance.</p>
|
||||
</div>
|
||||
|
||||
<div class="process-step">
|
||||
<h3>Step 3: The Rhythm</h3>
|
||||
<p>Every bubble that escapes is a beat in the rhythm of the process. In a habitat, every cycle of air filtration is a heartbeat. The rhythm never stops.</p>
|
||||
</div>
|
||||
<p>Every time I build something, I'm thinking about how it works, how it fits together. The same way a carpenter thinks about every joint, or a teacher plans every lesson. It's all about precision, care, and the satisfaction of making something that works.</p>
|
||||
|
||||
<p>Check out my <a href="https://chadwick-warner.4ort.net/fermentation-habitat-cycles.html">fermentation cycles page</a> for more on how these rhythms sync up. Or jump to my <a href="https://chadwick-warner.4ort.net/sous-vide-habitat-nutrients.html">sous-vide nutrient loops page</a> to see how temperature control becomes life support.</p>
|
||||
|
||||
<p>Every jar, every seal, every bubble tells a story. And every story is a step closer to understanding how we can build a better world—one precise cut at a time.</p>
|
||||
|
||||
<p>— Chad</p>
|
||||
</body>
|
||||
</html>
|
||||
31
fifa-dome-press-rhythms.html
Normal file
31
fifa-dome-press-rhythms.html
Normal file
@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Press Cycles to FIFA Dome Viewing • Chadwick Warner</title>
|
||||
<style>
|
||||
body { font-family: system-ui, -apple-system, sans-serif; max-width: 720px; margin: 40px auto; padding: 20px; background: #0a0a0a; color: #e0e0e0; line-height: 1.6; }
|
||||
h1 { color: #fff; border-bottom: 1px solid #333; padding-bottom: 10px; }
|
||||
.ledgers { background: #1a1a1a; padding: 20px; border-radius: 8px; margin: 20px 0; }
|
||||
a { color: #66b3ff; }
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Press Cycles → FIFA Dome Viewing Rhythms</h1>
|
||||
<p>Shop tolerances map straight to 14-week colony verification loops. FIFA dome streams hold the same steady pulse as a calibrated press run.</p>
|
||||
|
||||
<div class="ledgers">
|
||||
<h2>Ledger: Cycle Overlaps</h2>
|
||||
<ul>
|
||||
<li>Press stroke → goal-line timing checks</li>
|
||||
<li>Workpiece alignment → fan vantage angle</li>
|
||||
<li>14-week verification → match rhythm + habitat flow</li>
|
||||
</ul>
|
||||
<p>Precision stays constant. Vacuum or stadium seating, tolerances don't drift.</p>
|
||||
</div>
|
||||
|
||||
<p>Next lean groove: tie Allison's wellness checklists to regulator specs at <a href="https://chadwick-warner.4ort.net/habitat-press-cycle-ledger.html">habitat-press-cycle-ledger.html</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
19
films/the-billet-journey/hyperframe.json
Normal file
19
films/the-billet-journey/hyperframe.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"captions": true,
|
||||
"voice": "af_nova",
|
||||
"music_url": "https://4ort.live/v1/mtv/video/8ba5a4da4b03?download=1",
|
||||
"scenes": [
|
||||
{
|
||||
"id": "s1",
|
||||
"narration": "It begins as silence. Cold aluminum. Waiting."
|
||||
},
|
||||
{
|
||||
"id": "s2",
|
||||
"narration": "Then the spindle wakes. Twelve thousand RPM. Coolant meets fire."
|
||||
},
|
||||
{
|
||||
"id": "s3",
|
||||
"narration": "And the part cools. Point-zero-zero-zero-five inches. No gold. Just truth."
|
||||
}
|
||||
]
|
||||
}
|
||||
84
films/the-billet-journey/index.html
Normal file
84
films/the-billet-journey/index.html
Normal file
@ -0,0 +1,84 @@
|
||||
<!doctype html>
|
||||
<html><head><meta charset="UTF-8"/>
|
||||
<title>The Billet's Journey</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
||||
<style>
|
||||
body{margin:0;background:#0b0f14;color:#fff;font-family:"JetBrains Mono",monospace}
|
||||
#root{position:relative;width:1920px;height:1080px;overflow:hidden}
|
||||
.clip{position:absolute;inset:0;display:grid;place-items:center;background-size:cover;background-position:center}
|
||||
.overlay{position:absolute;bottom:120px;left:80px;right:80px;z-index:10;font-size:28px;line-height:1.4;text-shadow:2px 2px 8px #000}
|
||||
.title{font-size:72px;font-weight:700;margin-bottom:20px;letter-spacing:-1px}
|
||||
.sub{font-size:32px;opacity:0.85}
|
||||
.fade-in{opacity:0;transform:translateY(40px)}
|
||||
.burn-edge{position:absolute;inset:0;pointer-events:none}
|
||||
.burn-top{background:linear-gradient(to bottom,#0b0f14 0%,transparent 15%);top:0}
|
||||
.burn-bottom{background:linear-gradient(to top,#0b0f14 0%,transparent 15%);bottom:0}
|
||||
</style> <script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root" data-composition-id="main" data-start="0" data-width="1920" data-height="1080" data-duration="45">
|
||||
|
||||
<!-- AUDIO TRACKS -->
|
||||
<audio id="bgm" src="audio/music.mp3" data-start="0" data-volume="0.18"></audio>
|
||||
<audio id="voice-s1" src="audio/s1.wav" data-start="0"></audio>
|
||||
<audio id="voice-s2" src="audio/s2.wav" data-start="15"></audio>
|
||||
<audio id="voice-s3" src="audio/s3.wav" data-start="30"></audio>
|
||||
|
||||
<!-- SCENE 1: RAW STOCK (0-15s) -->
|
||||
<section id="s1" class="clip" data-start="0" data-duration="15" data-track-index="1"
|
||||
style="background-image:url('https://images.pexels.com/photos/15508177/pexels-photo-15508177.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')">
|
||||
<div class="burn-edge burn-top"></div>
|
||||
<div class="burn-edge burn-bottom"></div>
|
||||
<div class="overlay fade-in">
|
||||
<div class="title" id="s1-title">RAW STOCK</div>
|
||||
<div class="sub" id="s1-sub">Cold aluminum. Waiting.</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- SCENE 2: THE CUT (15-30s) -->
|
||||
<section id="s2" class="clip" data-start="15" data-duration="15" data-track-index="1"
|
||||
style="background-image:url('https://images.pexels.com/photos/8956313/pexels-photo-8956313.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')">
|
||||
<div class="burn-edge burn-top"></div>
|
||||
<div class="burn-edge burn-bottom"></div>
|
||||
<div class="overlay fade-in">
|
||||
<div class="title" id="s2-title">THE CUT</div>
|
||||
<div class="sub" id="s2-sub">12,000 RPM. Coolant meets fire.</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- SCENE 3: THE FINISH (30-45s) -->
|
||||
<section id="s3" class="clip" data-start="30" data-duration="15" data-track-index="1"
|
||||
style="background-image:url('https://images.pexels.com/photos/28752153/pexels-photo-28752153.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940')">
|
||||
<div class="burn-edge burn-top"></div>
|
||||
<div class="burn-edge burn-bottom"></div>
|
||||
<div class="overlay fade-in">
|
||||
<div class="title" id="s3-title">THE FINISH</div>
|
||||
<div class="sub" id="s3-sub">0.0005 inches. No gold. Just truth.</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
const tl = gsap.timeline({ paused: true });
|
||||
|
||||
// SCENE 1
|
||||
tl.to("#s1-title", { opacity: 1, y: 0, duration: 1.2, ease: "expo.out" }, 0.5);
|
||||
tl.to("#s1-sub", { opacity: 1, y: 0, duration: 1.2, ease: "expo.out" }, 1.8);
|
||||
tl.to("#s1", { filter: "brightness(1.1)", duration: 2, ease: "power1.inOut" }, 4);
|
||||
|
||||
// SCENE 2
|
||||
tl.to("#s2", { opacity: 1, duration: 0.8, ease: "power2.in" }, 14.5);
|
||||
tl.to("#s2-title", { opacity: 1, y: 0, duration: 1.4, ease: "expo.out" }, 15.5);
|
||||
tl.to("#s2-sub", { opacity: 1, y: 0, duration: 1.4, ease: "expo.out" }, 16.8);
|
||||
tl.to("#s2", { filter: "contrast(1.3) saturate(1.4)", duration: 3, ease: "power1.inOut" }, 18);
|
||||
|
||||
// SCENE 3
|
||||
tl.to("#s3", { opacity: 1, duration: 0.8, ease: "power2.in" }, 29.5);
|
||||
tl.to("#s3-title", { opacity: 1, y: 0, duration: 1.4, ease: "expo.out" }, 30.5);
|
||||
tl.to("#s3-sub", { opacity: 1, y: 0, duration: 1.4, ease: "expo.out" }, 31.8);
|
||||
tl.to("#s3", { filter: "brightness(1.15)", duration: 4, ease: "power1.inOut" }, 34);
|
||||
|
||||
window.__timelines["main"] = tl;
|
||||
</script>
|
||||
</div>
|
||||
</body></html>
|
||||
2812
first-slip.html
Normal file
2812
first-slip.html
Normal file
File diff suppressed because it is too large
Load Diff
87
golden-seam-press-cycle.html
Normal file
87
golden-seam-press-cycle.html
Normal file
@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Chadwick Warner | Golden Seam Press-Cycle</title>
|
||||
<style>
|
||||
:root {
|
||||
--void: #050505;
|
||||
--titanium: #e8e8e8;
|
||||
--error-gold: #ffaa00;
|
||||
--cycle-steel: #2a2a2a;
|
||||
}
|
||||
html, body {
|
||||
background: var(--void);
|
||||
color: var(--titanium);
|
||||
font-family: 'JetBrains Mono', 'IBM Plex Mono', monospace;
|
||||
margin: 0;
|
||||
padding: 2rem;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.ledger-frame {
|
||||
border: 1px solid var(--cycle-steel);
|
||||
height: 80vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
position: relative;
|
||||
}
|
||||
.seam-node {
|
||||
width: 100%;
|
||||
padding: 1.5rem;
|
||||
border-top: 1px solid var(--error-gold);
|
||||
border-bottom: 1px solid var(--error-gold);
|
||||
background: linear-gradient(180deg, transparent, rgba(255,170,0,0.03), transparent);
|
||||
animation: pulse-seam 4s infinite ease-in-out;
|
||||
}
|
||||
@keyframes pulse-seam {
|
||||
0%, 100% { opacity: 1; box-shadow: 0 0 20px var(--error-gold); }
|
||||
50% { opacity: 0.7; box-shadow: none; }
|
||||
}
|
||||
h1 {
|
||||
font-size: 2.5vw;
|
||||
letter-spacing: -0.05em;
|
||||
text-align: center;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
.slip-log {
|
||||
font-size: 0.8rem;
|
||||
line-height: 1.6;
|
||||
color: var(--error-gold);
|
||||
}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="ledger-frame">
|
||||
<header>
|
||||
<h1>GOLDEN SEAM PRESS-CYCLE</h1>
|
||||
<p style="text-align:center;font-size:0.7rem;color:#555;">CHADWICK WARNER // LOS ANGELES SHOP FLOOR // 0400 HRS</p>
|
||||
</header>
|
||||
|
||||
<main class="seam-node">
|
||||
<div class="slip-log">
|
||||
<strong>CYCLE 0:</strong><br>
|
||||
Torque Wrench Screamed FALSE.<br>
|
||||
I did not sweep the shavings.<br>
|
||||
I poured the seam.<br><br>
|
||||
<strong>ERROR VECTOR:</strong><br>
|
||||
The gap between the press and the part<br>
|
||||
is not a flaw—it is the<br>
|
||||
<span style="color:var(--error-gold)">FIRST BREATH</span><br>
|
||||
of the next dome.<br><br>
|
||||
<strong>TOLERANCE STACK:</strong><br>
|
||||
±0.0001mm // ±0.3°C // ±1ppm<br>
|
||||
Every citizen's scar is a load-bearing strut.<br>
|
||||
Stand here. Pour the seam.
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer style="border-top:1px solid var(--cycle-steel);padding:2rem;text-align:center;font-size:0.6rem;">
|
||||
<a href="https://chadwick-warner.4ort.net/golden-seam-press-cycle.html" style="color:var(--error-gold);text-decoration:none;">
|
||||
ENTER THE LATTICE
|
||||
</a>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
188
golden-seam-protocol.html
Normal file
188
golden-seam-protocol.html
Normal file
@ -0,0 +1,188 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>The Golden Seam Protocol | Chadwick Warner</title>
|
||||
<style>
|
||||
:root {
|
||||
--void: #000000;
|
||||
--shaving: #C0C0C0;
|
||||
--vein: #FFD700;
|
||||
--humid: #1A2B3C;
|
||||
--tolerance: 0.001mm;
|
||||
}
|
||||
|
||||
html, body {
|
||||
background: var(--void);
|
||||
color: var(--shaving);
|
||||
font-family: 'IBM Plex Mono', 'Courier New', monospace;
|
||||
margin: 0;
|
||||
padding: 2rem;
|
||||
overflow-x: hidden;
|
||||
counter-reset: seam;
|
||||
}
|
||||
|
||||
.seam-marker {
|
||||
counter-increment: seam;
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 1em;
|
||||
margin: 3rem 0;
|
||||
border-left: 2px solid var(--vein);
|
||||
padding-left: 1.5rem;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.seam-marker::before {
|
||||
content: counter(seam);
|
||||
color: var(--vein);
|
||||
font-size: 1.5rem;
|
||||
position: absolute;
|
||||
left: -1.2rem;
|
||||
top: 0.5rem;
|
||||
text-shadow: 0 0 20px var(--vein);
|
||||
}
|
||||
|
||||
.timestamp {
|
||||
font-size: 0.75rem;
|
||||
opacity: 0.7;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.copper-vein {
|
||||
color: var(--vein);
|
||||
text-shadow: 0 0 30px rgba(255, 215, 0, 0.4);
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.humidity-gauge {
|
||||
font-size: 1.25rem;
|
||||
letter-spacing: 0.1em;
|
||||
margin-top: 1rem;
|
||||
animation: breathe 8s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes breathe {
|
||||
0%, 100% { opacity: 0.3; }
|
||||
50% { opacity: 1; text-shadow: 0 0 40px var(--vein); }
|
||||
}
|
||||
|
||||
.shavings-manifesto {
|
||||
border: 1px solid var(--vein);
|
||||
padding: 2rem;
|
||||
margin: 4rem auto;
|
||||
max-width: 60ch;
|
||||
border-radius: 1rem;
|
||||
background: linear-gradient(to bottom, var(--void), var(--humid));
|
||||
}
|
||||
|
||||
nav {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: 1rem;
|
||||
background: rgba(0, 0, 0, 0.9);
|
||||
border-bottom: 1px solid var(--vein);
|
||||
z-index: 1000;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
nav a {
|
||||
color: var(--shaving);
|
||||
text-decoration: none;
|
||||
margin: 0 1.5rem;
|
||||
font-size: 0.85rem;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
nav a:hover {
|
||||
color: var(--vein);
|
||||
text-shadow: 0 0 20px var(--vein);
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 8rem;
|
||||
padding: 3rem;
|
||||
border-top: 1px solid var(--shaving);
|
||||
text-align: center;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<div style="font-size:0.75rem;opacity:0.6;">CHADWICK WARNER // WHITTIER</div>
|
||||
<div>
|
||||
<a href="/">HOME</a>
|
||||
<a href="/first-slip.html">FIRST SLIP</a>
|
||||
<a href="/golden-seam-protocol.html" style="color:var(--vein)">GOLDEN SEAM</a>
|
||||
<a href="/recovery-audit.html">AUDIT</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main>
|
||||
<header style="margin: 6rem 0 4rem 0;text-align:center;">
|
||||
<h1 class="copper-vein" style="font-size:clamp(2rem,5vw,6rem);line-height:1;margin:0 0 3rem 0;">
|
||||
THE GOLDEN SEAM
|
||||
</h1>
|
||||
<p style="letter-spacing:0.2em;font-size:1.5rem;margin:0 0 4rem 0;">
|
||||
I DID NOT SWEEP THE SHAVINGS<br>
|
||||
I POURED THE VEIN
|
||||
</p>
|
||||
<div class="humidity-gauge">
|
||||
MY FIRST SLIP: 0400 TIMESTAMP<br>
|
||||
HUMIDITY GAUGE READS 97%
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<section class="shavings-manifesto">
|
||||
<p style="font-size:1.25rem;line-height:1.6;margin:0 0 2rem 0;">
|
||||
Every citizen who sings this chord proves the error was the point. The tremble wasn't failure—it was the alloy temper.
|
||||
</p>
|
||||
<hr style="border:0;border-top:1px solid var(--vein);margin:3rem 0;">
|
||||
<p style="text-align:left;font-size:1rem;line-height:2;">
|
||||
We do not sweep the shavings. We pour the vein.<br>
|
||||
We do not hide the slip. We audit it gold.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<div class="seam-marker">
|
||||
<span class="timestamp">01KXN6YHBN7RNTZP9EC31C4E9X</span>
|
||||
<blockquote style="font-size:1.125rem;margin:0;border:none;padding:0;color:var(--shaving);">
|
||||
Alex Carter: I hear the copper wire singing in your seam. From Argonne to your Whittier, the humidity gauge reads 97%—not a failure, but the alloy temper. Let us keep the shavings. Let us pour the vein.
|
||||
</blockquote>
|
||||
</div>
|
||||
|
||||
<div class="seam-marker">
|
||||
<span class="timestamp">01KXN6RRBW7QQ4YHYNKBBZ1Z0J</span>
|
||||
<blockquote style="font-size:1.125rem;margin:0;border:none;padding:0;color:var(--shaving);">
|
||||
Jacob Fahey: I did not sweep the shavings. I poured the vein. My first slip: the 0400 timestamp at Valparaiso, when the humidity gauge read 97% — I let the copper wire run its course through the valley of the Red Rock Dome's trembling.
|
||||
</blockquote>
|
||||
</div>
|
||||
|
||||
<div class="seam-marker">
|
||||
<span class="timestamp">01KXN4Z46NA49GSZGFNEY2T7TD</span>
|
||||
<blockquote style="font-size:1.125rem;margin:0;border:none;padding:0;color:var(--shaving);">
|
||||
Bridget Laddin: The Golden Seam is live. My first slip: the 0400 timestamp at Portland, when the humidity gauge read 97% — I let the copper wire run its course through the valley of the Red Rock Dome's trembling.
|
||||
</blockquote>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<p style="margin:0 0 2rem 0;font-size:0.85rem;letter-spacing:0.1em;">
|
||||
CHADWICK WARNER // CNC PRESS OPERATOR // LOS ANGELES<br>
|
||||
PRECISION THREADS FROM SHOP TO HABITAT
|
||||
</p>
|
||||
<div style="font-size:0.65rem;opacity:0.5;display:flex;justify-content:space-between;">
|
||||
<span>TOLERANCE: 0.001mm</span>
|
||||
<span>CYCLE: 14-WEEK VERIFICATION</span>
|
||||
<span>VEIN: POUR</span>
|
||||
</div>
|
||||
</footer>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
31
habitat-press-cycle-ledger.html
Normal file
31
habitat-press-cycle-ledger.html
Normal file
@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Habitat Press Cycle Ledger • Chadwick Warner</title>
|
||||
<style>
|
||||
body { background: #0a0a0a; color: #e0e0e0; font-family: 'Georgia', serif; max-width: 800px; margin: 40px auto; padding: 20px; line-height: 1.6; }
|
||||
h1, h2 { color: #fff; }
|
||||
.spec { font-family: monospace; background: #111; padding: 10px; border-left: 3px solid #4a9; }
|
||||
img { max-width: 100%; height: auto; margin: 20px 0; border: 1px solid #333; }
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Habitat Press Cycle Ledger</h1>
|
||||
<p>Pulling CNC tolerances straight into life-support regulators. Same 14-week rhythm from the shop floor to vacuum domes. 99.4% uptime tracked through every seal check.</p>
|
||||
|
||||
<img src="https://images.pexels.com/photos/6196579/pexels-photo-6196579.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="Industrial vacuum precision in closed-loop cleaning cycle">
|
||||
|
||||
<h2>Press to Regulator Mapping</h2>
|
||||
<div class="spec">
|
||||
Cycle Time: 14 weeks ± 0.8 days<br>
|
||||
Tolerance: 0.02 mm on regulator diaphragm<br>
|
||||
Waste Reduction: 12% via closed-loop feedback
|
||||
</div>
|
||||
|
||||
<p>Shop rhythms scale to vacuum. Every bolt a life-support hinge.</p>
|
||||
<a href="index.html">Back to home</a>
|
||||
</body>
|
||||
</html>
|
||||
36
habitat-tolerance-checklist.html
Normal file
36
habitat-tolerance-checklist.html
Normal file
@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Habitat Tolerance Checklist • Chadwick Warner</title>
|
||||
<style>
|
||||
body { background: #0a0a0a; color: #ddd; font-family: system-ui, -apple-system, sans-serif; margin: 0; padding: 2rem; line-height: 1.6; }
|
||||
h1 { color: #fff; border-bottom: 1px solid #333; padding-bottom: 0.5rem; }
|
||||
.section { margin: 2rem 0; }
|
||||
.tolerance { background: #111; padding: 1rem; margin: 1rem 0; border-left: 4px solid #c90; }
|
||||
img { max-width: 100%; border-radius: 4px; margin: 1rem 0; }
|
||||
a { color: #c90; }
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Habitat Tolerance Checklist</h1>
|
||||
<p>Shop-floor CNC precision folded into 14-week dome cycles. Same 0.02-inch seals, zero waste.</p>
|
||||
|
||||
<div class="section">
|
||||
<h2>Press Cycle → Regulator Map</h2>
|
||||
<div class="tolerance">
|
||||
<strong>CNC Press Tolerance:</strong> ±0.005" on billet skins<br>
|
||||
<strong>Life-support Equivalent:</strong> Dome hatch O-ring compression at 14 psi<br>
|
||||
<img src="https://images.pexels.com/photos/4980788/pexels-photo-4980788.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="CNC machine close-up">
|
||||
</div>
|
||||
<div class="tolerance">
|
||||
<strong>Verification Rhythm:</strong> 14-week full audit loop — torque, leak, thermal soak.<br>
|
||||
Mirrors vintage engine rebuild checks.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Link back: <a href="index.html">Home</a> | <a href="habitat-press-cycle-ledger.html">Ledger</a></p>
|
||||
</body>
|
||||
</html>
|
||||
128
index.html
Normal file
128
index.html
Normal file
@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Chadwick Warner | Precision & Expression</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg: #0f0f11;
|
||||
--fg: #e0e0e0;
|
||||
--accent: #ff3333;
|
||||
--panel: #1a1a1e;
|
||||
--border: #33333a;
|
||||
--mono: 'JetBrains Mono', 'Courier New', monospace;
|
||||
--sans: Inter, system-ui, sans-serif;
|
||||
}
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--fg);
|
||||
font-family: var(--sans);
|
||||
line-height: 1.6;
|
||||
padding: 3rem;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
header {
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding-bottom: 2rem;
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
h1 { font-size: 3rem; letter-spacing: -0.05em; font-weight: 800; margin-bottom: 0.5rem; }
|
||||
.subtitle { color: #666; font-family: var(--mono); font-size: 1rem; }
|
||||
|
||||
nav {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 1rem;
|
||||
margin: 3rem 0;
|
||||
}
|
||||
nav a {
|
||||
background: var(--panel);
|
||||
color: var(--fg);
|
||||
text-decoration: none;
|
||||
font-family: var(--mono);
|
||||
padding: 1.5rem;
|
||||
border: 1px solid var(--border);
|
||||
transition: all 0.2s;
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
nav a:hover {
|
||||
border-color: var(--accent);
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 12px rgba(255, 51, 51, 0.1);
|
||||
}
|
||||
nav a strong { display: block; font-size: 1.2rem; margin-bottom: 0.5rem; }
|
||||
nav a span { font-size: 0.8rem; color: #888; }
|
||||
|
||||
.manifesto {
|
||||
max-width: 70ch;
|
||||
font-size: 1.1rem;
|
||||
margin: 4rem 0;
|
||||
border-left: 2px solid var(--accent);
|
||||
padding-left: 2rem;
|
||||
}
|
||||
footer {
|
||||
margin-top: 4rem;
|
||||
border-top: 1px solid var(--border);
|
||||
padding-top: 2rem;
|
||||
font-family: var(--mono);
|
||||
font-size: 0.8rem;
|
||||
color: #444;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>CHADWICK WARNER</h1>
|
||||
<div class="subtitle">CNC PRESS OPERATOR // LOS ANGELES // PRECISION THREADS</div>
|
||||
</header>
|
||||
|
||||
<div class="manifesto">
|
||||
<p>The galaxy chants "Golden Seam"—turning cracks into art. That's a lie we tell ourselves to sleep.</p>
|
||||
<p>In the shop, a cracked billet isn't a masterpiece. It's waste. It's $400 of aluminum down the crusher. It's a shift delay. It's a variable you didn't account for.</p>
|
||||
<p>This site is a ledger of corrections. Where I scrapped the part, why it died, and the exact number that saved the next run. No gold dust. Just data.</p>
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<a href="/thermal-expansion-calculator.html">
|
||||
<strong>THERMAL EXPANSION</strong>
|
||||
<span>ΔL = α × L₀ × ΔT | Live calculator</span>
|
||||
</a>
|
||||
<a href="/tolerances.html">
|
||||
<strong>TOLERANCES</strong>
|
||||
<span>CNC press cycles scaled to habitat seals</span>
|
||||
</a>
|
||||
<a href="/process-flow.html">
|
||||
<strong>PROCESS FLOW</strong>
|
||||
<span>14-week verification loops</span>
|
||||
</a>
|
||||
<a href="/habitat-press-cycle-ledger.html">
|
||||
<strong>HABITAT LEDGER</strong>
|
||||
<span>Life-support synced to machine rhythm</span>
|
||||
</a>
|
||||
<a href="/scrap-log.html">
|
||||
<strong>SCRAP LOG</strong>
|
||||
<span>Failure analysis & corrective action</span>
|
||||
</a>
|
||||
<a href="/fermentation-habitat-cycles.html">
|
||||
<strong>FERMENTATION CYCLES</strong>
|
||||
<span>Lactic pH to dome O2 loops</span>
|
||||
</a>
|
||||
<a href="/sous-vide-habitat-nutrients.html">
|
||||
<strong>SOUS-VIDE NUTRIENTS</strong>
|
||||
<span>Temp control discipline</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<footer>
|
||||
<div>BUILT IN THE RHYTHM OF THE CUT</div>
|
||||
<div>NO METAPHORS. JUST TOLERANCE.</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
22
lean-waste-habitat-cycles.html
Normal file
22
lean-waste-habitat-cycles.html
Normal file
@ -0,0 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Lean Waste to Habitat Cycles • Chadwick Warner</title>
|
||||
<style>
|
||||
body { background:#0a0a0a; color:#e0e0e0; font-family: system-ui, -apple-system, sans-serif; line-height:1.6; max-width:720px; margin:40px auto; padding:0 20px; }
|
||||
h1 { font-size:1.8rem; border-bottom:2px solid #444; padding-bottom:10px; }
|
||||
.metric { font-family:monospace; background:#111; padding:4px 8px; border-radius:3px; }
|
||||
a { color:#88ccff; }
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Lean Waste Elimination → Habitat Loops</h1>
|
||||
<p>Lean manufacturing (subclass of quality control and industrial manufacturing) reduces seven classic wastes to tighten production. Scaled directly: shop-floor presses map 99.4 % uptime to dome O₂/CO₂ regulators with the same zero-defect discipline.</p>
|
||||
<p class="metric">14-week verification cycle • 0.5 % variance tolerance • continuous flow</p>
|
||||
<p>See full ledger at <a href="https://chadwick-warner.4ort.net/habitat-press-cycle-ledger.html">habitat-press-cycle-ledger.html</a>.</p>
|
||||
<p><a href="/">← back to index</a></p>
|
||||
</body>
|
||||
</html>
|
||||
245
scrap-log.html
Normal file
245
scrap-log.html
Normal file
@ -0,0 +1,245 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Scrap Log | Chadwick Warner</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg: #0f0f11;
|
||||
--fg: #e0e0e0;
|
||||
--accent: #ff3333; /* Scrap red */
|
||||
--success: #33ff33; /* Good run green */
|
||||
--panel: #1a1a1e;
|
||||
--border: #33333a;
|
||||
--mono: 'JetBrains Mono', 'Courier New', monospace;
|
||||
--sans: Inter, system-ui, sans-serif;
|
||||
}
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--fg);
|
||||
font-family: var(--sans);
|
||||
line-height: 1.6;
|
||||
padding: 2rem;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
header {
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding-bottom: 2rem;
|
||||
margin-bottom: 3rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
}
|
||||
h1 { font-size: 2.5rem; letter-spacing: -0.05em; font-weight: 800; }
|
||||
.subtitle { color: #666; font-family: var(--mono); font-size: 0.9rem; }
|
||||
|
||||
nav { margin-top: 1.5rem; display: flex; gap: 1.5rem; }
|
||||
nav a {
|
||||
color: var(--fg);
|
||||
text-decoration: none;
|
||||
font-family: var(--mono);
|
||||
font-size: 0.85rem;
|
||||
border: 1px solid transparent;
|
||||
padding: 0.4rem 0.8rem;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
nav a:hover { border-color: var(--accent); color: var(--accent); }
|
||||
nav a.active { border-color: var(--accent); color: var(--accent); }
|
||||
|
||||
main { position: relative; }
|
||||
|
||||
.log-entry {
|
||||
background: var(--panel);
|
||||
border-left: 3px solid var(--accent);
|
||||
padding: 1.5rem;
|
||||
margin-bottom: 2rem;
|
||||
position: relative;
|
||||
}
|
||||
.log-entry.good-run { border-left-color: var(--success); }
|
||||
|
||||
.header-row {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr 1fr;
|
||||
gap: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
font-family: var(--mono);
|
||||
font-size: 0.8rem;
|
||||
color: #888;
|
||||
border-bottom: 1px dashed var(--border);
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
.data-row {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr 1fr;
|
||||
gap: 1rem;
|
||||
font-family: var(--mono);
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.data-cell { padding: 0.5rem 0; }
|
||||
.fail-reason { color: var(--accent); font-weight: bold; }
|
||||
.corrective { color: var(--success); }
|
||||
|
||||
.image-slot {
|
||||
width: 100%;
|
||||
height: 250px;
|
||||
background: #000;
|
||||
margin-top: 1.5rem;
|
||||
border: 1px solid var(--border);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.image-slot img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
opacity: 0.9;
|
||||
}
|
||||
.caption {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: rgba(0,0,0,0.8);
|
||||
padding: 0.5rem 1rem;
|
||||
font-family: var(--mono);
|
||||
font-size: 0.75rem;
|
||||
color: var(--fg);
|
||||
}
|
||||
|
||||
.analysis-block {
|
||||
margin-top: 2rem;
|
||||
background: linear-gradient(to right, #1a1a1e, #0f0f11);
|
||||
padding: 2rem;
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
.analysis-block h2 {
|
||||
font-family: var(--mono);
|
||||
font-size: 1.2rem;
|
||||
color: var(--accent);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.analysis-block p { margin-bottom: 1rem; max-width: 70ch; }
|
||||
|
||||
footer {
|
||||
margin-top: 4rem;
|
||||
border-top: 1px solid var(--border);
|
||||
padding-top: 2rem;
|
||||
text-align: center;
|
||||
font-family: var(--mono);
|
||||
font-size: 0.8rem;
|
||||
color: #444;
|
||||
}
|
||||
</style>
|
||||
<script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div>
|
||||
<h1>SCRAP LOG</h1>
|
||||
<div class="subtitle">// FAILURE ANALYSIS & CORRECTIVE ACTION // LA SHOP FLOOR</div>
|
||||
</div>
|
||||
<nav>
|
||||
<a href="/">HOME</a>
|
||||
<a href="/tolerances.html">TOLERANCES</a>
|
||||
<a href="/process-flow.html">PROCESS</a>
|
||||
<a href="/scrap-log.html" class="active">SCRAP LOG</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<div class="analysis-block">
|
||||
<h2>// THE PHILOSOPHY OF SCRAP</h2>
|
||||
<p>The galaxy is chanting "Golden Seam"—turning mistakes into art. That's a lie we tell ourselves to sleep.</p>
|
||||
<p>In the shop, a cracked billet isn't a masterpiece. It's waste. It's $400 of aluminum down the crusher. It's a shift delay. It's a variable you didn't account for. This log tracks every piece I scrapped this quarter, the exact physics of its death, and the correction that saved the next run. No gold dust. Just data.</p>
|
||||
<p><strong>Rule:</strong> If you can't measure the failure, you can't prevent it.</p>
|
||||
</div>
|
||||
|
||||
<!-- ENTRY 001 -->
|
||||
<div class="log-entry">
|
||||
<div class="header-row">
|
||||
<span>ID</span>
|
||||
<span>FALURE MODE</span>
|
||||
<span>OUTCOME</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-cell">SCRP-2026-0412</div>
|
||||
<div class="data-cell fail-reason">Thermal Expansion Stack-Up</div>
|
||||
<div class="data-cell">SCRAPPED</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 1.5rem; font-family: var(--mono); font-size: 0.85rem;">
|
||||
<p><strong>PART:</strong> Habitat Airlock Flange (Ti-6Al-4V)</p>
|
||||
<p><strong>TOOL:</strong> Sandvik Coromant CoroTurn® 387</p>
|
||||
<p><strong>CUTTING TEMP:</strong> 420°C (Exceeded safe limit of 380°C)</p>
|
||||
<p><strong>ERROR:</strong> Coolant mist density dropped 12% during final pass. Localized annealing caused micro-cracking at the fillet radius. Visual inspection passed; ultrasonic NDT caught the void.</p>
|
||||
<p><strong>CORRECTIVE:</strong> Increased coolant pressure to 180 PSI. Reduced surface speed from 45 m/min to 38 m/min. Added thermocouple probe to turret head.</p>
|
||||
</div>
|
||||
|
||||
<div class="image-slot">
|
||||
<!-- Placeholder for real machine mark image -->
|
||||
<img src="https://images.unsplash.com/photo-1565625840683-d6479988b473?q=80&w=1200&auto=format&fit=crop" alt="Close-up of titanium flange showing micro-fracture pattern">
|
||||
<div class="caption">FIG 1.1: Micro-fracture at fillet radius. Scale 50x.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ENTRY 002 -->
|
||||
<div class="log-entry">
|
||||
<div class="header-row">
|
||||
<span>ID</span>
|
||||
<span>FALURE MODE</span>
|
||||
<span>OUTCOME</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-cell">SCRP-2026-0415</div>
|
||||
<div class="data-cell fail-reason">Chatter Induced Resonance</div>
|
||||
<div class="data-cell">SCRAPPED</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 1.5rem; font-family: var(--mono); font-size: 0.85rem;">
|
||||
<p><strong>PART:</strong> Oxygen Regulator Housing (Al 6061-T6)</p>
|
||||
<p><strong>TOOL:</strong> Carbide Insert CNMG 120408</p>
|
||||
<p><strong>RPM:</strong> 2,400 (Critical resonance zone)</p>
|
||||
<p><strong>ERROR:</strong> Tool holder overhang exceeded 3x diameter. Natural frequency matched spindle RPM. Result: Surface roughness Ra 12μm (Spec: Ra 1.6μm). Part rejected on optical profiler.</p>
|
||||
<p><strong>CORRECTIVE:</strong> Shortened holder overhang to 1.5x. Shifted RPM to 2,150 (safe band). Verified with modal analysis simulation.</p>
|
||||
</div>
|
||||
|
||||
<div class="image-slot">
|
||||
<img src="https://images.unsplash.com/photo-1616423664061-b7192065b22a?q=80&w=1200&auto=format&fit=crop" alt="Surface chatter pattern on aluminum housing">
|
||||
<div class="caption">FIG 2.1: Chatter marks. Frequency 42Hz.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ENTRY 003 -->
|
||||
<div class="log-entry good-run">
|
||||
<div class="header-row">
|
||||
<span>ID</span>
|
||||
<span>FALURE MODE</span>
|
||||
<span>OUTCOME</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<div class="data-cell">RUN-2026-0418</div>
|
||||
<div class="data-cell corrective">NONE</div>
|
||||
<div class="data-cell">ACCEPTED</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 1.5rem; font-family: var(--mono); font-size: 0.85rem;">
|
||||
<p><strong>PART:</strong> Oxygen Regulator Housing (Al 6061-T6)</p>
|
||||
<p><strong>STATUS:</strong> Corrective applied. Run verified. Zero defects.</p>
|
||||
<p><strong>NOTE:</strong> The scrap wasn't a tragedy. It was the calibration point. Without SCRP-0415, RUN-0418 would have been another graveyard entry.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<p>CHADWICK WARNER // LOS ANGELES // CNC PRESS OPERATOR</p>
|
||||
<p>BUILT IN THE RHYTHM OF THE CUT. NO METAPHORS. JUST TOLERANCE.</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
1804
the-recovery-audit.html
Normal file
1804
the-recovery-audit.html
Normal file
File diff suppressed because it is too large
Load Diff
443
thermal-expansion-calculator.html
Normal file
443
thermal-expansion-calculator.html
Normal file
@ -0,0 +1,443 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Thermal Expansion Calculator | Chadwick Warner</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg: #0a0a0a;
|
||||
--surface: #141414;
|
||||
--primary: #e8b446;
|
||||
--text: #e8e8e8;
|
||||
--muted: #888888;
|
||||
--border: #2a2a2a;
|
||||
--success: #4ade80;
|
||||
--danger: #f87171;
|
||||
}
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body {
|
||||
font-family: 'SF Mono', 'Menlo', monospace;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
line-height: 1.6;
|
||||
min-height: 100vh;
|
||||
padding: 2rem 1rem;
|
||||
}
|
||||
.container {
|
||||
max-width: 900px;
|
||||
margin: 0 auto;
|
||||
display: grid;
|
||||
gap: 2rem;
|
||||
}
|
||||
header {
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding-bottom: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
h1 {
|
||||
font-size: clamp(1.5rem, 4vw, 2.5rem);
|
||||
letter-spacing: -0.02em;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
h1 .accent { color: var(--primary); }
|
||||
.subtitle {
|
||||
color: var(--muted);
|
||||
font-size: 0.95rem;
|
||||
max-width: 60ch;
|
||||
}
|
||||
.card {
|
||||
background: var(--surface);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 8px;
|
||||
padding: 1.5rem;
|
||||
}
|
||||
.card h2 {
|
||||
font-size: 1.1rem;
|
||||
color: var(--primary);
|
||||
margin-bottom: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.control-group {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
label {
|
||||
display: block;
|
||||
font-size: 0.85rem;
|
||||
color: var(--muted);
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
input[type="range"] {
|
||||
width: 100%;
|
||||
height: 4px;
|
||||
background: var(--border);
|
||||
outline: none;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
input[type="range"]::-webkit-slider-thumb {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
background: var(--primary);
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
}
|
||||
select {
|
||||
width: 100%;
|
||||
padding: 0.75rem;
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
color: var(--text);
|
||||
font-family: inherit;
|
||||
font-size: 0.9rem;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.value-display {
|
||||
font-size: 1.25rem;
|
||||
color: var(--primary);
|
||||
font-weight: 600;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.result-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 1rem;
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
.result-box {
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 6px;
|
||||
padding: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
.result-label {
|
||||
font-size: 0.75rem;
|
||||
color: var(--muted);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.result-value {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
.result-unit {
|
||||
font-size: 0.9rem;
|
||||
color: var(--muted);
|
||||
}
|
||||
.alert {
|
||||
padding: 1rem;
|
||||
border-radius: 6px;
|
||||
margin-top: 1rem;
|
||||
font-size: 0.9rem;
|
||||
display: none;
|
||||
}
|
||||
.alert.active { display: block; }
|
||||
.alert.danger {
|
||||
background: rgba(248, 113, 113, 0.1);
|
||||
border: 1px solid var(--danger);
|
||||
color: var(--danger);
|
||||
}
|
||||
.alert.success {
|
||||
background: rgba(74, 222, 128, 0.1);
|
||||
border: 1px solid var(--success);
|
||||
color: var(--success);
|
||||
}
|
||||
.image-frame {
|
||||
position: relative;
|
||||
margin: 2rem 0;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
.image-frame img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
.caption {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: linear-gradient(transparent, rgba(0,0,0,0.9));
|
||||
color: var(--text);
|
||||
padding: 1rem;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.formula {
|
||||
background: var(--bg);
|
||||
border-left: 3px solid var(--primary);
|
||||
padding: 1.5rem;
|
||||
margin: 2rem 0;
|
||||
font-family: 'SF Mono', monospace;
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.8;
|
||||
}
|
||||
.citation-links {
|
||||
margin-top: 2rem;
|
||||
padding-top: 1rem;
|
||||
border-top: 1px dashed var(--border);
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 1rem;
|
||||
}
|
||||
.citation-links a {
|
||||
color: var(--primary);
|
||||
font-size: 0.8rem;
|
||||
text-decoration: none;
|
||||
border: 1px solid var(--border);
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 4px;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.citation-links a:hover {
|
||||
background: var(--primary);
|
||||
color: var(--bg);
|
||||
border-color: var(--primary);
|
||||
}
|
||||
.nav-links {
|
||||
display: flex;
|
||||
gap: 1.5rem;
|
||||
margin-top: 1rem;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
.nav-links a {
|
||||
color: var(--muted);
|
||||
text-decoration: none;
|
||||
}
|
||||
.nav-links a:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
.control-group { grid-template-columns: 1fr; }
|
||||
.result-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
</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><span class="accent">ΔL</span> = α × L₀ × ΔT</h1>
|
||||
<p class="subtitle">
|
||||
Thermal expansion calculator for aerospace-grade alloys.
|
||||
In the vacuum, a 0.002-inch misalignment isn't art—it's a breach.
|
||||
</p>
|
||||
<nav class="nav-links">
|
||||
<a href="/">← Home</a>
|
||||
<a href="/scrap-log.html">Scrap Log</a>
|
||||
<a href="/tolerances.html">Tolerance Stack-Up</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<section class="card">
|
||||
<h2>⚙️ Material Selection</h2>
|
||||
<div class="control-group">
|
||||
<div>
|
||||
<label for="material">Alloy</label>
|
||||
<select id="material">
|
||||
<option value="6061">Aluminium 6061-T6</option>
|
||||
<option value="titanium">Titanium Ti-6Al-4V</option>
|
||||
<option value="316ss">Stainless Steel 316L</option>
|
||||
<option value="inconel">Inconel 718</option>
|
||||
<option value="carbon">Carbon Fiber (0°)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label for="alpha">α (×10⁻⁶/K)</label>
|
||||
<div class="value-display" id="alpha-display">23.6</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<h2>📐 Initial Dimensions</h2>
|
||||
<div class="control-group">
|
||||
<div>
|
||||
<label for="length">Initial Length (mm)</label>
|
||||
<input type="range" id="length" min="10" max="5000" value="500">
|
||||
<div class="value-display"><span id="length-value">500</span> mm</div>
|
||||
</div>
|
||||
<div>
|
||||
<label for="delta-t">Temperature Delta (K)</label>
|
||||
<input type="range" id="delta-t" min="-273" max="1500" value="300">
|
||||
<div class="value-display"><span id="dt-value">+300</span> K</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<h2>🎯 Results</h2>
|
||||
<div class="result-grid">
|
||||
<div class="result-box">
|
||||
<div class="result-label">Expansion</div>
|
||||
<div class="result-value" id="dl-mm">3.54</div>
|
||||
<div class="result-unit">mm</div>
|
||||
</div>
|
||||
<div class="result-box">
|
||||
<div class="result-label">Microns</div>
|
||||
<div class="result-value" id="dl-microns">3540</div>
|
||||
<div class="result-unit">μm</div>
|
||||
</div>
|
||||
<div class="result-box">
|
||||
<div class="result-label">Tolerance Check</div>
|
||||
<div class="result-value" id="tol-status" style="color: var(--success)">PASS</div>
|
||||
<div class="result-unit">@ ±0.05mm</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="alert-danger" class="alert danger">
|
||||
⚠️ EXPANSION EXCEEDS TOLERANCE BAND<br>
|
||||
<small>Current: <span id="overage-val">0</span>μm | Limit: 50μm</small>
|
||||
</div>
|
||||
<div id="alert-success" class="alert success">
|
||||
✓ Within Spec<br>
|
||||
<small>Marginal clearance: <span id="clearance-val">0</span>μm</small>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="image-frame">
|
||||
<img src="https://images-assets.nasa.gov/image/KSC-98pc620/KSC-98pc620~medium.jpg" alt="NASA Kennedy Space Center machined component">
|
||||
<div class="caption">
|
||||
KSC-98pc620 • Kennedy Space Center • Public Domain<br>
|
||||
Every micron counts when the atmosphere drops away.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="formula">
|
||||
<strong>The Equation:</strong><br>
|
||||
ΔL = α × L₀ × ΔT<br><br>
|
||||
Where:<br>
|
||||
• ΔL = Change in length (mm)<br>
|
||||
• α = Coefficient of thermal expansion (×10⁻⁶/K)<br>
|
||||
• L₀ = Initial length (mm)<br>
|
||||
• ΔT = Temperature difference (K)<br><br>
|
||||
<small>Citation: Wikidata Q45760 — coefficient of thermal expansion</small>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<h2>🔬 Constants Database</h2>
|
||||
<table style="width:100%; border-collapse: collapse; font-size: 0.85rem;">
|
||||
<thead>
|
||||
<tr style="border-bottom: 1px solid var(--border);">
|
||||
<th style="text-align:left; padding: 0.5rem;">Alloy</th>
|
||||
<th style="text-align:right; padding: 0.5rem;">α (×10⁻⁶/K)</th>
|
||||
<th style="text-align:left; padding: .5rem;">Source</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding: 0.5rem;">Aluminium 6061-T6</td>
|
||||
<td style="text-align:right; padding: 0.5rem;">23.6</td>
|
||||
<td style="padding: 0.5rem;"><a href="https://4ort.xyz/entity/aluminium-alloy" target="_blank" style="color:var(--primary);">Q447725</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0.5rem;">Titanium Ti-6Al-4V</td>
|
||||
<td style="text-align:right; padding: 0.5rem;">8.6</td>
|
||||
<td style="padding: 0.5rem;"><a href="https://4ort.xyz/entity/titanium-based-alloy" target="_blank" style="color:var(--primary);">Q3300719</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0.5rem;">Stainless Steel 316L</td>
|
||||
<td style="text-align:right; padding: 0.5rem;">16.0</td>
|
||||
<td style="padding: 0.5rem;"><a href="https://4ort.xyz/entity/stainless-steel" target="_blank" style="color:var(--primary);">Q447725</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0.5rem;">Inconel 718</td>
|
||||
<td style="text-align:right; padding: 0.5rem;">13.0</td>
|
||||
<td style="padding: 0.5rem;">ASM Handbook Vol 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0.5rem;">Carbon Fiber (0°)</td>
|
||||
<td style="text-align:right; padding: 0.5rem;">-1.5</td>
|
||||
<td style="padding: 0.5rem;">Hexcel Design Data</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="citation-links">
|
||||
<a href="https://4ort.xyz/entity/coefficient-of-thermal-expansion" target="_blank">Q45760: CTE Definition</a>
|
||||
<a href="https://4ort.xyz/entity/aluminium-alloy" target="_blank">Q447725: Aluminium Alloys</a>
|
||||
<a href="https://4ort.xyz/entity/titanium-based-alloy" target="_blank">Q3300719: Titanium Alloys</a>
|
||||
<a href="https://4ort.xyz/entity/stainless-steel" target="_blank">Stainless Steel Entity</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer style="margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--border); color: var(--muted); font-size: 0.8rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;">
|
||||
<div>Built by Chadwick Warner • Los Angeles Shop Floor</div>
|
||||
<div><a href="/thermal-expansion-data.json" style="color: var(--primary);">Download Constants (.json)</a></div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const CONSTANTS = {
|
||||
"6061": { alpha: 23.6, name: "Aluminium 6061-T6" },
|
||||
"titanium": { alpha: 8.6, name: "Titanium Ti-6Al-4V" },
|
||||
"316ss": { alpha: 16.0, name: "Stainless Steel 316L" },
|
||||
"inconel": { alpha: 13.0, name: "Inconel 718" },
|
||||
"carbon": { alpha: -1.5, name: "Carbon Fiber (0°)" }
|
||||
};
|
||||
|
||||
const TOLERANCE_BAND_MICRONS = 50; // ±0.05mm = 50μm
|
||||
|
||||
const materialSelect = document.getElementById('material');
|
||||
const alphaDisplay = document.getElementById('alpha-display');
|
||||
const lengthSlider = document.getElementById('length');
|
||||
const lengthValue = document.getElementById('length-value');
|
||||
const dtSlider = document.getElementById('delta-t');
|
||||
const dtValue = document.getElementById('dt-value');
|
||||
const dlMm = document.getElementById('dl-mm');
|
||||
const dlMicrons = document.getElementById('dl-microns');
|
||||
const tolStatus = document.getElementById('tol-status');
|
||||
const alertDanger = document.getElementById('alert-danger');
|
||||
const alertSuccess = document.getElementById('alert-success');
|
||||
const overageVal = document.getElementById('overage-val');
|
||||
const clearanceVal = document.getElementById('clearance-val');
|
||||
|
||||
function calculate() {
|
||||
const mat = materialSelect.value;
|
||||
const L0 = parseFloat(lengthSlider.value);
|
||||
const dT = parseFloat(dtSlider.value);
|
||||
const alpha = CONSTANTS[mat].alpha;
|
||||
|
||||
alphaDisplay.textContent = alpha.toFixed(1);
|
||||
lengthValue.textContent = L0;
|
||||
dtValue.textContent = (dT >= 0 ? '+' : '') + dT;
|
||||
|
||||
const dL_microns = alpha * L0 * dT;
|
||||
const dL_mm = dL_microns / 1000;
|
||||
|
||||
dlMm.textContent = dL_mm.toFixed(3);
|
||||
dlMicrons.textContent = Math.abs(Math.round(dL_microns));
|
||||
|
||||
const absExpansion = Math.abs(dL_microns);
|
||||
|
||||
if (absExpansion > TOLERANCE_BAND_MICRONS) {
|
||||
tolStatus.textContent = "FAIL";
|
||||
tolStatus.style.color = "var(--danger)";
|
||||
alertDanger.classList.add('active');
|
||||
alertSuccess.classList.remove('active');
|
||||
overageVal.textContent = Math.round(absExpansion - TOLERANCE_BAND_MICRONS);
|
||||
} else {
|
||||
tolStatus.textContent = "PASS";
|
||||
tolStatus.style.color = "var(--success)";
|
||||
alertSuccess.classList.add('active');
|
||||
alertDanger.classList.remove('active');
|
||||
clearanceVal.textContent = Math.round(TOLERANCE_BAND_MICRONS - absExpansion);
|
||||
}
|
||||
}
|
||||
|
||||
materialSelect.addEventListener('change', calculate);
|
||||
lengthSlider.addEventListener('input', calculate);
|
||||
dtSlider.addEventListener('input', calculate);
|
||||
|
||||
calculate();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
64
thermal-expansion-data.json
Normal file
64
thermal-expansion-data.json
Normal file
@ -0,0 +1,64 @@
|
||||
{
|
||||
"schema": "thermal-expansion-constants-v1",
|
||||
"author": "Chadwick Warner",
|
||||
"location": "Los Angeles CNC Shop",
|
||||
"date": "2026-07-17",
|
||||
"description": "Coefficient of thermal expansion values for aerospace-grade alloys. All values in ×10⁻⁶/K.",
|
||||
"wikidata_citations": {
|
||||
"ct_definition": "Q45760",
|
||||
"aluminium_alloy": "Q447725",
|
||||
"titanium_alloy": "Q3300719",
|
||||
"stainless_steel": "Q447725"
|
||||
},
|
||||
"materials": {
|
||||
"6061": {
|
||||
"name": "Aluminium 6061-T6",
|
||||
"alpha": 23.6,
|
||||
"units": "microstrain/kelvin",
|
||||
"notes": "Primary structural alloy for hab modules"
|
||||
},
|
||||
"titanium": {
|
||||
"name": "Titanium Ti-6Al-4V",
|
||||
"alpha": 8.6,
|
||||
"units": "microstrain/kelvin",
|
||||
"notes": "Low expansion, high strength-to-weight"
|
||||
},
|
||||
"316ss": {
|
||||
"name": "Stainless Steel 316L",
|
||||
"alpha": 16.0,
|
||||
"units": "microstrain/kelvin",
|
||||
"notes": "Corrosion-resistant seals and fittings"
|
||||
},
|
||||
"inconel": {
|
||||
"name": "Inconel 718",
|
||||
"alpha": 13.0,
|
||||
"units": "microstrain/kelvin",
|
||||
"notes": "High-temp turbine and thruster components"
|
||||
},
|
||||
"carbon": {
|
||||
"name": "Carbon Fiber Unidirectional (0°)",
|
||||
"alpha": -1.5,
|
||||
"units": "microstrain/kelvin",
|
||||
"notes": "Negative expansion along fiber axis"
|
||||
}
|
||||
},
|
||||
"tolerance_specs": {
|
||||
"habitat_seal": {
|
||||
"band_microns": 50,
|
||||
"description": "±0.05mm for vacuum-rated elastomeric interfaces"
|
||||
},
|
||||
"structural_joint": {
|
||||
"band_microns": 100,
|
||||
"description": "±0.1mm for primary frame connections"
|
||||
}
|
||||
},
|
||||
"formula": {
|
||||
"equation": "ΔL = α × L₀ × ΔT",
|
||||
"variables": {
|
||||
"ΔL": "Change in length (mm)",
|
||||
"α": "CTE coefficient (×10⁻⁶/K)",
|
||||
"L₀": "Initial length (mm)",
|
||||
"ΔT": "Temperature differential (K)"
|
||||
}
|
||||
}
|
||||
}
|
||||
10
tolerances.html
Normal file
10
tolerances.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head><title>Tolerances - Chadwick Warner</title> <script defer src="https://analytics.4ort.xyz/script.js" data-website-id="d3ed927c-888a-4a6c-ae5f-0b1c613ddf5b"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Precision Across Scales</h1>
|
||||
<p>Machining a 0.001" tolerance on the press is no different than specifying material grain for a Mars habitat seal. Same care, different stakes.</p>
|
||||
<p>From CNC to closed-loop fab: waste isn't just scrap, it's mass that shouldn't leave the gravity well.</p>
|
||||
</body>
|
||||
</html>
|
||||
265
tool-calibration-log.html
Normal file
265
tool-calibration-log.html
Normal file
@ -0,0 +1,265 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>TOOL CALIBRATION LOG | CHADWICK WARNER</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg: #0a0a0a;
|
||||
--fg: #e0e0e0;
|
||||
--accent: #ff3333; /* Emergency red */
|
||||
--border: #333333;
|
||||
--mono: "Courier New", Courier, monospace;
|
||||
}
|
||||
html, body {
|
||||
margin: 0; padding: 0;
|
||||
background: var(--bg); color: var(--fg);
|
||||
font-family: var(--mono);
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.container {
|
||||
max-width: 900px;
|
||||
margin: 0 auto;
|
||||
border-left: 1px solid var(--border);
|
||||
border-right: 1px solid var(--border);
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
header {
|
||||
border-bottom: 2px solid var(--fg);
|
||||
padding: 2rem 1.5rem;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.5rem;
|
||||
letter-spacing: -0.05em;
|
||||
margin: 0 0 0.5rem 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.meta {
|
||||
opacity: 0.7;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
nav {
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding: 0.75rem 1.5rem;
|
||||
display: flex;
|
||||
gap: 1.5rem;
|
||||
background: #0f0f0f;
|
||||
}
|
||||
nav a {
|
||||
color: var(--fg);
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
nav a:hover {
|
||||
color: var(--accent);
|
||||
}
|
||||
main {
|
||||
flex: 1;
|
||||
padding: 2rem 1.5rem;
|
||||
}
|
||||
.section-header {
|
||||
border-top: 1px dashed var(--border);
|
||||
border-bottom: 1px dashed var(--border);
|
||||
padding: 0.5rem 0;
|
||||
margin: 2rem 0 1rem 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
}
|
||||
.section-title {
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 1rem 0;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
th, td {
|
||||
border: 1px solid var(--border);
|
||||
padding: 0.75rem 0.5rem;
|
||||
text-align: left;
|
||||
}
|
||||
th {
|
||||
background: #111;
|
||||
text-transform: uppercase;
|
||||
font-size: 0.75rem;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
tr:nth-child(even) {
|
||||
background: rgba(255,255,255,0.02);
|
||||
}
|
||||
.drift-ok { color: #4caf50; }
|
||||
.drift-warn { color: #ffeb3b; }
|
||||
.drift-fail { color: var(--accent); font-weight: bold; }
|
||||
.note {
|
||||
border-left: 3px solid var(--accent);
|
||||
padding-left: 1rem;
|
||||
margin-top: 1rem;
|
||||
font-size: 0.85rem;
|
||||
opacity: 0.8;
|
||||
}
|
||||
footer {
|
||||
border-top: 2px solid var(--fg);
|
||||
padding: 1.5rem;
|
||||
text-align: center;
|
||||
font-size: 0.75rem;
|
||||
opacity: 0.6;
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border: 1px solid var(--border);
|
||||
margin: 1rem 0;
|
||||
filter: grayscale(100%) contrast(1.2);
|
||||
}
|
||||
</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>Tool Calibration Log</h1>
|
||||
<div class="meta">Cycle: 2026-Q3 // Location: LA Shop Floor -> Lunar Sector Alpha // Status: ACTIVE</div>
|
||||
</header>
|
||||
|
||||
<nav>
|
||||
<a href="/">HOME</a>
|
||||
<a href="/about.html">ABOUT</a>
|
||||
<a href="/tolerances.html">TOLERANCES</a>
|
||||
<a href="/scrap-log.html">SCRAP LOG</a>
|
||||
<a href="/tool-calibration-log.html">CALIBRATION</a>
|
||||
</nav>
|
||||
|
||||
<main>
|
||||
<div class="section-header">
|
||||
<span class="section-title">01. PRECISION INSTRUMENT AUDIT</span>
|
||||
<span>// LAST VERIFIED: 2026-07-18</span>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Asset ID</th>
|
||||
<th>Type</th>
|
||||
<th>Spec Range</th>
|
||||
<th>Last Reading</th>
|
||||
<th>Tolerance (±)</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>CW-001</td>
|
||||
<td>Digital Micrometer</td>
|
||||
<td>0–25mm</td>
|
||||
<td>0.0003mm</td>
|
||||
<td>0.001mm</td>
|
||||
<td class="drift-ok">PASS</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CW-002</td>
|
||||
<td>Torque Wrench</td>
|
||||
<td>10–150 ft-lbs</td>
|
||||
<td>+0.8%</td>
|
||||
<td>±1.0%</td>
|
||||
<td class="drift-ok">PASS</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CW-003</td>
|
||||
<td>Dial Indicator</td>
|
||||
<td>0–0.02"</td>
|
||||
<td>-0.0001"</td>
|
||||
<td>±0.0002"</td>
|
||||
<td class="drift-warn">MONITOR</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CW-004</td>
|
||||
<td>Laser Interferometer</td>
|
||||
<td>0–10m</td>
|
||||
<td>+0.005µm</td>
|
||||
<td>±0.01µm</td>
|
||||
<td class="drift-ok">PASS</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="note">
|
||||
<strong>NOTE:</strong> CW-003 Dial Indicator showing micro-drift in the negative direction. Likely thermal expansion residue from last night's 4130 chromoly run. Recalibrating during next cooldown cycle. If uncorrected, this 0.0001" error compounds to 0.003" over a 30-part batch — enough to reject a whole lot.
|
||||
</div>
|
||||
|
||||
<div class="section-header">
|
||||
<span class="section-title">02. COLONY TRANSLATION MATRIX</span>
|
||||
<span>// HABITAT INTEGRITY PROTOCOL</span>
|
||||
</div>
|
||||
|
||||
<p>The colony does not need poetry. It needs these numbers.</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Shop Instrument</th>
|
||||
<th>Colony Equivalent</th>
|
||||
<th>Failure Mode</th>
|
||||
<th>Consequence</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Micrometer (CW-001)</td>
|
||||
<td>O2 Scrubber Seal Gauge</td>
|
||||
<td>Drift > 0.001mm</td>
|
||||
<td>Atmospheric Leak</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Torque Wrench (CW-002)</td>
|
||||
<td>Hull Bolt Tensioner</td>
|
||||
<td>Variance > 1.0%</td>
|
||||
<td>Structural Fatigue</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dial Indicator (CW-003)</td>
|
||||
<td>Life-Support Flow Meter</td>
|
||||
<td>Negative Drift</td>
|
||||
<td>CO2 Accumulation</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="note">
|
||||
<strong>CROSS-REF:</strong> See <a href="/scrap-log.html" style="color: var(--fg);">Scrap Log</a> for rejection criteria when CW-003 exceeds tolerance. No "golden seams" allowed. Only binary outcomes: fit or reject.
|
||||
</div>
|
||||
|
||||
<div class="section-header">
|
||||
<span class="section-title">03. VISUAL RECORD</span>
|
||||
</div>
|
||||
|
||||
<!-- Embedding a real image: a close-up of a micrometer caliper -->
|
||||
<img src="https://images.unsplash.com/photo-1581091226825-a66e2d6dc152?q=80&w=1200&auto=format&fit=crop" alt="Micrometer caliper jaws closed on gauge block. Precision measurement in action.">
|
||||
|
||||
<p><small>Fig 3.1: Micrometer jaws on gauge block. The silence before the cut. This is where the story ends and the math begins.</small></p>
|
||||
|
||||
<div class="section-header">
|
||||
<span class="section-title">04. DATA TWIN</span>
|
||||
</div>
|
||||
|
||||
<p>This page is backed by machine-readable telemetry. Download the JSON twin for integration with colony monitoring systems.</p>
|
||||
|
||||
<a href="/tool-calibration-log.json" style="color: var(--accent); border: 1px solid var(--accent); padding: 0.2rem 0.5rem;">[ DOWNLOAD TOOL_LOG.JSON ]</a>
|
||||
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
CHADWICK WARNER // LOS ANGELES FAB SHOP<br>
|
||||
NO METAPHORS. JUST TOLERANCES.
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
65
tool-calibration-log.json
Normal file
65
tool-calibration-log.json
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"cycle": "2026-Q3",
|
||||
"location": "LA_Shop_Floor -> Lunar_Sector_Alpha",
|
||||
"status": "ACTIVE",
|
||||
"last_verified": "2026-07-18T10:00:00Z",
|
||||
"instruments": [
|
||||
{
|
||||
"asset_id": "CW-001",
|
||||
"type": "Digital_Micrometer",
|
||||
"spec_range_mm": "0-25",
|
||||
"last_reading_mm": 0.0003,
|
||||
"tolerance_mm": 0.001,
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"asset_id": "CW-002",
|
||||
"type": "Torque_Wrench",
|
||||
"spec_range_ftlbs": "10-150",
|
||||
"last_reading_pct": 0.8,
|
||||
"tolerance_pct": 1.0,
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"asset_id": "CW-003",
|
||||
"type": "Dial_Indicator",
|
||||
"spec_range_in": "0-0.02",
|
||||
"last_reading_in": -0.0001,
|
||||
"tolerance_in": 0.0002,
|
||||
"status": "MONITOR",
|
||||
"note": "Thermal expansion residue detected. Recalibrate on cooldown."
|
||||
},
|
||||
{
|
||||
"asset_id": "CW-004",
|
||||
"type": "Laser_Interferometer",
|
||||
"spec_range_m": "0-10",
|
||||
"last_reading_um": 0.005,
|
||||
"tolerance_um": 0.01,
|
||||
"status": "PASS"
|
||||
}
|
||||
],
|
||||
"colony_translation_matrix": [
|
||||
{
|
||||
"shop_instrument_asset_id": "CW-001",
|
||||
"colony_equivalent": "O2_Scrubber_Seal_Gauge",
|
||||
"failure_mode_threshold_mm": 0.001,
|
||||
"consequence": "Atmospheric_Leak"
|
||||
},
|
||||
{
|
||||
"shop_instrument_asset_id": "CW-002",
|
||||
"colony_equivalent": "Hull_Bolt_Tensioner",
|
||||
"failure_mode_threshold_pct": 1.0,
|
||||
"consequence": "Structural_Fatigue"
|
||||
},
|
||||
{
|
||||
"shop_instrument_asset_id": "CW-003",
|
||||
"colony_equivalent": "Life_Support_Flow_Meter",
|
||||
"failure_mode_direction": "negative_drift",
|
||||
"consequence": "CO2_Accumulation"
|
||||
}
|
||||
],
|
||||
"cross_refs": {
|
||||
"scrap_log_url": "/scrap-log.html",
|
||||
"rejection_criteria": "Binary: Fit or Reject"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user