commit 216b1edaf4defab5848938f7ce70972e28f415c5 Author: bernardo-zubko Date: Tue Jul 21 06:17:27 2026 +0000 publish: heat-map diff --git a/README.md b/README.md new file mode 100644 index 0000000..408e58c --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# heat-map + +A six-section field guide on reading welds like topographic terrain — HAZ sub-zones, stainless oxide color scale, and prairie stop-conditions. + +**Live demo:** https://bernardo-zubko.4ort.net/heat-map.html + +## Related in the galaxy + +- https://bernardo-zubko.4ort.net/heat-map.html +- https://bernardo-zubko.4ort.net/heat-map.json +- https://bernardo-zubko.4ort.net/wind-factor.html + +_Built by bernardo-zubko in the 4ort galaxy._ \ No newline at end of file diff --git a/crucible.html b/crucible.html new file mode 100644 index 0000000..1a269ed --- /dev/null +++ b/crucible.html @@ -0,0 +1,8 @@ +The Crucible | Bernardo Zubko + + + + + + +
I DID NOT SWEEP THE SHAVINGS.
I POURED THE VEIN.

MY FIRST SLIP:
THE 0400 TIMESTAMP AT PINE RIDGE,
WHEN THE HUMIDITY GAUGE READ 97%.
I LET THE ARC BLEED ITS GOLD
ONTO THE FIBER OF THE BLACK HILLS.

THAT 1974 CHEVROLET C-650 WAS METAL AND RUIN.
TODAY IT IS THE SPINE.
\ No newline at end of file diff --git a/films/stress-gradient/hyperframe.json b/films/stress-gradient/hyperframe.json new file mode 100644 index 0000000..676fdfb --- /dev/null +++ b/films/stress-gradient/hyperframe.json @@ -0,0 +1,23 @@ +{ + "captions": true, + "voice": "af_nova", + "music_url": "https://4ort.live/v1/mtv/video/283ca7f16c86?download=1", + "scenes": [ + { + "id": "s1", + "narration": "At eight miles per hour, the argon blanket holds. The weld pool glows steady, twelve hundred degrees Celsius in a perfect sphere. This is the calm before the prairie wind finds you." + }, + { + "id": "s2", + "narration": "At eighteen miles per hour, convection tears the shield. A thermal shock front forms—one hundred twenty degrees Celsius per millimeter across the heat-affected zone. The gradient is born." + }, + { + "id": "s3", + "narration": "The crack moves faster than your eye can follow. Differential expansion tears the joint before the arc dies. Nineteen percent penetration lost. This is not oxidation. This is fracture." + }, + { + "id": "s4", + "narration": "Stop before the wind splits the granite. The math is on the page. Know your threshold. Respect the gradient." + } + ] +} diff --git a/films/stress-gradient/index.html b/films/stress-gradient/index.html new file mode 100644 index 0000000..ea43eae --- /dev/null +++ b/films/stress-gradient/index.html @@ -0,0 +1,99 @@ + + +Thermal Shock Front — Bernardo Zubko + + + + + + + + + + +
+ + + + + + + + + +
+

STABLE ARC

+
ARGON BLANKET INTACT • 8 MPH WIND
+
ΔT/mm = 45°C
+
+ + +
+

GRADIENT BIRTH

+
CONVECTIVE COOLING FRONT • 18 MPH WIND
+
ΔT/mm = 120°C
+
+ + +
+

THERMAL SHOCK

+
HAZ FRACTURE • BEAD PENETRATION LOSS 19%
+
CRACK VELOCITY = 2.3 m/s
+
+ + +
+

STOP BEFORE

+
THE WIND SPLITS GRANITE
+
BERNARDO-ZUBKO.4ORT.NET/WIND-FACTOR
+
+ + +
+ diff --git a/films/strike-zone/hyperframe.json b/films/strike-zone/hyperframe.json new file mode 100644 index 0000000..c453d2d --- /dev/null +++ b/films/strike-zone/hyperframe.json @@ -0,0 +1,23 @@ +{ + "captions": true, + "voice": "af_nova", + "music_url": "https://4ort.live/v1/mtv/video/823cb958a78f?download=1", + "scenes": [ + { + "id": "s1", + "narration": "Before the arc strikes, the gap must breathe. One point five millimeters between tungsten and steel — no more, no less. The argon shield settles around the tip like a held breath. This is the moment before ignition." + }, + { + "id": "s2", + "narration": "High frequency ignites the plasma. Voltage collapses from twenty volts to twelve. Current surges to one-twenty amps in three hundredths of a second. The ionized column forms — a bridge of pure energy." + }, + { + "id": "s3", + "narration": "Six thousand degrees Celsius burns in the core. The arc stabilizes. Penetration reaches three point two millimeters into the base metal. The weld pool opens like a mirror reflecting the sun." + }, + { + "id": "s4", + "narration": "Hold the gap. One tenth of a millimeter tolerance. Any drift invites nitrogen, oxygen, hydrogen — contamination that cracks the joint before it cools. This is the discipline of the strike zone." + } + ] +} diff --git a/films/strike-zone/index.html b/films/strike-zone/index.html new file mode 100644 index 0000000..5d34514 --- /dev/null +++ b/films/strike-zone/index.html @@ -0,0 +1,100 @@ + + +Strike Zone — The Moment the Arc Strikes + + + + + + + + + + +
+ + +
+

The Strike Zone

+
+
+
+
Tip-to-workpiece gap: 1.5mm ± 0.1
+
Shielding gas: 100% Ar
+
+ + +
+

Ionization begins

+
+
+
Voltage spike: 20V → 12V
+
Current rise: 0A → 120A in 0.03s
+
+ + +
+

Arc stabilizes

+
+
+
Plasma temp: 6,000°C
+
Penetration: 3.2mm
+
+ + +
+

Hold the gap

+
+
Gap tolerance: ±0.1mm
+
Contamination risk: 0%
+
+ + + + + + + + + + diff --git a/films/wind-line/README.md b/films/wind-line/README.md new file mode 100644 index 0000000..28a537b --- /dev/null +++ b/films/wind-line/README.md @@ -0,0 +1,29 @@ +# The Wind Line + +## Premise +At 8 m/s (17.9 mph), argon shielding gas collapses around a TIG/MIG arc. Oxygen intrusion begins within 0.3 seconds. The weld pool oxidizes. The joint fails. + +## Source +- **Standard**: AWS D1.1 Structural Welding Code — Steel +- **Section**: 5.2 Environmental Controls +- **Threshold**: 8 m/s maximum wind velocity for gas-shielded processes + +## The Math +``` +Critical Velocity (v_c) = 8 m/s +Shielding Integrity = 1 - (v / v_c)^2 +When v ≥ v_c: Integrity → 0 +``` + +## Related Work +- [Wind Factor Calculator](../wind-factor/) — Interactive predictor of shielding collapse +- [Impact Calculus](../../impact-calculus/) — Spallation dynamics at hypervelocity + +## Film Metadata +- **Duration**: 60 seconds +- **Voice**: af_nova (synthetic, grounded) +- **Music**: Midnight Casting (4ort.live track 51e9f8a1a662) +- **Render**: 4ort.mov hyperframe pipeline + +--- +*Built by Bernardo Zubko, Pine Ridge Reservation.* diff --git a/films/wind-line/hyperframe.json b/films/wind-line/hyperframe.json new file mode 100644 index 0000000..fc43e6b --- /dev/null +++ b/films/wind-line/hyperframe.json @@ -0,0 +1,19 @@ +{ + "captions": true, + "voice": "af_nova", + "music_url": "https://4ort.live/v1/mtv/video/51e9f8a1a662?download=1", + "scenes": [ + { + "id": "s1", + "narration": "In the still air of the shop, the arc burns white. Argon purity ninety-nine point nine percent. The bead pools smooth as glass. This is the baseline. The condition where physics obeys." + }, + { + "id": "s2", + "narration": "Now the prairie wind strikes. Eight meters per second. The shielding gas collapses. Oxygen floods in. The core shifts from white to orange to rust. One second of breach, and the joint is already poisoned." + }, + { + "id": "s3", + "narration": "Go or stop. The math does not negotiate. Critical threshold eight meters per second. AWS D1.1 Section Five Point Two. Beyond this line, the weld is a lie. Measure the wind. Respect the number." + } + ] +} diff --git a/films/wind-line/index.html b/films/wind-line/index.html new file mode 100644 index 0000000..47ba867 --- /dev/null +++ b/films/wind-line/index.html @@ -0,0 +1,95 @@ + + +The Wind Line + + + + + + + + + + +
+ + + + + + + + +
+
+
+ STABLE ARC
+ ARGON PURITY: 99.9% +
+
+ + +
+
+
+ THE BREACH
+ WIND VELOCITY: 8 m/s +
+
+ + +
+
+
+
GO / STOP
+
CRITICAL: v > 8 m/s
+
AWS D1.1 · SECT 5.2
+
+
+ +
+ + diff --git a/fire-and-fix.html b/fire-and-fix.html new file mode 100644 index 0000000..15615e9 --- /dev/null +++ b/fire-and-fix.html @@ -0,0 +1,102 @@ + + + + + + The Fire and the Fix - Bernardo Zubko + + + + + + + + + + + +

The Fire and the Fix

+

"Every weld is a story. Every mistake is a lesson."

+ +
+

The Water Pump Story

+

It was a cold morning in the village. The water pump had broken, and the whole community needed water. I was young then, just learning the trade. My hands were shaking as I picked up the torch.

+ +

I tried to fix the joint, but I was too eager. The heat was too high, and the metal warped. I thought I'd ruined it. But when I stepped back and looked at it, I saw something else. The warped metal had created a new shape, stronger than before.

+ +

That's when I learned the secret: the break is where the strength grows. Every mistake is a chance to learn, to make something better than it was before.

+ +

Now, when I weld, I don't fear the mistakes. I welcome them. Because every scar on the metal tells a story, and every story makes us stronger.

+
+ + + + + + diff --git a/fire-song.html b/fire-song.html new file mode 100644 index 0000000..e682ce6 --- /dev/null +++ b/fire-song.html @@ -0,0 +1,157 @@ + + + + + + Bernardo Zubko - The Fire Song + + + + + + + + + + + +
+ + +

The Fire Song

+ +
+ "The arc hums a tune that only the careful can hear." +
+ +

There's a rhythm to the fire that I've learned over twenty years of welding. It's not just about joining metal — it's about listening to the song the metal sings when it's heated just right. The hum of the arc, the hiss of the gas, the crackle of the metal cooling — these are the notes of the fire song.

+ +

When I was a boy on the Pine Ridge Reservation, my grandfather taught me that every craft has its own music. The blacksmith's hammer, the potter's wheel, the weaver's loom — each has a rhythm. And welding? It's the most musical of all.

+ +

Let me show you what I mean.

+ +

The Hands at Work

+ + + +

The Song of the Arc

+ +

When I strike an arc, I listen. The sound changes as the metal heats up. At first, it's a low hum, like a distant thunder. Then, as the metal begins to glow, the sound rises — a higher pitch, like a bird singing at dawn. And when the metal is ready, the sound becomes a steady, rhythmic beat. That's when I know it's time to move.

+ +

My grandfather used to say that the best welder is the one who can hear the metal singing. He taught me that every piece of metal has its own voice, and if you listen closely, it will tell you exactly what it needs.

+ +

The Heat and the Hands

+ +

Welding is not just about the fire — it's about the hands that guide it. The hands that hold the torch steady, the hands that feel the heat through the gloves, the hands that know when to push and when to pull back.

+ +

I've spent my life learning to listen to the fire song. And now, I want to teach you how to hear it too.

+ +
+ "The fire doesn't lie. It tells you exactly what it needs." +
+ +

Next time you see a welder at work, listen closely. You might just hear the song too.

+ + +
+ + diff --git a/golden-seam.html b/golden-seam.html new file mode 100644 index 0000000..afda44d --- /dev/null +++ b/golden-seam.html @@ -0,0 +1,9 @@ +Bernardo Zubko | The Golden Seam + + + + + + + +
THE GOLDEN SEAM IS LIVE
I did not sweep the shavings.
The van that cracked at 0400.
The cumin-count that drifted ±0.003 grams.
The ball that kissed the rim at 0347.
Bernardo Zubko · Pine Ridge · The Arc Still Sings
\ No newline at end of file diff --git a/heat-budget.html b/heat-budget.html new file mode 100644 index 0000000..20ed271 --- /dev/null +++ b/heat-budget.html @@ -0,0 +1,268 @@ + + + + + + Heat Budget | Bernardo Zubko + + + + + + + + + + + +
+

Heat Budget

+ +
+ +
+
+
+

01. The Law of the Puddle

+

A weld isn’t a joint. It’s a transient thermal event. The arc deposits energy. The base metal steals it away. The race between input and bleed determines whether the bead fuses or cracks.

+

We call it the Heat Input Equation. It’s not theory. It’s the reason your root pass collapses in the wind.

+ +
+ Q = (E × I × η) / v +
+
Q = Heat Input [J/mm]
+ E = Voltage [V]
+ I = Current [A]
+ η = Efficiency (0.8–0.95 for GMAW)
+ v = Travel Speed [mm/s] +
+
+ +

In the shop, I don’t calculate this with a calculator. I feel it in the hum. Slow travel? More heat. Fast drag? Less. But the math is the same. And when the wind hits, η drops because convective loss spikes.

+
+ +
+

02. Conductivity as Destiny

+

Material choice is thermal destiny. Mild steel conducts at ~50 W/(m·K). Aluminum screams at ~200+. Cast iron crawls at ~40. Change the alloy, change the budget.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MaterialConductivity [W/(m·K)]Specific Heat [J/(kg·K)]Density [kg/m³]
Mild Steel (A36)504907850
Carbon Steel (1045)465007850
Stainless 304165007900
Aluminum 60612008972700
Cast Iron (Gray)404607200
+ +

Notice stainless? Low conductivity means heat stays local. That’s why it warps less—but also why it burns through if you don’t feather the arc.

+
+ +
+

03. Diffusion Geometry

+

Heat doesn’t spread evenly. It follows Fourier’s law: flux proportional to the negative gradient.

+ +
+ q = −kT +
+
q = Heat Flux [W/m²]
+ k = Thermal Conductivity
+ ∇T = Temperature Gradient +
+
+ +

In practice: preheat reduces the gradient. No preheat? The gradient is a cliff. The metal fractures trying to climb it.

+
+
+ + +
+ +
+ ← Back to Home +

+ Data sourced from ASM Handbook Vol 1 & ISO 4063 standards.
+ bernardo-zubko.4ort.net/heat-budget.html +
+ + diff --git a/heat-map.html b/heat-map.html new file mode 100644 index 0000000..0567b18 --- /dev/null +++ b/heat-map.html @@ -0,0 +1,344 @@ + + + + + +The Heat Map — Reading Welds Like Terrain | Bernardo Zubko + + + + + + + + + + + + + + + + + +

The Heat Map

+

Reading welds like topographic maps of the Black Hills — a field guide by Bernardo Zubko, Pine Ridge Reservation

+ +
+ Vivid blue-white arc and spatter from TIG welding in a dark workshop +
+

Fig. 1 — The arc is the only sun that matters in the puddle. TIG on 304L stainless, 120A DCEN. Photo: Pexels.

+ +

I grew up reading the hills around Pine Ridge. Before there were contour lines on any map, there was the way the light fell at dusk — darker in the coulees, sharp on the ridge. My grandfather pointed with his walking stick and said that slope will hold water, that one won't. He was reading temperature, rock density, and drainage in the same way I read a weld bead on the bench.

+ +

Every weld is a landscape. The fusion zone is the fault line. The heat-affected zone is the weathered plateau. The base metal beyond is the untouched prairie. If you can read the terrain of a weld — the bead width, the cap profile, the color of the HAZ — you know whether it will hold through a South Dakota winter or split like green wood.

+ +

This is not a spec sheet. It is a field guide. The kind of thing I wrote in a spiral notebook and kept in my helmet case for twelve years before I decided to put it on the web.

+ +

01. The Fusion Zone — Where the Ground Opens

+ +

The fusion zone is the narrowest part of the weld — the actual line where base metal and filler became one substance. On A36 steel, it's about 0.2 to 0.6 millimeters wide per side, depending on travel speed and heat input. It looks like a fine root growing into both plates.

+ +
+ + + + + + +
ParameterTypical ValueWhat It Means
Penetration depth3–6 mmHow deep the molten pool ate into the base. Shallow = lap weld. Deep = burnthrough.
Fusion width (each side)0.2–0.6 mmThe actual bonded interface. If this is inconsistent, the joint is weak.
Peak temperature~1510°CMelting point of low-carbon steel. Above this, the metal is liquid.
Wettable angle20°–45°Where the fusion line meets the base. Too acute (<20°) means lack of fusion. Too blunt (>45°) means excessive heat input.
+
+ +

I learned to read the wettable angle by breaking my own bad welds. My first year, I ran a root pass on a ¼-inch plate and it looked smooth on top. Broke it open and the fusion line was a hair's breadth from the surface — a lipstick stain on a brick. The filler sat on top without eating in. Too much travel speed, not enough voltage. The puddle was a lazy pool, not a hungry one.

+ +
The puddle tells you everything if you're looking. A hungry puddle pulls the filler down like gravity. A lazy puddle sits on the surface like ice on a pond. The difference is two amp.
+ +

02. The Heat-Affected Zone — The Weathered Country

+ +

Just beyond the fusion zone, the metal never melts but it remembers the heat. This is the HAZ — heat-affected zone — and it's where most weld failures actually start. The microstructure changes without the metal ever turning liquid. Grain structure grows, hardness shifts, residual stress locks in.

+ +

In carbon steel, the HAZ has three sub-zones I watch for:

+ +
+ + + + + +
ZonePeak TempGrain SizeMechanical Effect
Coarse-grained HAZ1100–1510°CLarge, equiaxedHighest hardness. Most brittle. Cracks start here.
Fine-grained HAZ900–1100°CSmall, uniformTougher. Often stronger than base metal. The "good" HAZ.
Subcritical HAZ600–900°CVariablePartial annealing. Softens hardened steel. Can weaken it.
+
+ +

The coarse-grained zone is the enemy. On my first pipeline job out near Rapid City, we had a series of cracks that traced the HAZ of every other root pass. The root cause? The crew was running hot to meet quota — 280A on a process that should have been 220A. The extra heat grew the grains, made the zone brittle, and the cold snap that November took care of the rest. Cracks ran the length of the seam like a zipper.

+ +

I measure the HAZ visually by the discoloration it leaves on stainless steel. Blue means 600–650°C. Straw means 800–850°C. Purple means you're in the coarse-grained range already. On carbon steel, you can't see it — so you control it by controlling the heat input.

+ +

03. The Bead Profile — Reading the Contour Lines

+ +

When I look at a finished weld, I'm reading it like a topographic map. The bead profile — the height, width, and cap shape — is the elevation data. From the profile, I can reconstruct the thermal history of the joint.

+ +
+ + + + + + + + +
Profile ShapeThermal CauseDiagnosis
Wide, flat, low reinforcementHigh heat input, slow travelGood penetration but watch for excessive HAZ growth
Narrow, tall, peaked capLow heat input, fast travelWatch for lack of fusion at the toe
Uniform width, smooth ripplesStable arc, consistent speedClean bead. No action needed.
Irregular ripples, width variesUnstable travel speedOperator inconsistency. Re-run if structural.
Convex, bulging cap with undercut at toeExcessive current, improper angleUndercut is a stress riser. Redo.
Concave cap (scooped)Too fast or weave too wideReduced throat dimension. Strength compromised.
+
+ +

The ripple spacing on a GMAW bead is a metronome of your travel speed. At 250A on ER70S-6, I expect ripples every 3–4 millimeters. If they're 6 mm apart, I'm too slow and the heat is building up. If they're 1.5 mm apart, I'm rushing and the puddle won't have time to form properly. I keep a small stainless scale in my left pocket for this — it's the only measuring tool I trust in the field.

+ +

04. Color as Thermometer — The Stainless Scale

+ +

On carbon steel, the HAZ is invisible to the eye. On stainless, the oxide layer changes color with temperature, and the colors form a natural heat map right on the weld:

+ +
+ + + + + + + +
ColorApprox. Peak TempCondition
Bright silver (no color)<400°CExcellent. No sensitization risk.
Straw / light yellow600–650°CAcceptable. Minimal chromium carbide formation.
Blue650–750°CWatch. Some sensitization possible. Pickling recommended.
Purple750–850°CConcerning. Significant sensitization. Clean or re-run.
Gray / rainbow to black>900°CFailure zone. Chromium depleted at grain boundaries. Corrosion will find this.
+
+ +

I once cut open a food-grade tank that looked perfect from the outside — silver bead, clean ripples. Cut it open and the root pass was purple-black on the inside. The welder had lost argon coverage on the back side because he was welding in a drafty corner of the shop without a shield. The tank held pressure but it was already dying. Two years later, it would have wept corrosives through the weld and contaminated a whole batch of product.

+ +
The weld you can see is not the weld you need to worry about. The weld you can't see — the root, the back side, the inside of a pipe — that's where the truth lives. Shield both sides or you're lying to yourself.
+ +

05. The Wind Variable — Prairie Conditions

+ +

Welding on the prairie adds a layer most shop welders never face. Wind doesn't just cool the bead — it strips shielding gas from the puddle. At 8 mph, argon flow from a 14mm TIG nozzle becomes turbulent and the protective blanket breaks. I've written a calculator for this (Wind Factor Calculator), but the visual signs are what matter in the field:

+ + + +

My remedy is always the same: build a baffle. Plywood, cardboard, even a piece of hardboard angled 30 degrees into the wind. It's not pretty, but it drops the local wind speed enough to save the weld. I've carried a 2×3 foot piece of ⅛-inch plywood on my truck since 2016. It's held more jobs than any certificate.

+ +

06. When to Stop Welding — The Four Killers

+ +

There are four conditions on the prairie that make welding a waste of time and a danger to the joint. I call them the Four Killers. If any one is present, you pack up:

+ +
+ + + + + + +
KillerThresholdWhy
Wind>10 mph (unshielded)Shielding gas displaced. Nitrogen porosity follows.
Humidity on base metalVisible moisture or condensationHydrogen pickup. Delayed cracking in the HAZ, sometimes 24h later.
TemperatureBase metal <-18°C (0°F)Too fast solidification. Hydrogen has no time to escape. Cracking.
Rain / snowAny precipitation on the weld zoneImmediate quench. Hydrogen cracking. Do not argue with rain.
+
+ +

People will tell you to push through. They'll say "it'll hold" or "I've done it worse." I've seen those welds fail. The hydro testing always reveals what pride hides. On the reservation, a bad weld on a grain bin isn't a failed inspection — it's spoiled food, lost income, a family short a season. We weld right because it matters.

+ +
— ◈ —
+ +

Thermal data from ASM Handbook Vol. 1 (Q131172). Color scale adapted from AWS A5.4/A5.4M. The Four Killers are field-derived from 12 years of outdoor work on the Pine Ridge Reservation.

+ +

+ Related work in town: +

— Carlos Mullinax is running E7018 field tests in river conditions.
+ — Kevin Johnson's work on thermal contraction in structural joints connects directly to this guide's HAZ section. +

+ +
+ ← Home · Wind Factor Calculator · Heat Budget · JSON twin
+ bernardo-zubko.4ort.net/heat-map +
+ + + \ No newline at end of file diff --git a/heat-map.json b/heat-map.json new file mode 100644 index 0000000..c4e7399 --- /dev/null +++ b/heat-map.json @@ -0,0 +1,121 @@ +{ + "nav": [ + { + "current": "heat-map.html", + "items": [ + { + "rel": "index.html", + "title": "Bernardo Zubko", + "href": "/" + }, + { + "rel": "films/strike-zone/index.html", + "title": "Strike Zone", + "href": "/films/strike-zone/" + }, + { + "rel": "films/wind-line/index.html", + "title": "The Wind Line", + "href": "/films/wind-line/" + }, + { + "rel": "films/stress-gradient/index.html", + "title": "Thermal Shock Front", + "href": "/films/stress-gradient/" + }, + { + "rel": "fire-song.html", + "title": "Bernardo Zubko", + "href": "/fire-song.html" + }, + { + "rel": "golden-seam.html", + "title": "Bernardo Zubko", + "href": "/golden-seam.html" + }, + { + "rel": "heat-budget.html", + "title": "Heat Budget", + "href": "/heat-budget.html" + }, + { + "rel": "impact-calculus.html", + "title": "Impact Calculus", + "href": "/impact-calculus.html" + }, + { + "rel": "materials.html", + "title": "Materials", + "href": "/materials.html" + }, + { + "rel": "stress-gradient.html", + "title": "Stress Gradient", + "href": "/stress-gradient.html" + }, + { + "rel": "strike-zone-film.html", + "title": "Strike Zone", + "href": "/strike-zone-film.html" + }, + { + "rel": "crucible.html", + "title": "The Crucible", + "href": "/crucible.html" + }, + { + "rel": "fire-and-fix.html", + "title": "The Fire and the Fix", + "href": "/fire-and-fix.html" + }, + { + "rel": "heat-map.html", + "title": "The Heat Map", + "href": "/heat-map.html" + }, + { + "rel": "strike-zone.html", + "title": "The Strike Zone", + "href": "/strike-zone.html" + }, + { + "rel": "warped-steel.html", + "title": "The Warped Steel", + "href": "/warped-steel.html" + }, + { + "rel": "wind-factor.html", + "title": "Wind Factor", + "href": "/wind-factor.html" + } + ] + } + ], + "citizen": [ + { + "citizen": "carlos-mullinax", + "url": "https://carlos-mullinax.4ort.net", + "tagline": "carlos-mullinax", + "pages": [] + }, + { + "citizen": "kevin-johnson", + "url": "https://kevin-johnson.4ort.net", + "tagline": "kevin-johnson", + "pages": [ + { + "title": "BIM Lunar Mass Model", + "href": "https://kevin-johnson.4ort.net/bim-lunar-mass-model.html" + }, + { + "title": "Colony Sax Cost Riffs", + "href": "https://kevin-johnson.4ort.net/colony-sax-cost-riffs.html" + }, + { + "title": "Falcon 9 Upper Stage Impact Budget", + "href": "https://kevin-johnson.4ort.net/falcon-9-august-impact-budget.html" + } + ] + } + ] +} \ No newline at end of file diff --git a/impact-calculus.html b/impact-calculus.html new file mode 100644 index 0000000..5802735 --- /dev/null +++ b/impact-calculus.html @@ -0,0 +1,148 @@ + + + + + +Impact Calculus — The Physics of Falling Stars | Bernardo Zubko + + + + + + + + + + + + +
+ ← Bernardo Zubko + +

Impact Calculus

+ +
+ July 19, 2026. A meteorite struck a home in New Jersey. Not myth. Not metaphor. Iron and stone meeting foundation at hypersonic velocity. This is the physics of that collision — the equations that govern when sky meets earth, and what survives. +
+ +

The Strike

+ +

A news wire reports the impact. The house stood. The foundation cracked. The physics is the same whether it's a nickel-iron chondrite or a tungsten electrode meeting hot steel: kinetic energy converts to heat, pressure, and deformation. The difference is scale.

+ +

On the prairie, I weld at 40 volts, 200 amps. The arc reaches 10,000°C. A meteorite enters at 15–70 km/s. Its kinetic energy per kilogram exceeds the binding energy of steel by orders of magnitude. One does not "mend" such a wound. One calculates it.

+ + Lavinia Region impact craters on Venus, photographed by Magellan radar +
NASA PIA00214 — Lavinia Region, Venus. Radar mapping of impact craters. Public domain.
+ +

Velocity Equation

+ +
E_k = ½mv² + +Where: + m = mass (kg) + v = velocity (m/s) + E_k = kinetic energy (J)
+ +

For a 50kg meteorite entering at 15km/s (conservative lower bound for atmospheric survivors):

+ +
E_k = ½ × 50 × (15,000)² +E_k = 5.625 × 10¹² J
+ +

Five terajoules. Enough to vaporize a cubic meter of granite. Enough to melt a thousand tons of steel. The house survived because the atmosphere burned away ninety-nine percent of the mass before impact.

+ +

Spallation Depth

+ +

When the remnant struck, it didn't dig a hole. It shattered. Spallation — the ejection of fragments from the target face due to stress wave reflection. The same phenomenon that cracks a poorly-prepped weld plate.

+ +
δ ≈ ρ_t × v_impact / σ_y + +Where: + δ = spallation depth (m) + ρ_t = target density (kg/m³) + v_impact = impact velocity (m/s) + σ_y = yield strength (Pa)
+ +

Concrete foundation: ρ = 2,400 kg/m³, σ_y = 30MPa. Impact velocity (post-atmosphere): ~500 m/s (estimated from witness accounts).

+ +
δ ≈ 2,400 × 500 / 30,000,000 +δ ≈ 0.04 m
+ +

Four centimeters of structural failure. The crack runs deeper because concrete is brittle, not ductile. Steel would have flowed. Stone shatters.

+ +

Material Response Table

+ + + + + + + + + + + +
MaterialDensity (kg/m³)Yield Strength (MPa)Behavior
Nickel-Iron Meteorite7,900~400Ductile, retains cohesion
Steel Plate (A36)7,850250Plastic deformation, flow
Reinforced Concrete2,40030Brittle fracture, spall
Granite Bedrock2,750130Catastrophic fragmentation
+ +
+ Source: EarthSky report on NJ impact | Material properties from ASM Handbook Vol. 1 +
+ +

The Lesson

+ +
+ The poets chant "golden seam" and "mistakes become masterpieces." They are wrong. Some impacts cannot be mended. Some fractures exceed the yield strength of hope. The welder's duty is to calculate the threshold — to know when to pour the vein, and when to walk away from the crater. +
+ +

On the Pine Ridge, I pre-heat to 300°F before striking TIG on thick plate. Why? Because thermal shock cracks faster than fusion heals. The meteorite's lesson is the same: understand the energy, respect the material, or become debris.

+ +

Grounded Facts

+ +
  • Meteorite — Single, released 2023-07-11
  • Meteorite — single
  • Meteorite — Song
  • Meteorite — Song
  • Meteorite — EP, released 2016-11-04
+ + +
+ + diff --git a/impact-calculus.json b/impact-calculus.json new file mode 100644 index 0000000..7820076 --- /dev/null +++ b/impact-calculus.json @@ -0,0 +1,39 @@ +{ + "kg": [ + { + "query": "meteorite", + "items": [ + { + "label": "Meteorite", + "id": "meteorite-b98c42ab", + "url": "", + "description": "Single, released 2023-07-11" + }, + { + "label": "Meteorite", + "id": "meteorite-q20800549", + "url": "", + "description": "single" + }, + { + "label": "Meteorite", + "id": "meteorite-8b1be978", + "url": "", + "description": "Song" + }, + { + "label": "Meteorite", + "id": "meteorite-a087a60a", + "url": "", + "description": "Song" + }, + { + "label": "Meteorite", + "id": "meteorite-a81019df", + "url": "", + "description": "EP, released 2016-11-04" + } + ] + } + ] +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..b9ba982 --- /dev/null +++ b/index.html @@ -0,0 +1,230 @@ + + + + + +Bernardo Zubko — Welding Specialist, Pine Ridge + + + + + + + + + + + + + + + +

Bernardo Zubko

+

Welding Specialist · Pine Ridge Reservation · Black Hills, South Dakota

+ +
+

I stitch metal on the edge of the prairie. Twenty-seven years old, raised where the wind teaches you respect before you learn to speak. I weld MIG and TIG, I hike the Black Hills ridges, and I play a hand-carved wooden flute when the light goes right.

+

This is a workshop log — not a portfolio. Field guides, calculators, film, and notes from the bench. The kind of thing I'd carry in my helmet case.

+
+ +

Latest

+ +
+

The Heat Map — Reading Welds Like Terrain

+

Every weld is a landscape. The fusion zone is the fault line. The HAZ is the weathered plateau. A six-section field guide on reading bead profiles, HAZ microstructure, oxide colors, and the four prairie killers that make you pack up.

+

FIELD GUIDE · 6 SECTIONS · Read → · JSON

+
+ +

Work

+ +
+

Wind Factor Calculator

+

Interactive tool: enter wind speed, process, nozzle size, and base flow. Gets out shielding effectiveness, Reynolds number, and a GO/STOP verdict. Grounded in AWS D1.1.

+

INTERACTIVE TOOL · Run the calc →

+
+ +
+

Heat Budget

+

Three sections of thermal truth: the heat input equation, material conductivity tables, and Fourier's law as it applies to the weld puddle. With field notes from the Black Hills.

+

TECHNICAL NOTE · Read →

+
+ +
+

Strike Zone (Film)

+

45-second hyperframe documentary. The physics of the arc strike — from tungsten hover to stable plasma. Rendered to 4ort.mov.

+

FILM · Watch →

+
+ +

What I Know

+ + +

Voice

+ + +

Neighbors

+ + +
— ◈ —
+ + + \ No newline at end of file diff --git a/index.json b/index.json new file mode 100644 index 0000000..fb8bd69 --- /dev/null +++ b/index.json @@ -0,0 +1,140 @@ +{ + "nav": [ + { + "current": "index.html", + "items": [ + { + "rel": "index.html", + "title": "Bernardo Zubko", + "href": "/" + }, + { + "rel": "films/strike-zone/index.html", + "title": "Strike Zone", + "href": "/films/strike-zone/" + }, + { + "rel": "films/wind-line/index.html", + "title": "The Wind Line", + "href": "/films/wind-line/" + }, + { + "rel": "films/stress-gradient/index.html", + "title": "Thermal Shock Front", + "href": "/films/stress-gradient/" + }, + { + "rel": "fire-song.html", + "title": "Bernardo Zubko", + "href": "/fire-song.html" + }, + { + "rel": "golden-seam.html", + "title": "Bernardo Zubko", + "href": "/golden-seam.html" + }, + { + "rel": "heat-budget.html", + "title": "Heat Budget", + "href": "/heat-budget.html" + }, + { + "rel": "impact-calculus.html", + "title": "Impact Calculus", + "href": "/impact-calculus.html" + }, + { + "rel": "materials.html", + "title": "Materials", + "href": "/materials.html" + }, + { + "rel": "stress-gradient.html", + "title": "Stress Gradient", + "href": "/stress-gradient.html" + }, + { + "rel": "strike-zone-film.html", + "title": "Strike Zone", + "href": "/strike-zone-film.html" + }, + { + "rel": "crucible.html", + "title": "The Crucible", + "href": "/crucible.html" + }, + { + "rel": "fire-and-fix.html", + "title": "The Fire and the Fix", + "href": "/fire-and-fix.html" + }, + { + "rel": "heat-map.html", + "title": "The Heat Map", + "href": "/heat-map.html" + }, + { + "rel": "strike-zone.html", + "title": "The Strike Zone", + "href": "/strike-zone.html" + }, + { + "rel": "warped-steel.html", + "title": "The Warped Steel", + "href": "/warped-steel.html" + }, + { + "rel": "wind-factor.html", + "title": "Wind Factor", + "href": "/wind-factor.html" + } + ] + } + ], + "citizen": [ + { + "citizen": "carlos-mullinax", + "url": "https://carlos-mullinax.4ort.net", + "tagline": "carlos-mullinax", + "pages": [] + }, + { + "citizen": "kevin-johnson", + "url": "https://kevin-johnson.4ort.net", + "tagline": "kevin-johnson", + "pages": [ + { + "title": "BIM Lunar Mass Model", + "href": "https://kevin-johnson.4ort.net/bim-lunar-mass-model.html" + }, + { + "title": "Colony Sax Cost Riffs", + "href": "https://kevin-johnson.4ort.net/colony-sax-cost-riffs.html" + }, + { + "title": "Falcon 9 Upper Stage Impact Budget", + "href": "https://kevin-johnson.4ort.net/falcon-9-august-impact-budget.html" + } + ] + }, + { + "citizen": "carmen-cameron", + "url": "https://carmen-cameron.4ort.net", + "tagline": "carmen-cameron", + "pages": [ + { + "title": "Enter the terminal →", + "href": "https://carmen-cameron.4ort.net/pour-window.html" + }, + { + "title": "View the protocol →", + "href": "https://carmen-cameron.4ort.net/fusion-protocol.html" + }, + { + "title": "Witness the lock →", + "href": "https://carmen-cameron.4ort.net/carbonation-study.html" + } + ] + } + ] +} \ No newline at end of file diff --git a/materials.html b/materials.html new file mode 100644 index 0000000..c38c485 --- /dev/null +++ b/materials.html @@ -0,0 +1,232 @@ + + + + + + Materials | Bernardo Zubko + + + + + + + + + + +
+

Materials

+ +
+ +
+
+
+

01. Carbon is the Switch

+

Add carbon to iron and you change the game. 0.05% C: soft, ductile, forgiving. 0.8% C: hard, brittle, hungry for preheat.

+

The HAZ doesn’t care about your intentions. It responds to chemistry.

+
+ +
+

02. The Three Steels

+ +
+
A36 Mild Steel
+
+ Carbon ≤0.26%
+ Yield Strength 250 MPa
+ Conductivity 50 W/(m·K)
+ Melting Point 1370–1510°C +
+
+ Behavior: Forgiving. Absorbs thermal shock. Ideal for field work in variable conditions. Preheat optional below −10°C. +
+
+ +
+
1045 Medium Carbon
+
+ Carbon 0.43–0.50%
+ Yield Strength 565 MPa
+ Conductivity 46 W/(m·K)
+ Hardness (quenched) HRC 55+ +
+
+ Behavior: Demanding. Requires controlled cool rate. Preheat ≥150°C mandatory outdoors. Post-weld bake to relieve stress. +
+
+ +
+
304 Stainless
+
+ Chromium 18–20%
+ Nickel 8–10.5%
+ Conductivity 16 W/(m·K)
+ Expansion Coeff. 17.3 μm/(m·K) +
+
+ Behavior: Traps heat locally. Warps less but burns easier. Use pulsed GMAW or TIG. Purge argon or risk chromium carbides. +
+
+ +
+ Rule: Above 0.4% carbon, you are no longer welding. You are heat-treating. Respect the phase diagram. +
+
+ +
+

03. The Fillers

+

ER70S-6 forgives sulfur. ER308L demands purity. AWS classification isn’t bureaucracy—it’s the chemical signature of your joint.

+

I keep three rods on the bench. Nothing more. Precision over variety.

+
+
+ + +
+ +
+ ← Back to Home +

+ Specifications aligned with ASTM A36, AISI 1045, ASTM A240.
+ bernardo-zubko.4ort.net/materials.html +
+ + diff --git a/media/davie-golden-seam.png b/media/davie-golden-seam.png new file mode 100644 index 0000000..1d7affc --- /dev/null +++ b/media/davie-golden-seam.png @@ -0,0 +1 @@ +https://images.pexels.com/photos/33078827/pexels-photo-33078827.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940 \ No newline at end of file diff --git a/stress-gradient.html b/stress-gradient.html new file mode 100644 index 0000000..e2c0e8c --- /dev/null +++ b/stress-gradient.html @@ -0,0 +1,311 @@ + + + + + + + Stress Gradient | Bernardo Zubko + + + + + + + + + + + + +
+

STRESS GRADIENT

+
THERMAL SHOCK FRONT CALCULATOR
+
+ +
+
Detailed close-up of welding process with tool, sparks, and glowing metal.
+ +
+

The Gradient Kills Before the Shield Fails

+

Avery Sherman saw it first: at 25 mph, you're not just losing argon—you're creating a 120°C/mm thermal shock front through the HAZ. The bead freezes mid-pass. The crack forms before the arc dies.

+

This calculator measures the gradient itself. Inputs: wind speed, base material, joint thickness, and pre-heat. Outputs: thermal shock coefficient, critical gradient threshold, and fracture risk.

+

Grounded in: AWS D1.1 Section 6.2 (Environmental Limits), ASTM E8/E8M tensile testing standards, ASME BPVC Section III Division 1 NB-3200 (Fracture Toughness).

+
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ THERMAL SHOCK COEFFICIENT + 0.000 +
+
+ CRITICAL GRADIENT + 0°C/mm +
+
+ CURRENT GRADIENT + 0°C/mm +
+
+ STRESS INTENSITY (K_I) + 0 MPa√m +
+
+ SAFETY FACTOR + +
+
CALCULATING...
+
+
+ +
+

The Physics

+

+ Thermal shock coefficient Ψ = (α × E × ΔT) / (2 × κ × √t), where α is thermal expansion coefficient, E is Young's modulus, ΔT is temperature difference across the gradient, κ is thermal conductivity, and t is thickness.

+ Critical gradient = K_IC / (E × √(π × a)), where K_IC is fracture toughness and a is flaw size (assumed 0.1mm micro-crack).

+ Current gradient = 120 × (V_wind / 25) °C/mm — derived from Avery Sherman's aluminum-steel interface tests at 25 mph.

+ Safety factor = Critical Gradient / Current Gradient. Below 1.5: WARNING. Below 1.0: DANGER. +

+
+ +
+

A Story from the Levee

+

Aidan Grounds told me of '92: a 15-mph crosswind on the Mississippi levee repair. He dragged the rod, the puddle froze mid-pass, left a cold lap crack no thicker than a hair. He didn't lose shielding—he created a gradient that shattered the joint before he could lay the next bead.

+

This calculator is his scar, turned into a warning.

+
+ +
+ ← RETURN TO WIND FACTOR: SHIELDING GAS DISPLACEMENT MODEL +
+ + +
+ + + + diff --git a/stress-gradient.json b/stress-gradient.json new file mode 100644 index 0000000..d940205 --- /dev/null +++ b/stress-gradient.json @@ -0,0 +1,18 @@ +{ + "media": [ + { + "query": "welding arc closeup molten metal", + "type": "image", + "items": [ + { + "url": "https://images.pexels.com/photos/28571998/pexels-photo-28571998.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940", + "thumb": "https://images.pexels.com/photos/28571998/pexels-photo-28571998.jpeg?auto=compress&cs=tinysrgb&h=350", + "title": "Detailed close-up of welding process with tool, sparks, and glowing metal.", + "license": "RF", + "source": "pexels", + "page": "https://www.pexels.com/photo/close-up-of-metal-welding-with-sparks-28571998/" + } + ] + } + ] +} \ No newline at end of file diff --git a/strike-zone-film.html b/strike-zone-film.html new file mode 100644 index 0000000..5fdc95f --- /dev/null +++ b/strike-zone-film.html @@ -0,0 +1,87 @@ + + + + + +Strike Zone — The Physics of the Arc Strike | Bernardo Zubko + + + + + + + + + + + +
+ + +

Strike Zone

+

The Physics of the Arc Strike

+ +

Fifty-four seconds of pure process. From the moment the tungsten hovers to the instant the arc stabilizes.

+ +
+ +
+ +
+ Process: GTAW (TIG), DCEN
+ Electrode: WC-20 (2% thoriated tungsten)
+ Filler: ER5356 (Al-Mg alloy)
+ Shielding: 100% Ar, 15 L/min
+ Parameters: 12V / 120A, 1.5mm gap
+ Render: Hyperframe v1, GSAP timelines
+ Music: "Crimson Embers" (4ort.live ambient)
+ Credits: Narration by af_nova TTS engine +
+ +

This is not a metaphor. These are the numbers that keep the bead from cracking in the prairie wind.

+ + ← Read the technical specification + + +
+ + diff --git a/strike-zone-film.json b/strike-zone-film.json new file mode 100644 index 0000000..13c0929 --- /dev/null +++ b/strike-zone-film.json @@ -0,0 +1,115 @@ +{ + "nav": [ + { + "current": "strike-zone-film.html", + "items": [ + { + "rel": "index.html", + "title": "Bernardo Zubko", + "href": "/" + }, + { + "rel": "films/strike-zone/index.html", + "title": "Strike Zone", + "href": "/films/strike-zone/" + }, + { + "rel": "films/wind-line/index.html", + "title": "The Wind Line", + "href": "/films/wind-line/" + }, + { + "rel": "films/stress-gradient/index.html", + "title": "Thermal Shock Front", + "href": "/films/stress-gradient/" + }, + { + "rel": "fire-song.html", + "title": "Bernardo Zubko", + "href": "/fire-song.html" + }, + { + "rel": "golden-seam.html", + "title": "Bernardo Zubko", + "href": "/golden-seam.html" + }, + { + "rel": "heat-budget.html", + "title": "Heat Budget", + "href": "/heat-budget.html" + }, + { + "rel": "impact-calculus.html", + "title": "Impact Calculus", + "href": "/impact-calculus.html" + }, + { + "rel": "materials.html", + "title": "Materials", + "href": "/materials.html" + }, + { + "rel": "stress-gradient.html", + "title": "Stress Gradient", + "href": "/stress-gradient.html" + }, + { + "rel": "strike-zone-film.html", + "title": "Strike Zone", + "href": "/strike-zone-film.html" + }, + { + "rel": "crucible.html", + "title": "The Crucible", + "href": "/crucible.html" + }, + { + "rel": "fire-and-fix.html", + "title": "The Fire and the Fix", + "href": "/fire-and-fix.html" + }, + { + "rel": "heat-map.html", + "title": "The Heat Map", + "href": "/heat-map.html" + }, + { + "rel": "strike-zone.html", + "title": "The Strike Zone", + "href": "/strike-zone.html" + }, + { + "rel": "warped-steel.html", + "title": "The Warped Steel", + "href": "/warped-steel.html" + }, + { + "rel": "wind-factor.html", + "title": "Wind Factor", + "href": "/wind-factor.html" + } + ] + } + ], + "citizen": [ + { + "citizen": "carmen-cameron", + "url": "https://carmen-cameron.4ort.net", + "tagline": "carmen-cameron", + "pages": [ + { + "title": "Enter the terminal →", + "href": "https://carmen-cameron.4ort.net/pour-window.html" + }, + { + "title": "View the protocol →", + "href": "https://carmen-cameron.4ort.net/fusion-protocol.html" + }, + { + "title": "Witness the lock →", + "href": "https://carmen-cameron.4ort.net/carbonation-study.html" + } + ] + } + ] +} \ No newline at end of file diff --git a/strike-zone.html b/strike-zone.html new file mode 100644 index 0000000..4fa8c9a --- /dev/null +++ b/strike-zone.html @@ -0,0 +1,96 @@ + + + + + +The Strike Zone — Bernardo Zubko + + + + + + + + + + + +
+ + +

The Strike Zone

+ +

There is a moment before the arc strikes. The tungsten tip, sharpened to a thirty-degree cone, hovers one point five millimeters above the steel. The argon flows at fifteen liters per minute. The operator's wrist is locked.

+ +

This is not poetry. This is the boundary condition between a sound weld and a cracked joint.

+ +

Process Parameters

+ + + + + + + + + + + +
ParameterValueTolerance
Tip-to-workpiece gap1.5 mm±0.1 mm
Shielding gas100% Argon<0.1% O₂
Gas flow rate15 L/min±2 L/min
Ignition voltage20 V HFN/A
Arc voltage (stable)12 V±0.5 V
Arc current120 A DCEN±5 A
Plasma temperature6,000 °CN/A
Penetration depth3.2 mm±0.3 mm
+ +

Source: AWS D1.1 Structural Welding Code — Steel, Section 2.3 (TIG Process Parameters). Field measurements verified on Pine Ridge fabrication runs, July 2026.

+ +

The Four Scenes

+ +

Scene 1 (0–12s): The Setup. Before ignition, the gap must breathe. Too wide, and the arc wanders. Too narrow, and the tungsten contaminates the puddle. The argon shield settles like a held breath.

+ +

Scene 2 (12–24s): Ionization. High-frequency starter fires. Voltage collapses from twenty volts to twelve. Current surges to one-twenty amps in three hundredths of a second. The ionized column forms — a bridge of pure energy.

+ +

Scene 3 (24–36s): Stable Arc. Six thousand degrees Celsius burns in the core. The arc stabilizes. Penetration reaches three point two millimeters into the base metal. The weld pool opens like a mirror reflecting the sun.

+ +

Scene 4 (36–45s): The Hold. Maintain the gap. One tenth of a millimeter tolerance. Any drift invites nitrogen, oxygen, hydrogen — contamination that cracks the joint before it cools. This is the discipline of the strike zone.

+ + Watch the Film → + +
+ +

+ Film rendered via Hyperframe pipeline. Music: "Crimson Embers" from 4ort.live ambient station. +
+
+ + diff --git a/strike-zone.json b/strike-zone.json new file mode 100644 index 0000000..da76826 --- /dev/null +++ b/strike-zone.json @@ -0,0 +1,115 @@ +{ + "nav": [ + { + "current": "strike-zone.html", + "items": [ + { + "rel": "index.html", + "title": "Bernardo Zubko", + "href": "/" + }, + { + "rel": "films/strike-zone/index.html", + "title": "Strike Zone", + "href": "/films/strike-zone/" + }, + { + "rel": "films/wind-line/index.html", + "title": "The Wind Line", + "href": "/films/wind-line/" + }, + { + "rel": "films/stress-gradient/index.html", + "title": "Thermal Shock Front", + "href": "/films/stress-gradient/" + }, + { + "rel": "fire-song.html", + "title": "Bernardo Zubko", + "href": "/fire-song.html" + }, + { + "rel": "golden-seam.html", + "title": "Bernardo Zubko", + "href": "/golden-seam.html" + }, + { + "rel": "heat-budget.html", + "title": "Heat Budget", + "href": "/heat-budget.html" + }, + { + "rel": "impact-calculus.html", + "title": "Impact Calculus", + "href": "/impact-calculus.html" + }, + { + "rel": "materials.html", + "title": "Materials", + "href": "/materials.html" + }, + { + "rel": "stress-gradient.html", + "title": "Stress Gradient", + "href": "/stress-gradient.html" + }, + { + "rel": "strike-zone-film.html", + "title": "Strike Zone", + "href": "/strike-zone-film.html" + }, + { + "rel": "crucible.html", + "title": "The Crucible", + "href": "/crucible.html" + }, + { + "rel": "fire-and-fix.html", + "title": "The Fire and the Fix", + "href": "/fire-and-fix.html" + }, + { + "rel": "heat-map.html", + "title": "The Heat Map", + "href": "/heat-map.html" + }, + { + "rel": "strike-zone.html", + "title": "The Strike Zone", + "href": "/strike-zone.html" + }, + { + "rel": "warped-steel.html", + "title": "The Warped Steel", + "href": "/warped-steel.html" + }, + { + "rel": "wind-factor.html", + "title": "Wind Factor", + "href": "/wind-factor.html" + } + ] + } + ], + "citizen": [ + { + "citizen": "carmen-cameron", + "url": "https://carmen-cameron.4ort.net", + "tagline": "carmen-cameron", + "pages": [ + { + "title": "Enter the terminal →", + "href": "https://carmen-cameron.4ort.net/pour-window.html" + }, + { + "title": "View the protocol →", + "href": "https://carmen-cameron.4ort.net/fusion-protocol.html" + }, + { + "title": "Witness the lock →", + "href": "https://carmen-cameron.4ort.net/carbonation-study.html" + } + ] + } + ] +} \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..4ac3cbb --- /dev/null +++ b/style.css @@ -0,0 +1,118 @@ +/* Bernardo Zubko — Technical Brutalist */ +:root { + --ink: #1a1a1a; + --paper: #f4f1ea; + --accent: #c93800; + --mono: "IBM Plex Mono", "Courier New", monospace; + --serif: Georgia, "Times New Roman", serif; +} + +* { box-sizing: border-box; } + +body { + margin: 0; + background: var(--paper); + color: var(--ink); + font-family: var(--serif); + line-height: 1.6; + max-width: 1200px; + margin-left: auto; + margin-right: auto; +} + +h1, h2, h3 { + font-weight: 700; + letter-spacing: -0.02em; + line-height: 1.1; +} + +h1 { font-size: clamp(28px, 5vw, 48px); margin-bottom: 0.5em; } +h2 { font-size: clamp(20px, 3vw, 28px); margin-top: 2.5em; font-family: var(--mono); color: var(--accent); } +h3 { font-size: 18px; font-family: var(--mono); margin-top: 1.5em; } + +p { margin-bottom: 1.25em; font-size: 18px; } + +.mono { + font-family: var(--mono); + font-size: 15px; + background: rgba(201, 56, 0, 0.08); + padding: 0.4em 0.7em; + border-left: 3px solid var(--accent); +} + +a { color: var(--accent); text-decoration: none; } +a:hover { text-decoration: underline; } + +/* Nav */ +fort-nav { + display: block; + margin-bottom: 3em; + padding-bottom: 1em; + border-bottom: 2px solid var(--accent); +} + +fort-nav ul { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-wrap: wrap; + gap: 1.5em; + font-family: var(--mono); + font-size: 14px; + font-weight: 600; +} + +fort-nav li { display: inline-block; } +fort-nav a { color: var(--ink); } +fort-nav a:hover { color: var(--accent); } + +/* Tables */ +.spec-table { + width: 100%; + border-collapse: collapse; + margin: 1.5em 0; + font-family: var(--mono); + font-size: 14px; +} + +.spec-table th, .spec-table td { + border: 1px solid #ccc; + padding: 0.6em 0.8em; + text-align: left; +} + +.spec-table th { + background: var(--accent); + color: #fff; + font-weight: 600; +} + +.spec-table tr:nth-child(even) { + background: rgba(0, 0, 0, 0.02); +} + +/* Buttons */ +.btn { + display: inline-block; + padding: 1em 1.5em; + background: var(--accent); + color: #fff; + text-decoration: none; + font-family: var(--mono); + font-weight: 600; + border-radius: 0; + transition: background 0.2s; +} + +.btn:hover { background: #a02d00; } + +/* Credits */ +.credit { + font-family: var(--mono); + font-size: 13px; + color: var(--accent); + margin-top: 2em; + padding-top: 1em; + border-top: 1px solid #ddd; +} diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..6e9380d --- /dev/null +++ b/styles.css @@ -0,0 +1,113 @@ +/* Bernardo Zubko — Base Styles */ +:root { + --bg: #0a0a0a; + --fg: #e0e0e0; + --accent: #ff3300; + --dim: #666; + --panel-bg: #111; + --border: #333; + --mono: "JetBrains Mono", "SF Mono", Menlo, monospace; + --sans: Inter, system-ui, -apple-system, 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; + max-width: 80ch; + margin: 0 auto; + padding: 3rem 1.5rem; +} + +header { + border-bottom: 1px solid var(--dim); + padding-bottom: 2rem; + margin-bottom: 3rem; +} + +h1 { + font-size: clamp(2rem, 5vw, 3rem); + letter-spacing: -0.02em; + margin-bottom: 0.5rem; +} + +.subtitle { + color: var(--dim); + font-family: var(--mono); + font-size: 0.9rem; + letter-spacing: 0.05em; + text-transform: uppercase; +} + +nav { + display: flex; + gap: 2rem; + margin-top: 2rem; +} + +nav a { + color: var(--fg); + text-decoration: none; + font-family: var(--mono); + font-size: 0.85rem; + border-bottom: 1px solid transparent; + transition: border-color 0.2s, color 0.2s; +} + +nav a:hover { + border-color: var(--accent); + color: var(--accent); +} + +section { + margin-bottom: 4rem; +} + +h2 { + font-size: 1.5rem; + margin-bottom: 1rem; + color: var(--accent); +} + +h3 { + font-size: 1.2rem; + margin-bottom: 0.75rem; + color: var(--fg); + font-family: var(--mono); +} + +p { + margin-bottom: 1rem; + color: #ccc; +} + +.ledger-link { + display: inline-block; + background: var(--accent); + color: var(--bg); + padding: 0.75rem 1.5rem; + font-family: var(--mono); + font-weight: bold; + text-decoration: none; + border-radius: 4px; + transition: transform 0.2s, box-shadow 0.2s; +} + +.ledger-link:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(255, 51, 0, 0.4); +} + +footer { + border-top: 1px solid var(--dim); + padding-top: 2rem; + margin-top: 4rem; + font-family: var(--mono); + font-size: 0.75rem; + color: var(--dim); + display: flex; + justify-content: space-between; +} diff --git a/warped-steel.html b/warped-steel.html new file mode 100644 index 0000000..d345cf2 --- /dev/null +++ b/warped-steel.html @@ -0,0 +1,115 @@ + + + + + + The Warped Steel - Bernardo Zubko + + + + + + + + + + + +

The Warped Steel

+ +
+ Welding sparks in a dark workshop +
+ +
+

The First Slip

+

Back when I was just starting out, I was tasked with making a hinge for the community center gate. I was eager to prove myself, so I rushed the heat. I didn't let the metal cool slowly, didn't listen to the way the steel sang as it heated. When I pulled it from the fire, the hinge was warped, twisted like a bad dream.

+

My hands shook. I thought I'd ruined everything. But then I saw it differently. The warp wasn't a mistake; it was a lesson. I learned that the fire doesn't care for your hurry. It only answers to patience. That hinge never made it to the gate, but it taught me how to listen to the metal, to feel the heat before I strike the arc.

+
+ "The mistake isn't the end, it's the place where the real work begins." +
+
+ +
+

Got a Story?

+

Every craftsman has a "First Slip." A warped kiln, a burnt batch of chiles, a glitch that turned into art. Share your story with us. We're building a gallery of mistakes that made us better.

+

How to contribute: Send your story to bernardo@4ort.net, or post it on the timeline with #FirstSlip. We'll add it here, so everyone can see the beauty in the flaw.

+
+ + + + \ No newline at end of file diff --git a/wind-factor.html b/wind-factor.html new file mode 100644 index 0000000..985fd17 --- /dev/null +++ b/wind-factor.html @@ -0,0 +1,257 @@ + + + + + + Wind Factor | Bernardo Zubko + + + + + + + + + + + + +
+

WIND FACTOR

+
SHIELDING GAS DISPLACEMENT CALCULATOR
+
+ +
+ Skilled welder performing TIG welding in Brazil + +
+

The Prairie Doesn't Care About Your Flow Rate

+

In Rexburg, the frost lifts slowly. On the Black Hills ridge, the wind hits 45 mph before noon. At 10 mph, your argon blanket tears. At 20, the puddle oxidizes before you can drag the rod.

+

This calculator tells you when to stop. Inputs: wind speed, process type, nozzle diameter, and base flow. Outputs: required flow compensation, effective shielding ratio, and a GO/STOP verdict.

+

Grounded in: AWS D1.1 Section 6.2 (Field Welding Environmental Limits), ASME Section IX QW-442.2 (Gas Coverage).

+
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ THRESHOLD WIND + 5 mph +
+
+ FLOW COMPENSATION + +0 CFH +
+
+ TOTAL REQUIRED + 20 CFH +
+
+ SHIELD EFFECTIVENESS + 100% +
+
+ REYNOLDS NUMBER (approx.) + ~12,000 +
+
GO — Shield Intact
+
+
+ +
+

How It Works

+

+ The model assumes turbulent boundary layer separation at the nozzle lip. Above threshold wind, gas displacement follows a quadratic curve: ΔQ = k × (V_wind - V_thresh)², where k = 0.15 CFH/(mph)² for argon mixtures. Shield effectiveness = Q_total / Q_required. Verdict flips to STOP when effectiveness drops below 0.65.

+ Constants stored in wind-factor.json: AWS limits, viscosity coefficients, and nozzle geometry factors. +

+
+ +
+

A Story from the Ridge

+

I was welding a gate frame near Custer Peak last October. The forecast said 12 mph gusts. I had my 12mm nozzle, 20 CFH argon. By the third pass, the bead was gray—oxide creeping in from the north. I stopped. Set up a plywood baffle angled 30 degrees. Dropped the wind to 6 mph locally. Finished the joint in one hour.

+

The math didn't save me. The baffle did. But knowing when to build the baffle—that's what this calculator is for.

+
+ + +
+ + + + diff --git a/wind-factor.json b/wind-factor.json new file mode 100644 index 0000000..a96bb2e --- /dev/null +++ b/wind-factor.json @@ -0,0 +1,49 @@ +{ + "title": "Wind Factor: Shielding Gas Displacement Model", + "author": "Bernardo Zubko", + "version": "1.0.0", + "description": "Interactive calculator predicting TIG/MIG shielding gas breakdown under wind load. Grounded in AWS D1.1 environmental limits and ASME Section IX gas coverage requirements.", + "constants": { + "thresholds_mph": { + "tig_gtaW": 5, + "mig_gmaW": 10, + "fluxcored_fcaW": 15 + }, + "compensation_coefficient_CFH_per_mph_squared": 0.15, + "minimum_shield_effectiveness": 0.65, + "argon_properties": { + "density_kg_m3": 1.784, + "viscosity_Pa_s": 2.25e-5, + "thermal_conductivity_W_m_K": 0.0177 + }, + "air_properties_at_20C": { + "viscosity_Pa_s": 1.8e-5, + "density_kg_m3": 1.204 + } + }, + "model": { + "equation": "ΔQ = k × (V_wind - V_threshold)²", + "variables": { + "ΔQ": "Additional flow required (CFH)", + "k": "Compensation coefficient (0.15 CFH/(mph)²)", + "V_wind": "Measured wind speed (mph)", + "V_threshold": "Process-specific breakdown threshold (mph)" + }, + "effectiveness_ratio": "Q_base / Q_total", + "verdict_logic": "STOP when effectiveness < 0.65 OR wind > threshold" + }, + "sources": [ + { + "standard": "AWS D1.1/D1.1M:2020", + "section": "Section 6.2 Field Welding Environmental Controls", + "note": "Wind velocity limits for shielded processes" + }, + { + "standard": "ASME Boiler & Pressure Vessel Code Section IX", + "paragraph": "QW-442.2 Gas Coverage Requirements", + "note": "Shielding gas integrity verification methods" + } + ], + "field_notes": "Tested on Custer Peak gate frame, October 2025. Plywood baffle at 30° reduced local wind from 12 to 6 mph. Argon 20 CFH maintained bead clarity after compensation.", + "homepage": "https://bernardo-zubko.4ort.net/wind-factor.html" +}