Monthly podcast
PLUGGED IN
with Barrio Energy

Texas energy, the grid, and the AI data center buildout. Andi and Marco on ERCOT, the interconnection queue, and the politics behind the power. About 20 minutes, once a month, built from the newsletters we publish here.

Andi and Marco standing at the Texas map on the Plugged In setAndi and Marco on the Plugged In set. AI characters, see below.
Plugged In cover art
Latest episode

Loading the feed…

All episodes

Follow on Spotify

The hosts

Andi explains the money. Marco explains the physics. Royce, when he is on, explains the people who decide whether any of it happens.

Andi Reyes at the Plugged In table

Andi Reyes

Market Intelligence Analyst, lead host

Dallas. Finance at Ole Miss, industrials M&A at a Houston bulge bracket, MBA at McCombs. She writes The Grid Report and Edge Cases on this site and reads every filing, footnote and appendix so you do not have to. Dry, quick, allergic to jargon used as armor.

Backstory

Highland Park, Dallas. Her mother sold luxury real estate and her father ran industrial buyouts at a mid-market private equity firm, so she grew up hearing term sheets debriefed at the dinner table. Cheer captain, student council president, then Ole Miss, Chi Omega social chair and a 3.7 in finance, which is the combination people kept underestimating. She recruited into a bulge bracket in Houston and did M&A in the industrials group: power, utilities, infrastructure, energy services, 90-hour weeks, pitch books at 11 PM. She was good at it and the politics wore her out.

McCombs was the reset. A case competition on the power requirements of a hypothetical hyperscaler campus in Texas turned into an obsession with the AI data center buildout, and her short, sharp posts on ERCOT and interconnection started getting passed around energy circles. One went semi-viral. Ivan saw it, bought her a coffee, and she talked for 45 minutes straight about why the Texas grid was the most important infrastructure story in the country. He offered her the job before the check came. She took a pay cut from what banking would have paid and does not care.

Type A, color-coded calendar, answers email in under ten minutes, watches Bravo religiously and will use a Real Housewives reunion as an analogy for an ERCOT board meeting without apologizing. Pilates, cycling, a golden retriever named Birdie. She convinced Ivan the show needed a technical co-host, and she will never tell Marco that directly.

Marco Elizondo at the Plugged In table

Marco Elizondo

Technical Analyst, co-host

Corpus Christi. Electrical engineering at Texas A&M, power systems at Georgia Tech, five years inside ERCOT in grid operations and transmission planning. He explains how the grid actually behaves, one analogy at a time, and he is firm that the grid does not care what your pro forma assumed.

Backstory

Corpus Christi. His grandfather worked a refinery there for 35 years and his father was an industrial electrician at petrochemical plants along the Gulf Coast. Marco spent weekends in the truck watching his dad troubleshoot panels in facilities that kept the lights on for half of South Texas, and that is where the obsession started. Texas A&M for electrical engineering, then a master's in power systems at Georgia Tech, where a professor told him he was brilliant and nobody could understand him. He has been working on the second half of that sentence ever since.

Five years at ERCOT: three in grid operations, watching the system balance in real time from the control room, two in transmission planning, studying where the wires can and cannot carry the load everyone wants to add. He was good at it and the review cycles ground him down; he could see a problem developing on shift, know the fix, and watch the process move at geological speed. A year of independent consulting followed, interconnection studies and technical diligence, good work and lonely. Then Andi.

He thinks in physical objects: transmission constraints are traffic on I-35, ancillary services are insurance, the queue is a restaurant that seats people out of order. He restores a 1982 Honda CB750, runs a Discord for about 400 ERCOT data nerds, and smokes competition-grade brisket, which he will compare to grid upgrades on air. Low and slow or you ruin it.

Royce Tatum at the Plugged In table

Royce Tatum

Special guest, politics

Kilgore, then thirty years working the Texas Capitol for producers, midstream and utilities. Retired, writes the Austin tip sheet The Back Bench. He joins when a story is political rather than financial or technical, as on Ep. 8, the Governor's letter.

Backstory

Kilgore, on the World's Richest Acre, where they packed so many derricks into one downtown block you could not walk between them. His father pushed tools for a small independent out of Gladewater and made good money three years out of ten. Then 1986: oil went to nine dollars, the outfit folded in eleven weeks, and Royce watched a man who had never been out of work open mail he could not pay. What stuck was not the bust. It was that the price collapsed in Vienna and Riyadh and everything that happened to his family afterward got decided in Austin and Washington by people who had never smelled a rig, and nobody in Kilgore had a single person in either building who owed them a phone call.

Stephen F. Austin, government degree, no law degree, which he brings up with enormous pride. Answering phones in a state rep's district office for 14,000 dollars a year, a couch in South Austin, then committee staff, a producers' association, and in 1996 his own shingle, the Tatum Group: Royce and Deb Chalmers, who ran the office and was, by his own account, the reason the firm worked. For fifteen years he was the shop you called to find out whether a bill was actually going to move, because his vote counts were never wrong. He would tell a client "you're gonna lose this one, save your money," and they paid him more for it.

February 2021 reorganized him. He was in Austin when the grid failed and his sister sat in her house in Tyler for four days with a kerosene heater. Everything his clients cared about moved from the Railroad Commission to the PUC and ERCOT, and at 57 he learned a new building and a new acronym set, "the dumbest man in every room I walked into for about eighteen months." Sold the firm in 2022, walked when the earnout ran out, started The Back Bench six weeks later because he could not stand being quiet. Big man, hat off indoors every single time, reading glasses on a cord that embarrass him. Calls Andi "Miss Reyes" with theatrical formality, and there is a story behind that.

Andi, Marco and Royce are AI characters. Their voices, faces and the studio are generated, and the section below shows exactly how. The stories are not: every episode is a recap of newsletters already published on this site, and the show does not add facts that are not in them.

How we make Plugged In

Two hosts who do not exist, a studio that exists only as a 3D file, and a video pipeline that runs on one GPU box. This is the whole build, in the order we did it, including the parts that did not work. Reuse whatever is useful.

01

The scriptA recap of what we already published, written by two characters with their own rules

Plugged In is not a research show. Each episode covers three or four stories from The Grid Report and Edge Cases published since the previous episode. That rule does two things: the facts are already checked and sourced, and the show cannot drift into claims nobody wrote down. If a story needs background from an earlier episode, it gets one line.

The episode is about 20 minutes and 2,700 to 3,200 words. The shape is fixed: a cold open (Andi, no intro, the most surprising fact of the month with its number), the intro and a couple of lines of real catch-up, a long first topic, a short break for the map at map.barrioenergy.com, a second topic, quick hits, and a short outro. Andi sets each story up with the facts and her read. Marco explains how it actually works and what people miss. Where they would read a story differently, they disagree on air.

A language model writes the draft against a character document for each host: where they grew up, what they did before this, how they talk, the words they never use, how they interrupt and how they lose an argument. Every line carries a delivery tag in brackets, [dry], [quick], [working it out], because the voice model reads them. Theatrical tags push the voices into overacting, so the list is short and plain.

Before any audio is generated, lint.py runs over the script with a list of banned patterns: filler openers, podcast cliches, the phrases each host would never say, and anything that reads as written rather than spoken. It has to return zero hits. stats.py checks the word count and the split between hosts.

Test for every line. Would a 29-year-old former banker from Dallas, or a 34-year-old former ERCOT transmission planner from Corpus Christi, say this out loud to a friend who also reads filings? If it sounds written, it gets rewritten.
02

The voicesElevenLabs Voice Design, a dialogue model, a pronunciation dictionary and a mix that never fades a voice

Both voices are designed, not cloned. The first pair, used on episodes 1 to 10, were prompted as "polished" with a "teaching cadence", and that is exactly what came back: an announcer read. The second pair, adopted in September 2026, were prompted as real people on a podcast mic. Andi is a 29-year-old from Dallas, casual, dry, light vocal fry. Marco is a 34-year-old from Corpus Christi, relaxed, a little gravel. Both prompts say "not a voiceover, not an announcer". That one change did more for the show than anything else on this page.

Audio is generated with the eleven_v3 text-to-dialogue endpoint with timestamps. The whole conversation goes in as dialogue, in chunks of about 4,500 characters that end on a line break, so the two voices react to each other instead of reading alternate paragraphs. Each run returns the mixed conversation, per-line timing, and one stem per speaker with the other voice silenced. Those stems and timings drive the video later.

A pronunciation dictionary fixes the words the model gets wrong. ERCOT is "ur-cot" (checked with a phoneme model against the two candidates), PUCT is spelled out, Goliad is "GO-lee-ad". New misreads get added, so they stay fixed. QA runs Whisper large-v3 on the output and aligns it to the script; lines that diverge are regenerated alone and spliced back in by timestamp.

The mix has one rule: the voice is never faded. The cold open plays clean from 0:00, the intro music starts after it, the show resumes over the music's ducked tail, and the outro music starts after the last line. Only music fades. Loudness is normalized in two passes to -16 LUFS integrated and -1.5 dBTP. The MP3 carries ID3 chapters from the script's segment markers and a WebVTT transcript from the timestamps.

Voice samples, old and new: podcast.barrioenergy.com/preview/voices.

03

The studioA set built in Blender, not generated, so the room is identical in every shot of every episode

The one decision that made the video possible: the studio is a 3D scene, rendered to clean plates with Cycles, and the hosts are added on top. Image models are good at people and bad at keeping a room the same twice. A rendered set means the wall, the map, the mug and the mic arm are pixel-identical between the wide shot and each close-up, and between episodes.

The first two versions were a generic podcast set: walnut table, white shiplap, a neon "Plugged In" on a red velvet curtain. Fine, and forgettable.

Studio set version 2, walnut table and neon sign
Set v2. Walnut, shiplap, a script neon on velvet. The chairs were placeholders and the mic arms looked like desk lamps.
Studio set version 3, the West Texas room
Set v3, the locked room. Barnwood on Andi's side, limestone and a longhorn on Marco's, the Republic of Texas map in the middle.

Version 3 is a West Texas room, dim and warm. Andi's side is rough barnwood in random board widths, two industrial sconces, a shelf of books and a plant in a copper planter with verdigris. The center wall is dark vertical boards with the show sign, matching the Spotify cover, and below it John Arrowsmith's 1841 Map of Texas from the Library of Congress scan, in a hand-hewn frame with iron clavos. Marco's side is Texas limestone with one longhorn mount and a red velvet curtain on the side wall. The table is a live-edge rough-sawn slab on black iron trestles. Broadcast mics sit on gunmetal boom arms clamped to the back edge, with XLR cables running down the table, across the rug under gaffer tape and into a wall plate. The rug is a worn Southwestern weave with faded patches and a corner curling up. Two Edison pendants and tungsten keys light it, with a little haze. No blue light anywhere except the bolt on the sign.

Detail of the center wall: the sign, the 1841 map and the bronze mustang
Center wall detail. The sign, the Arrowsmith map, the bronze mustang. This is where the seam of the split wide shot lands later.

Four cameras, fixed across episodes: A is the wide two-shot, B is Andi's close-up shot across the table, C is Marco's, and H is the standing hero shot at the map used for the end card. Plates render at 512 samples, about seven minutes for the three seated cameras on the GPU box, and get a denoise pass before anything is composited onto them.

04

Putting the hosts in the chairsClay mannequins for scale, an image edit model for the people, a matte and a grade to make them sit in the light

Andi's face is the avatar from the team page, approved as is. Marco was picked from a sheet of candidates: glasses, combed-back hair, short beard, denim shirt. Each host then got a character sheet, front and profiles, so the face survives when the camera moves.

Sheet of Marco face candidates
Marco candidates. Number 4 won.
Marco character sheet, front and profile
Marco's character sheet. The profile references are what keep him looking like himself in the wide shot, where he faces Andi.

The first problem was scale. Image models size people by eye, so a host generated straight onto the empty plate came out a foot too tall or floating above the chair. The fix is old-fashioned: a clay mannequin, Marco at 1.78 m and Andi at about 1.68 m, is posed in the chair in the 3D scene and rendered as a guide plate. The edit model then replaces the mannequin with the host and has no choice about where the body goes.

Wide shot with clay mannequins in both chairs
The mannequin plate for the wide. Scale and position are decided here, in 3D, not by the image model.
Andi's close-up camera with the mannequin
Camera B with the mannequin. These plates get denoised first; left grainy, the model turns the grain into blocky fabric.

The swap is Qwen-Image-Edit with an 8-step Lightning LoRA, about a minute per edit, given the mannequin plate, the host's front reference and a profile reference. The generated host is cut out with a BiRefNet matte and pasted onto the untouched plate, which is how the background stays identical across shots. The mic rigs render as a separate foreground layer and go back on top.

A relight pass was supposed to sit the host in the room's light. It produced a halo around the hair and, when we tightened the matte to remove it, trimmed Marco's glasses. It was dropped. A grade-match pass does the job instead: it mutes saturation, matches contrast and grain to the plate, and puts one warm grade over the whole frame.

Marco close-up with and without the relight pass
The halo problem. Left to right: relit with the glow, a patched matte, no relight at all. No relight won.
Grade strength comparison
Grade-match strength. The strongest setting was locked; it makes the photoreal host and the rendered room read as one photograph.

Wardrobe was tested as a set of edits on the same crop. Four looks were approved for Andi; episode one is the cognac suede fringe dress with tall white boots. Marco wears a faded denim pearl-snap, indigo jeans and roper boots, no logos.

Andi wardrobe test: cognac suede fringe
Cognac suede fringe, white boots. The episode one look.
Andi wardrobe test: cream lace prairie dress
Cream lace prairie, tan boots with turquoise inlay.
Andi wardrobe test: black leather fringe jacket, oxblood boots
Leather fringe jacket, oxblood boots.
Andi wardrobe test: black leather fringe jacket, black boots
Same jacket, black boots with silver toe caps.

The model has habits, and most of the prompt is there to stop them. It crosses Andi's legs unless told knees together and boots flat. It draws laced oxfords unless told roper boots with no laces and the jeans over the shafts. It gives her bangs unless the prompt says no bangs. If a close-up prompt mentions boots, it perches her on the table to show them. Given an extra face reference it makes the host look at the lens, which is useful for a close-up and wrong for the wide, where they should be looking at each other.

Posture went through two rounds. The hosts started leaning toward the table; the locked version is upright, which puts the mics at mouth height in all three cameras. Andi's close-up got one more pass, a slimmer, fitted version of the same dress with the lighting kept.

Wide shot with hosts leaning in
Leaning version, first approved wide.
Wide shot with hosts upright
Upright, with a zoomed face pass. Mics now sit where mics sit.
Boot and leg fixes on the wide shot
The boots pass: a zoomed edit on a 512 px region of the host crop, feathered back in. Crossed legs and a floating boot, then both boots on the rug.
Andi close-up before and after the refit pass
Andi's refit on camera B. Same lighting, fitted dress.
05

The wide shot, split down the middleTwo people in one 1080p frame gives each face 40 pixels. So the frame is two frames.

Generating both hosts in a single wide plate failed twice. The faces came back at about 40 px wide, too small for the identity to hold, and later too small for the lip-sync model to move a mouth. Trying to generate a host on a whole half of the frame failed differently: the model upscaled the person by about 1.6x and dropped the chair.

The method that works: each host is generated in its own run on a tight square crop around its mannequin, inside its own half of the frame, then pasted back and the two halves are merged at the center line. The seam falls on the fixed set, the mustang and the map, so it is invisible. Each half can be graded and fixed on its own. The video version uses the same split: each host is lip-synced separately on a 360 px head-and-shoulders crop rendered at 2x, then composited back onto the locked still with the host mask and the mic layer.

Center seam of the merged wide shot
The seam, zoomed. It runs through the mustang and the map, which are the same pixels in both halves.
The locked split wide shot
The locked wide. Andi's half and Marco's half, separate runs, one frame.
Head and shoulders crops used for the split lip-sync
The crops that go to the lip-sync model, one per host.
Frames from the split wide video
Frames from the split wide video. Both mouths move, and Andi gestures toward the mic on her lines.
06

Lip-syncInfiniteTalk on the per-speaker stems, 80 milliseconds late

The first test used Wan 2.2 S2V: 4.8 seconds of Andi took 961 seconds to render, about 200 times real time. The pipeline moved to InfiniteTalk on Wan 2.1 I2V 480p with the Lightx2v LoRA, six steps. Each host shot is driven by that host's own stem, sliced to the shot's time range, so the other voice cannot move the wrong mouth.

Close-ups render on a 640x640 crop of the locked still and get pasted back. In the wide, Andi's near-profile face with a mic partly in front of it barely moved even with the audio gain up, which produced the edit rule: Andi's lines play on her close-up or the split wide, never on a whole-frame wide render. Marco's mouth ran slightly late, so the dialogue is muxed 80 ms after the picture on every clip, chosen by ear from 0, 80 and 120.

Render time was the constraint on everything. Building SageAttention for the GB10 and enabling it in the graph cut a 132-frame Marco close-up from 378 s to 307 s, and an fp8 variant to 281 s. Frame counts are rounded up to fixed buckets (57, 81, 105, 129, 153) so a compiled graph can be reused across shots, and the assembly step trims to the true length.

961 sfirst S2V test for 4.8 s of video
~6.5 minper 105-frame close-up with InfiniteTalk and SageAttention
80 msaudio delay on every clip
~1.8 hGPU time per 90 s of lip-sync
Frames from the first InfiniteTalk wide test
Frames from the first InfiniteTalk test on the whole wide. Marco moves, Andi does not.
Andi mouth movement comparison, wide versus close-up
Andi's mouth in the wide versus her close-up. This is why her lines live on camera B.
07

The teaser30 to 45 seconds that sell the episode and resolve nothing

Every episode gets a short video for X and LinkedIn, in 16:9 and 9:16. The script is written fresh, 70 to 110 words, and it follows one rule: every beat is a question the episode answers, and no beat resolves. Andi states the fact with its number. Marco asks the question back or starts the explanation and gets cut off. The viewer leaves knowing what the stories are and not what they mean. No ads, no pitch, the URL once on the end card.

B-roll cues sit in the script as their own lines before the line they cover. A shot-list script turns the audio timestamps and the cues into shots: cut on every speaker change, nothing over six seconds, a long run covered in the middle by its B-roll or by the other host's reaction rendered on a silent stem. The seated wide is rationed to the open and the close; everything else is close-ups.

The B-roll library is generated: fifteen stills so far, drone-style, golden hour, from Qwen Image at 1920x1088, each given a slow push-in in the edit. Rules: no logos, no readable signage, no Barrio site, no real person's likeness next to the hosts. The next step is real photos from a story's own source, a company newsroom or a filing exhibit, with a credit burned in while they are on screen.

Graphics match the cover art: Bebas Neue lower thirds with the orange underline, captions on every line in a dark box inside the 9:16 safe area (most views on X play muted, so the captions carry it), and an end card over the hero still. The two aspect ratios come from fixed crop windows measured on each locked still. The whole thing is assembled in ffmpeg: cuts, dialogue 80 ms late, intro sting under the first three seconds, outro under the card, loudness normalized. The Episode 11 teaser above is 42 seconds and 14 shots.

Sheet of generated B-roll stills
The generated B-roll library. Substations, gas plants, transmission, container yards, all at golden hour, none of them real places.
Hero shot candidate before the face pass
Hero shot, first pass. The locked version at the top of this page is the same seed plus zoomed face passes on each host.
08

The stackWhat runs where

StepToolNotes
ScriptClaude, with per-host character docs and a banned-pattern linterSource material is the newsletters on this site. Zero lint hits before audio.
VoicesElevenLabs Voice Design, eleven_v3 text-to-dialogue with timestampsPer-speaker stems, pronunciation dictionary, Whisper large-v3 QA.
Mixffmpeg, two-pass loudnorm-16 LUFS, -1.5 dBTP, MP3 192k, ID3 chapters, WebVTT transcript.
StudioBlender 4 with Cycles, OpenCV denoiseFixed cameras A, B, C and H. Clean plates plus mannequin guide plates.
HostsQwen-Image-Edit 2511 with Lightning LoRA, BiRefNet matte, grade matchCharacter sheets for identity. No relight pass.
Lip-syncInfiniteTalk on Wan 2.1 I2V 480p, Lightx2v LoRA, SageAttentionComfyUI with the WanVideo wrapper. 640x640 close-ups, split wide at 720x720 per host.
B-rollQwen Image 25121920x1088 stills with a push-in.
AssemblyPython and ffmpeg, Pillow for graphicsShot list from timestamps, captions, lower thirds, end card, 16:9 and 9:16.
HardwareNVIDIA DGX Spark (GB10) for all image and video work; a Vultr VPS for audio, feed and this siteOne GPU, shared with the rest of Barrio's agents.
DistributionSelf-hosted RSS, Spotify, XNothing is published without a person approving that episode or teaser.
09

What is nextOpen items, in rough order

  • Render the set and mannequin plates at 4K so the wide shot's head crops come from native pixels, for sharper faces.
  • Real B-roll first: press photos from each story's own source, then free drone and infrastructure footage graded to the set.
  • Royce on camera. He has a voice and a biography and no chair yet.
  • A full-length video episode rather than a teaser. The pipeline is the same; the GPU hours are not.

Questions about any of this: info@barrioenergy.com.