posted September 13 2025
x-men re-examined: xavier remembers
Season 4, Episode 5. Air date: April 27, 1996.
X-Men: The Animated Series employed at least 37 writers over its five seasons, 20 of whom wrote one episode apiece. Of the writers with multiple credits, there doesn’t seem to be much consistency in the quality of their stories. Case in point: the same writer who gave us the season 2 standout, “Beauty and the Beast”, Stephanie Mathison, is also credited for “Xavier Remembers”. I don’t understand how the same person could have written both stories, because this episode is one of the thinnest yet.
At every step, this story commits the cardinal sin of telling rather than showing. Jean (Hi, Jean!) tells us that Xavier suffered a slight concussion (not pictured), which has made him vulnerable to attack from the Shadow King (last seen in season 2’s even worse “Whatever It Takes”). We’re told he fought the Shadow King long ago, but we’re shown only a single shot of that battle. We’re told that this encounter so profoundly affected Xavier that he founded the X-Men, but we’re given no sense of what set this apart from the many other fantastic encounters that characterize his life.
The good guys facing their worst nightmares is a pretty common Saturday morning trope. What’s less common is that the first time this happens, it’s not the team that experiences these visions; it’s Xavier thinking that the team is. When the Shadow King finally becomes strong enough to possess Xavier and torment the X-Men directly, about half that footage is shamelessly reused. The only new nightmare sequence, and by far the best of them, is Storm’s. The ceiling of her attic bedroom starts lowering, crushing everything in its way. Storm recognizes the presence of the Shadow King and refuses to give in to her greatest fear. This is about as good as the episode gets.
I cannot emphasize enough how little the Shadow King possessing Xavier matters. There’s a bit of evil monologuing and then Jean projects herself to the astral plane. She and Xavier, manifesting glowing weaponry, fight the Shadow King until he’s beaten. The fight is lengthy, boring, and badly animated. The characters are just outlines against starry backgrounds. My notes say, “More like the astral lame, right?” I want to believe this was an artistic choice, but it was a bad one. It probably freed up budget for “Sanctuary”.
Xavier closes the episode with the words, “He [the Shadow King] forced me to think through why I formed the X-Men, and why we fight for our ideals and for each other. In short, why I live. For that, I will always be grateful.” But this story has nothing to say about any of those things. It’s a totally unearned conclusion that makes no sense, the ultimate tell-don’t-show.
Stray observations:
-
There’s an enjoyable sequence where the Shadow King switches gears and tries to sway Xavier by showing him his dreams coming true. The X-Men, all brightly dressed for a day at the beach, inform him that mutant-human peace has been achieved. “This place is great! No Sentinels!” chirps Jubilee while sipping a drink.
-
You’re telling me that Wolverine, a guy who’s alternated between mercenary and government special agent for decades and has seen all manner of terrible things, is most afraid of Sabretooth?
-
This is Jean’s first appearance since “The Dark Phoenix” (at least with a line) and Jubilee’s first line since “Savage Land, Strange Heart”. Been a while, ladies!
-
When the X-Men are finally roused from sleep, Cyclops is the only one already in uniform.
-
Xavier’s astral projection dons classical fencing gear to fight the Shadow King, as he did when he fought Dark Phoenix.
-
The flashbacks to the founding of the X-Men, some of which are reused from “Sanctuary”, show Angel once again. Or rather, they show a weird mashup of bird-winged Angel and blue-faced Archangel. This has got to be an animation error.
-
On the toilet: Rogue and Gambit, technically. They’re in the illusions and flashbacks, but are otherwise mysteriously absent from the real-world events.
posted September 12 2025
the design optimism of the seneca keyboard
Adam Savage interviews Ryan Norbauer about his meticulously engineered keyboard, the Seneca. Norbauer gives a detailed walkthrough of how he dedicated months to researching and developing a key stabilizer that won’t (nay, can’t) jiggle, creating a precise movement free of unwanted noise. The stabilizer affects just five keys, but it exemplifies Norbauer’s entire philosophy. What starts as an engaging engineering analysis ends on a discussion of the optimistic futurism of Star Trek and the role of glamour in society. Norbauer, paraphrasing or perhaps quoting Virginia Postrel’s The Power of Glamour, says, “Glamour is free of the disappointments of everyday life.”
Norbauer readily admits that no one in their right mind needs to pay $3,600 to $8,000 for a keyboard (my Keychron Q6 Max feels plenty luxurious), but it’s not really about typing. It’s about the pursuit of perfection.
posted September 7 2025
x-men re-examined: sanctuary
I’m not sure there will ever be a story that so clearly showcases the highs and lows of what this show could do with twenty minutes. Part 1 is built around a thought provoking premise and gives characters plenty of time to react to it. It pulls in a ton of the show’s established continuity, which further emphasizes the impact and grandiosity of Magneto’s latest scheme. Part 2, on the other hand, is there to sell toys. It abandons the story’s thorny premise in favor of a twitchy villain, half-baked action, and a rushed conclusion. It feels like “Sanctuary” was supposed to be a much bigger story, but got trimmed down to two episodes during development.
So let’s talk about Magneto’s ambitious plan to form a segregationist utopia in low Earth orbit, and how this concept doesn’t really mesh with the toyetic demands of Saturday morning cartoons.
Part 1
Season 4, Episode 3. Air date: October 21, 1995.
There’s a lot going on this episode, sometimes a little too much! Someone or something is stealing the Earth’s satellites, some of which have nuclear capabilities. The scientists that man these satellites are also disappearing, or at least, all the mutants are.
The delegates of the U.N. get a minute to argue about the situation, pointedly accusing Genosha of abducting the mutant scientists in service of its slave labor economy. “The Republic of Free Genosha objects strenuously to the term ‘slavery’. Mutant powers are a resource to be managed like any other,” says the Genoshan representative.
It’s at this point that Magneto demolishes the roof of the U.N. building, wraps the desperately fleeing Genoshan delegate in what was formerly a metal railing, and delivers what just might be the series’s greatest-ever monologue. It’s worth reading in full:
The mutant race will no longer be “managed”, Mr. Delegate. Ladies, gentlemen! You have been chosen to witness the announcement of a momentous event in the history of our planet: the liberation of mutantkind has begun. Too long have we suffered under the oppression of humankind. I have witnessed firsthand the barbarous treatment of mutants on your wretched little island [directly addressing the delegate from Genosha]. I will not allow this madness to continue! We have seen communities torn apart by the jealous hatred of our mutant gifts. Roving mobs of vigilantes seek out the infirm among us. Some mutants conceal their true power, living a charade of normality while their spirit suffocates. Others have gone into hiding beneath your cities, huddling in the darkness like rats. There are those who have tried nobly to enlighten their human brethren, to strive for freedom and equality for all men. Their efforts have been repaid with brutality and hatred! The missing mutant scientists and I have built a mutants-only asteroid, where any mutant may live apart from humanity, free from its cruelty…My mission is peaceful. Any intervention would make it otherwise. The decision is yours.
It’s an incredible moment for the show. I don’t think any character has ever gotten a monologue this long. In a format where every second counts, it’s a lot of talking for one character, and David Hemblen knocks it out of the park. Magneto backs up his words with a highlight reel of anti-mutant bigotry pulled from previous episodes. The inescapable conclusion is that—say it with me—Magneto was right. Xavier’s dream is beautiful in theory, but just results in a lot of fighting in practice. It’s not working, and in Magneto’s opinion, the only viable solution is for mutants to leave Earth behind entirely. If you disagree, well, he’s recently acquired over 200 nukes, so please don’t. This is Peak Magneto, people. This is the Magneto who ends up on t-shirts and inspires veterans of the Royal Shakespeare Company to do cape flicks. It’s so good that, thirty years later, the writers of X-Men ‘97 are going to give Magneto a chance to do it again.
The amount of in-show continuity here is dizzying. Magneto’s clip reel includes everything from the Sentinels to the Morlocks to the Friends of Humanity. His speech is watched by Mister Sinister and Apocalypse (from separate lairs, naturally), as well as mutants across the world. The setup makes the scale of Magneto’s offer feel global in a way that not even the Phoenix Sagas managed to achieve.
And it works. Crowds of mutants are desperate to get to Magneto’s designated pickup points and ascend to the paradise he’s built on Asteroid M.1 Xavier, in contrast, is horrified by what he believes amounts to segregation. The other X-Men are less sure. Even Beast says, “For all our efforts, we seem to spend more time fighting for our lives than for mutant rights.” Gambit wants to get to Asteroid M to check on an old friend of his, Byron Calley. Rogue worries that Gambit might live on Asteroid M permanently, which doesn’t really seem in-character for him, but it’s nice to see the two of them openly flirting again. Despite Gambit’s interest in Byron early on, nothing really comes of it, which makes me think there was an earlier draft of this story in which Byron had a bigger role.
Xavier, Beast, and Gambit join the crowd of mutants in Africa, where Magneto convinces them to see Asteroid M for themselves. Magneto delivers on his promise of transporting any willing mutant away, but it seems to tax even his vast powers. Rather than head straight to Asteroid M, Magneto takes the whole collection of refugees to Genosha for another pickup. The Genoshan government has a violent response to this. Luckily, a strung-out weirdo named Fabian Cortez and his Acolytes show up to assist “Lord Magneto”. It’s the first big brawl of the season and a little too chaotic, but it snaps into focus when the Genoshan military activates three Sentinels to try to kill Magneto.2 Cortez, luckily, can amplify other mutants’ abilities. After a boost from Cortez, Magneto destroys all three Sentinels in a single, dramatic burst of power.
With Genosha liberated, we finally get to Asteroid M. Xavier notes that Magneto, who is exhausted from the day’s events, might become dependent on Cortez’s abilities, “like a drug.” Nothing else comes of this comment, again suggesting a dropped subplot. Instead, Xavier gets a frosty hello from Amelia Voght, his ex-girlfriend. As Beast will explain, Charles and Amelia had a falling out when he was training the X-Men, whereas she felt that mutants would be better off laying low.3
Magneto then leads Asteroid M’s first state dinner while wearing something of a statement piece. If Asteroid M’s first law is “All mutants welcome,” the second must be, “If ya got it, flaunt it.”4 This oh-so brief taste of things going according to plan is interrupted by a volley of missiles, which Magneto manages to repel. Byron informs Magneto that this wasn’t an unprovoked attack; a missile was launched from Asteroid M shortly before. Magneto immediately suspects Cortez, who has been ranting about “the flatscan5 human tyrants” and begging Magneto to do more than just isolate from them.
Things come to a head when Cortez shows up in Magneto’s quarters. Magneto tries to put him in his place, but Cortez reveals the flip side of his abilities: depowering mutants. Magneto is so weakened that he can barely move, and Cortez explains that he’ll shortly dissolve. But before that, he’ll make a convenient martyr for the cause. Cortez disposes of Magneto in an escape shuttle (already too stupid to just throw him into space, I guess) and immediately frames the X-Men for the murder.
This is a remarkable half hour for the show. Aside from the action piece in the middle, almost all its running time is given over to some very big questions. Is Xavier’s dream of mutant-human coexistence a fool’s errand? Haven’t his attempts to achieve that dream amounted to training a group of vigilantes, and heaped unwanted attention on mutants who just want to live quiet lives? Doesn’t the fact that Genosha is still enslaving mutants prove that the X-Men are ineffective? Is Magneto’s idea of a mutant-only utopia any better than “go back to where you came from”? Is the shortcut to international recognition nuclear armament? Is an uneasy, nuclear-enforced truce between mutants and humans as close as we can get to peace?
If you’re sitting there thinking, wow, this is awfully weighty material for a Saturday morning cartoon, don’t worry. Part 2 is going to throw all these questions away and restore the balance.
Stray observations:
-
When Beast is giving us a flashback to Xavier, Amelia, and the early days of the X-Men (1960s costumes and all), one of them is Angel, who was never an X-Man in the show’s continuity. Let’s just assume it’s some other blonde guy with majestic wings.
-
Blink and you’ll miss it, but none other than Black Panther watches the whole group depart Africa.
-
On the toilet: Cyclops, Jean, and even Wolverine (!) don’t appear at all, other than in the reused footage during Magneto’s speech at the UN. Storm and Jubilee can be spotted ever so briefly in an early scene, but have no lines.
Part 2
Season 4, Episode 4. Air date: October 28, 1995.
As I see it, Part 2 suffers from two problems. One, Fabian Cortez isn’t a plausible leader, especially next to Magneto’s clear-eyed stateliness. I mean, look at the guy. He looks like he’s been crashing on his cousin’s couch for five months and is going to start looking for a job tomorrow, I promise, man, I promise. On top of that, Lawrence Bayne voices him somewhere between Jay Mohr’s Christopher Walken impression and a psychotic break.
Two, did you know that ’90s cartoons were often used as a means to sell toys to kids? It’s especially egregious in this episode. Labels like SHIAR CLOAK and SHIAR SHIELD are hilariously on the nose. I’m also offended on Hank McCoy’s behalf, as he certainly has stronger UX chops than this. Look at that shoddy text layout! And then there are these extremely ’90s costumes! Rogue’s is relatively restrained, while Wolverine gets an all-black number that makes him look too much like Batman, and Beast’s and Xavier’s look positively deranged. I can’t locate definitive proof, but I found at least one post claiming that these were, indeed, part of a light-up toy line.
All this is to say, Part 2 is a severe downgrade from Part 1. There’s just too much going on. Gambit volunteers to hold off Cortez’s minions so that the rest of the team can reach an escape shuttle. Charles Xavier, doing the most Xavier thing ever, waits about one second before deciding to jettison from Asteroid M, leaving Gambit behind. The team crash lands on Earth, much to Rogue’s chagrin, who nearly rips the shuttle in half searching for him. Once back on Earth, Xavier takes his sweet time talking the President into giving the X-Men another chance and leading a memorial service for Magneto.
The memorial service is strange in a lot of ways. Wolverine quietly pops into the story here without any explanation for his absence.6 Xavier’s flashbacks to Magneto’s tragic backstory are a lot more German-coded than the last time the show referenced them, though of course this kids’ show stops short of making Magneto’s status as a Holocaust survivor explicit. Xavier refers to Magneto as, “our most intractable opponent,” which is weird because despite the man’s frequent appearances on the show, he’s only been an outright antagonist twice (“Enter Magneto” and “Deadly Reunions”). And then there is Rogue’s outfit. What in the Antebellum nonsense is this? What is this jacket and vest combo from Hobbiton’s Finest? What is this frilly jabot around her neck? And what on Earth is going on with her hair in this scene? Of course, this is all secondary to the fact that Xavier absolutely does not have time for this. Gambit is still stuck on Asteroid M and Cortez could kill him at any moment! Get your ass in gear, man!
Meanwhile, back on Asteroid M, Cortez is in the process of making an example of Gambit for murdering “Lord Magneto”. Amelia Voght smells a rat, takes a tip from the imprisoned Gambit, and starts snooping around for evidence that will reveal Cortez’s guilt. Amelia’s mutant power is that she can sublimate into gas, so it’s trivial for her to slip into restricted areas and locate the missing surveillance footage. It’s all very easy and doesn’t make a lot of sense. Why would Amelia help one of Xavier’s people? From her perspective, isn’t Gambit just demonstrating the whole problem with Xavier’s worldview? For that matter, why is she even here? Wouldn’t it make more sense for Gambit’s old friend, Byron, to help him out? It would certainly be more dramatic, because Byron can’t just turn into a mist to get wherever he needs to be.
In the episode’s third and least developed subplot, Magneto’s shuttle crashes on Earth. He keeps fading in and out of existence and screaming, “I LIVE!!!” This scares the hell out of some people who are probably Bedouins, but doesn’t do much else.
Anyway, the X-Men return to Asteroid M in their crazy outfits (SHIAR SHIELD, SHIAR CLOAK, SHIAR ETCETERA) and engage in some perfunctory brawls with Cortez’s minions. Amelia finds the evidence she needs and exposes Cortez, at which point his former followers turn on him. He panics, instructing Byron to launch all of the station’s nukes. The X-Men do what they can to shoot them down, but it’s not enough. Just then, Magneto returns and deflects all the missiles, having been “nourished by the Earth’s magnetic field as a mother nourishes her child.” Sure, whatever. For good measure, Magneto clamps down on Cortez the same way he did the Genoshan U.N. delegate. Despite all the half-baked craziness, it’s pretty satisfying!
The only remnant of the big idea that kicked off this story is Magneto’s final decision to sink Asteroid M. His dream of a separatist mutant utopia is now too poisoned to ever be viable. Magneto, never one to tolerate half measures, destroys the project with the same decisiveness he had in building it. He even tells Xavier not to worry. He has no doubt that he’ll survive Asteroid M’s reentry into Earth’s atmosphere and subsequent plunge into the ocean.
Probably the funniest scene in the entire story occurs near the end, as Xavier and Amelia are having one last back and forth about mutant-human relations. Xavier offers to rekindle things with Amelia, but I mean, come on. Imagine that your ex-boyfriend is trying to convince you to get back together while he’s wearing this outfit.
It’s very disappointing to see such a promising setup rapidly fall off a cliff. There’s a lot in Part 2 that doesn’t matter at all: Cortez’s broadcasted threats against Earth, Magneto’s pseudo-death and memorial, Beast disarming a few of the nukes, all the fights, and most characters’ mutant powers. All to sell some toys. Man, what could have been.
But as a little sweetener, the next time we see Cortez is at the end of the episode, as he’s regaining consciousness in Apocalypse’s lair!
Now That’s What I Call ’90s: the sheer toyetic absurdity of the X-Men’s costumes.
Stray observations:
-
Gambit has a power-suppressing collar from Genosha around his neck for most of the episode, which is shamefully poor writing. There is simply no way that either Magneto or Cortez would tolerate these. Wouldn’t it have been more interesting if Cortez had continuously drained Gambit’s powers, simultaneously keeping Gambit under control and demonstrating that Cortez will be the ultimate arbiter of mutant gifts on Asteroid M?
-
Blink and you’ll miss it, but none other than Black Panther watches the whole group return to Africa.
-
On the toilet: Cyclops, Jean, Storm, and Jubilee.
-
You’re not a true Marvel arch-villain until you have a lair. There are at least five iterations of Asteroid M in the main Marvel continuity, to say nothing of alternate universe versions like the one shown here. ↩
-
There’s no sign of the Sentinel Program proper, which means Genosha has probably figured out how to repurpose these killer robots for themselves. They really have it coming. ↩
-
Amelia Voght was, at the time, a new character to the franchise, debuting in 1993. Courtesy of show writer Stephen Melching, we know that Fox’s Standard’s & Practices was awfully preoccupied with the idea that Charles and Amelia might have been living in sin. S&P sent at least three notes demanding that the animators not show Amelia with suitcases in her hands when she walks out, god forbid what the children would make of that. It’s the children that care about this kind of thing, right? ↩
-
S&P also advised the animators not to show women in low-cut costumes. They didn’t say anything about the men, though! ↩
-
“Flatscan” is an anti-human slur that Marvel briefly put into the mouths of its more hateful mutant villains. It never really caught on, and Marvel has since let it fade away. ↩
-
Wolverine barely does anything in this story and isn’t even really needed. He’s only here because he’s part of this toy line they’re trying to sell. ↩
posted August 10 2025
x-men re-examined: a deal with the devil
Season 4, Episode 2. Air date: September 14, 1996 (in season 5).
The worst thing an episode of X-Men: The Animated Series can be is boring, and people, they don’t get much more boring than this. The US military wants to salvage a derelict Soviet nuclear submarine, and to do it they thaw out Omega Red. In exchange, Red demands that Wolverine and Storm—the two people who put him on ice last time, never mind Colossus I guess—accompany him down into the sub. Once there, Red quickly gains control of the sub and its nuclear arsenal, and proceeds to hold the world hostage. It’s up to Rogue and Beast to disable the sub before Red can launch its missiles or the Air Force swoops in to blow up the whole thing.
The episode is littered with low quality animation and plot holes (again, this was slated for season 4 but aired during season 5; all of the season 5 episodes we’ve seen so far have been terrible). Chief among them: why would Storm have agreed to be Omega Red’s bargaining chip? Sure, Wolverine has an axe to grind and would want to keep an eye on the guy, and his healing powers mean that the sub can’t kill him. But this has got to be a nightmare scenario for Storm, plunging herself into an enclosed space that will trigger her claustrophobia and severely limit her powers, to say nothing of the whole place being extraordinarily poisonous to her.
There are no character beats to speak of. There’s a lot of generic growling and trash talk from Wolverine, but he’s completely useless. He gets knocked unconscious halfway through the episode, eliminating him from the story. There are a couple of nods to Storm’s claustrophobia, but nothing that meaningfully affects the events.
The action is no better, just a couple of very low stakes tussles between Wolverine, Storm, and Omega Red that don’t really go anywhere. Meanwhile, you’ve got Beast and Rogue hovering nearby in the Blackbird, alternately trying to disable the sub or knock its missiles out of the sky before they arm. Reading that sentence, you might imagine that this would be a great opportunity for Beast to show off his brilliance and hack the sub, or for Rogue to fly off and wrestle the missiles out of the air at great risk to herself. But nope, nothing like that happens! It’s just Beast and Rogue sitting in the Blackbird’s cockpit, either releasing depth charges at the sub or using lasers to try to shoot down the missiles (they missed two but luckily the Air Force got them, oh wow). Rogue does eventually dive down to the sub to rip it up and force an evacuation. This is played for drama—can she survive the water pressure? The writers forgot that we’ve seen Rogue survive in deep space.
In the end, Storm fireman-carries an unconscious Wolverine to an escape craft, which the Blackbird then airlifts out of the ocean. Omega Red tries to steer the sub to a new location, but thanks to the damage that Rogue did, it malfunctions and the whole thing falls into a deep sea trench. Recapping the events for Xavier, Beast says of Wolverine, “I’m sure he feels that he could have done more.” I’ll say, Hank.
Stray observations:
-
The US military brass, giving Omega Red the hard sell about the current state of geopolitics: “The Cold War is over. We won.”
-
Red pronounces the word “Colonel” as “Co-low-nell”.
-
Wolverine, remarking on the sub’s still-functioning reactor: “They oughta use this tub in one of those battery ads with the rabbit.”
-
Lenore Zann still gets the episode’s two best lines. As Red loads up another volley of nukes, she simply says, “That does it,” and dives into the ocean to personally rip apart the sub. When Beast asks what the hell is going on, she says, “I bent his boat.”
-
On the toilet: Cyclops, Jean, Jubilee, and Gambit.
posted August 6 2025
x-men re-examined: the juggernaut returns
Season 4, Episode 1. Air date: May 6, 1995.
This episode is one of three that were pulled forward in Fox’s airing order to replace delayed season 3 episodes, but as originally produced, it was supposed to be the season 4 opener. It’s the show’s lightest season premiere by a mile, which isn’t necessarily a bad thing, especially after the intense stories that dominated season 3. The plot here is simple. The Juggernaut loses his powers and the X-Men have to restore them, despite their very well-founded misgivings. Along the way, we get lots of character beats and see Xavier in a new light.
We last saw Juggernaut (aka Cain Marko) getting tossed into the ocean by Gladiator during “The Phoenix Saga”. What happened to him after that? He walked across the ocean floor for a while, as shown in the “Previously On…” Wait a minute, that’s new animation! The “Previously On…” has heretofore only ever reused clips we’ve already seen. I’m guessing they animated this sequence for the earlier story but had to cut it for time.
The undersea journey continues into the first scene of the episode, implying that Juggernaut has been slowly trudging back to New York for months, but hey, he’s the Juggernaut; a magic ruby makes him completely invulnerable, remember. Juggernaut punches a shark, emerges from the ocean, causes some mayhem in NYC, peels the top off of a cab, and drives it to the X-Mansion.
Courtesy of the news coverage of Juggernaut’s gleeful violence in the city, Xavier sees his half-brother coming and hastily tries to assemble his X-Men. He forgets that he is the world’s foremost telepath and instead tries to get in touch with everyone over their comm badges.
-
Beast runs in immediately, as he’s the only team member also at the mansion.
-
Rogue and Storm are out shopping for some new outfits, as they are known to do. Storm is wearing a green ensemble that, naturally, looks incredible on her. No bad looks for this lady.
-
Wolverine and Cyclops are shown jumping into the Blackbird. They were at Muir Island, visiting Morph, who can be glimpsed waving goodbye (Awww! First appearance since “Reunion”).
-
Jubilee is having fun in somebody’s pool and misses the call.
-
Gambit is fixing a broken down school bus. He even uses his powers to jump start it. He will never mention this act of altruism to anyone, and if ever asked why he missed Xavier’s call, he’ll probably just scowl mysteriously, thinking of a carburetor.
-
Jean’s absence is unexplained. Xavier doesn’t contact her. Possibly she’s at Muir Island recovering from the Dark Phoenix Saga (which might explain Cyclops’s presence there), but then again she looked fine in “Love in Vain”, which supposedly takes place before this episode.
Juggernaut busts in and shrugs off all of the mansion’s defenses. Xavier manages to corral him into the Danger Room, where he and Beast stall for time. Just when it looks like Juggernaut is about to break Xavier in half, he screams and loses his powers.
Intercut with all of the Juggernaut stuff are scenes of a hapless nerd, Eugene Torbett Widerspahn, exploring the ruins of a mysterious temple. Turns out it’s the Temple of Cyttorak, and Eugene has uncovered all the magical bits and bobs he needs to claim the powers of the Juggernaut for himself. Since the gem can only empower one person at a time, Cain Marko loses.
This is what makes the episode unusual: from here out, it doesn’t really have a villain. Eugene does a lot of accidental damage, mostly to his apartment and reputation, but he’s not out to hurt anyone. He just wants to score with chicks or whatever! Meanwhile, Cain, having been crushed by falling Danger Room debris when he lost his powers, is in a coma, and his only hope of recovery is to reclaim the powers of the Juggernaut. He’s still mean, but he’s not exactly a threat.
Xavier is insistent that they can’t let Cain Marko die, no matter how awful he is. It’s a noble sentiment that Cain is really, really going to test for the remainder of the episode. Through telepathic flashbacks, we see young Cain and Charles interacting as kids. Cain is only too happy to recount how his father (Charles’s stepfather) wanted to see Charles’s mother pass away and collect her fortune.1 The stepfather is so nasty that it kind of seems like he might’ve had something to do with it, but the episode keeps the focus on how it affects Charles. On top of that, Cain is a bully and a bigot, at first calling Charles a “mutie”, and then later in life, getting everyone at school to do the same.2
He’s a real piece of work, this guy. Yes, his dad favored Charles and shipped Cain off to military school, but that hardly excuses the constant bullying and, later, multiple attempted murders. Xavier is forced to relive a lot of painful stuff—the illness and death of his mother, the confusing emergence of his powers, Cain’s relentless bullying, and tellingly, his failure to steer young Cain towards a better path. It’s too much, even for him. “I thought I was over all of this…but I was just a child. It hurts so much,” he says in dismay. Xavier is usually calm and collected to a fault, and yet here he’s more vulnerable than we’ve ever seen. For a moment it seems like he wants to let Cain die, but Storm brings him back around. The great Charles Xavier will not allow his past pain to bring him low, kids.
Meanwhile, Cyclops and Wolverine are on a mission to get the Crimson Gem of Cyttorak away from Eugene. It’s an easy one, as Eugene just wants to impress the girls at the club, not rule the world. He is, however, invincible and oblivious. He ignores Cyclops’s well-meaning advice (“Women like guys to be themselves. We could help you get back that way.”), which leads to a rare moment where Cyclops is cool and Wolverine isn’t:
Wolverine: Looks like we’ll have to do this…the hard way.
He lunges at Eugene, who knocks away his attack mid-dance without even noticing.
Cyclops: You don’t have to make it that hard.
A quick laser blast knocks Eugene off balance, the Crimson Gem of Cyttorak tumbling out of his pocket. End of “action” scene.
With the gem recovered from Eugene and Xavier recovered from his childhood trauma, he reconvenes with Cain in his mindscape, letting him know that he can say the magic incantation any time. When Cain asks what Xavier’s getting out of all this, he simply says, “The satisfaction of saving your life.” Cain speaks the incantation, becomes the Juggernaut once again, and throws the Crimson Gem of Cyttorak into space.3 Rather than try to kill the X-Men yet again, he begrudgingly walks out of the mansion without saying a word, as close to a “thank you” as you’ll ever get out of this guy.
Overall, a surprisingly solid, fun episode. The show’s take on Cain Marko is still pretty grating, and the quickly rendered portrayal of childhood trauma isn’t exactly nuanced, but seeing a more vulnerable side of Xavier was very effective. I also enjoyed the little character beats throughout (Gambit fixing a bus, Storm counseling Xavier, Wolverine being a bit of a dumbass, etc.). Not bad at all for a “light” season premiere.
Now That’s What I Call ’90s: Eugene leaps into the air to try to reach Wolverine and Cyclops in the Blackbird, but misses and crashes through the roof of a film studio. These people are definitely filming an episode of that other ’90s mega-hit, Power Rangers. The soundtrack even plays a few notes that sound suspiciously like its catchy theme tune, itself a subject of rad Powerglove covers.
Stray observations:
-
I love the way the show filled out Juggernaut’s chaotic re-emergence in NYC. There’s a brief shot of two kids bothering each other in the back seat of a car (a nod to the sibling rivalry theme of the episode). When Juggernaut tears a cab in half, there’s a guy yakking into his carphone, saying, “Yeah, sell all the City Cab stuff.”
-
“Heeeeere’s Juggy!” Again, Cain Marko’s penchant for grade-school puns and dated references is annoying.
-
On the toilet: Jean. Like I said, she’s probably supposed to be recuperating at Muir Island. Her presence in “Love in Vain” might just be a continuity error.
-
Xavier is still fabulously wealthy years later, so either something foiled Kurt Marko’s attempt to claim the money (maybe something as mundane as an estate plan), or Xavier made his own fortune over the decades. ↩
-
Hang on. It’s not exactly clear how old Xavier is supposed to be on this show, but somewhere around 60 seems like a safe bet. In the flashbacks, he’s in his early teens at most, which would mean they start around 1950, 45 years prior. Cain shouldn’t have any idea what a “mutant” is, because no one does. Sure, you’ve got your X-Ternals, Apocalypses, and Misters Sinister lurking in the shadows, but the existence of mutants doesn’t become common knowledge until shortly before the series begins. I really wish the show had had Cain use literally any other insult against young Charles, because this continuity error is going to kill me. ↩
-
Where it will surely stay forever, right? ↩
posted July 28 2025
the unreasonable effectiveness of dithering
A long time ago, a beloved college professor of mine opened his lecture with a joke:
Three scientists are working late in the lab one night, and they get into a debate: what’s the greatest invention of all time?
“The wheel,” says one. “It’s the basis of all other mechanical engineering.”
“The microchip,” says the second. “It enabled the Information Age and revolutionized life as we know it.”
“Antibiotics,” says the third. “Untold billions of lives saved.”
The three continue debating this for some time. A janitor happens by, and overhearing the chat, he pipes up with, “The thermos.”
“The thermos?” says the first scientist. “What’s so great about a thermos?”
“Well,” says the janitor, as if it were obvious, “a thermos keeps hot things hot and cold things cold.”
“So?”
“So?” says the janitor, “How does it always know?”
My professor, a diehard Gibsonian psychologist, was teeing up a point about how we can explain much of human perception without ever invoking a cryptic interior process like “knowing”. A thermos doesn’t have to know or decide anything about its contents, it just obeys the laws of physics, as all things must.
All of this is, of course, my way of saying I want to talk a little bit about dithering, the process of making a small color palette look like a much bigger one. Let’s start with some pictures (click/tap any of the images in this post to go to a zoomable file).
It’s 1990. VGA and its decadent 256 colors are the cutting edge, but there are still plenty of computers being used in 16, 4, or even 2-color modes. To display anything like a photograph on your vintage Macintosh, with its 2-color display, you’ve got to borrow a trick from the pointillists. The image above shows the following:
-
My original grayscale photo of Washington Tower.
-
The simple thresholding approach: just figure out whether each gray value is closer to black or white, and go with that. It’s okay for certain drawings, but bad for anything with shades of gray, especially photos.
-
Bayer ordered dithering, common on PCs of the era.
-
Atkinson dithering, of the kind you might have seen on a Macintosh in 1984. It’s my personal favorite.
-
Floyd-Steinberg dithering, also often seen on PCs.
-
A drip effect I created by messing with the dithering kernel. More on this below.
The effect is striking, even today. It’s hard to believe that there aren’t any shades of gray in the dithered images, especially on a modern high DPI display, which is why I included detail insets of the tower’s central window. That dithering works so well is a testament to ingenuity; that dithering works at all is a testament to evolution. Dithering exploits the way human vision works in ways so fundamental that they’re easy to take for granted. For example, the visual system prioritizes the low frequency information (big objects) in a scene over the high frequency information (small details). We perceive the gist first, with the details coming in milliseconds later—we literally see the tower before the pixels.1
As a kid, dithering always seemed like a magic trick to me. “How does it always know?” The computer can’t display shades of gray, so how does it know that the patch of gray sky needs to become so many dots of black or white? How does it work out the transitions? The question felt especially baffling for Bayer dithering, which really looked to my teenaged eyes like someone had meticulously layered a cross stitch pattern onto a photograph.
If you want a detailed explanation of how dithering algorithms work, here’s a great one (and another and another). I’m less interested in the math and more interested in the perception, but here’s a brief rundown.
Ordered dithering (top-right in the tower images above) looks like someone laid a pattern over the image because essentially, that’s exactly what’s happening. A small grid of numbers—the dithering kernel—is tiled across the original image to tweak its values up or down, and then the image’s modified values are matched to the available color palette. The image at left shows ordered dithering of a grayscale gradient with a 2×2 kernel, 4×4, and 8×8. The larger the kernel, the more dithering patterns are possible, though in practice the 8×8 is as far as you need to go. The darkest part of the gradient stays solid black, because none of the kernel’s modifications are enough to move them toward white. But as the original image gets lighter, the kernel tips more and more pixels toward white. Ordered dithering can be done in parallel, because each pixel of the image is modified independently by exactly one pixel of the kernel (though of course, parallel processing was a distant dream in the dithering era).
The three other images of the tower are examples of diffusion dithering, which is a very different approach. Diffusion algorithms move across the image one pixel at a time, left to right, up and down.2 The current pixel is changed to its closest match in the available palette. Then the difference between the old and new colors—the quantization error—is distributed to the neighboring pixels according to the weights specified in the kernel. Once a pixel is matched to the palette, it is never touched again, but before that happens, an image pixel might get adjusted by the kernel multiple times. In ordered dithering, each pixel is modified independently, but in diffusion dithering the fate of every pixel depends, at least a little, on what happened to the pixels that came before it.
The Atkinson and Floyd-Steinberg dithering techniques are the same diffusion approach with different kernels. Both have carefully chosen values such that, given a field of 50% gray, they’ll produce a checkerboard of black and white. That’s a good test for a kernel, but by no means the only criterion, as the image below shows.
-
The original image in 256 shades of gray. The inset shows what the kernel does to a 50% gray image at double magnification. Since there’s no kernel here, it’s just a gray square. Thrilling.
-
Atkinson dithering. You might have noticed that Atkinson dithering creates a higher contrast image compared to the other algorithms. That’s because the Atkinson kernel only compensates for 75% of the quantization error, discarding the rest. Thus, bright areas tend to stay a little brighter, dark areas stay a little darker, and interestingly, the kernel’s effect on a 50% gray field produces a chunkier checkerboard than the other kernels.
-
Floyd-Steinberg dithering. Applying this kernel to the 50% gray image produces a perfect checkerboard of alternating black and white pixels. The weights in the kernel add up to 1, so changes in brightness are fully compensated, though the weights themselves seem kind of arbitrary.
-
A custom kernel that pushes the quantization error to the pixel immediately to the right. I’m compensating for all the quantization error, but my kernel is too simple, and the artifacts from it are obvious and ugly.
-
A custom kernel that pushes the error to the pixel immediately below. Same idea as #4, just in a different direction. Same ugliness, although arguably worse for this image in particular, as you really lose definition in the staircase. My simple kernel is imposing a little too much of its own structure on the image, and its strong vertical component cancels out the horizontals of the steps.
-
A custom kernel that distributes the quantization error evenly to three pixels surrounding the current one. It almost works. It even produces a checkerboard on the 50% gray image, just like Floyd-Steinberg. But it still doesn’t look great. The resulting image looks over-sharpened, and the sky has an odd stucco-like texture to it.
Human perception is a messy thing, cobbled together over millions of years of evolution, and evolution very rarely lines up with mathematical elegance. Just as it’s impossible to divide a music scale into numerically equal ratios that still sound good together, there’s no obvious recipe for a good dithering kernel. You just have to feel it out, along with some educated guesses. My custom “drip” kernel (bottom-right in the first image) takes badness to the extreme. I provide a kernel with a single negative weight, so rather than diffusing the error around the neighboring pixels, it passes the error to the pixel below the current one.
All this, and I haven’t even talked about color.
-
My original color photograph of Washington Tower. It uses 61,607 unique colors in the modern sRGB color gamut (out of 16.8 million possible colors), or what we used to call “True Color”.
-
An Atkinson dithered version in the default VGA 256-color palette. This image uses 166 unique colors, less than 1% of the original’s. Yet the only obvious differences are a bit of noise in the sky and some subtle color changes.
-
An Atkinson dithered version in the EGA 16-color palette, though this image uses only 14 of them. I feel like I’m looking at an image out of Encarta.
-
An Atkinson dithered version in the CGA cyan/magenta 4-color palette.
-
An Atkinson dithered version in the CGA red/green 4-color palette.
-
An Atkinson dithered version in the CGA cyan/red 4-color palette.
The cyan/red image looks incredible to me. Come on, tell me that’s not a work of art. It reminds me of the kinds of photos you get from infrared filters. Of course, the original CGA spec had a maximum resolution of 320×200 in 4-color mode, so it never would have been able to display an image this big, but we can dream.
These images also give us a sense of why VGA was such a big deal. Look at how close it is to the modern sRGB image, despite using just a fraction of the colors. VGA had a color gamut of 262,144 (643) colors, but could only display 256 colors on the screen at a time. Its default palette was carefully chosen to represent the color spectrum at perceptually equal intervals, which of course does not mean the colors are spaced in a way that is numerically equal. You can’t just write a few nested loops to generate the period-accurate 256 colors, though LLMs will try to tell you otherwise. The only way to replicate the palette accurately is to create your own lookup table.
Looking at the insets of the CGA images, you’ll notice that the tower is made mostly of colored pixels, despite two of the three CGA palettes having access to black and white. It’s not what I expected, and certainly not what I would have done if I were dithering by hand, but it’s what the algorithm dictates. Weirdest of all, it works. Yet another example of how effective these algorithms are. The tower undeniably looks gray in contrast to the sky and the ground. And the red/green palette doesn’t even have a pure white to work with! The closest it has is a pure yellow. Rather than ruining the picture, it instead gives the whole image a yellowish cast. There are a couple of perceptual processes in play here. These are all examples of color constancy (we perceive colors stably despite changes in ambient illumination) and simultaneous color contrast (perception of colors is affected by what’s around them).
How effective are the dithering algorithms at stretching those meager palettes? Here’s what you’d get if you just swapped in the best-matching color without dithering:
Funniest of all to me is that in the VGA-256 version, the palette’s generous 16 shades of gray render the tower quite realistically against a flat, badly reproduced sky. It’s amazing how much a little dithering will get you.
I’d like to talk about one more important perceptual phenomenon, but to do that I’ll need a different image. Here, look at these pumpkins:
From left to right: original, VGA-256, and EGA-16. The insets zoom in on the light pink pumpkin near the bottom of the image. In the dithered versions, the brightest part of the pumpkin is actually just pure white. Yet without the zoom (and even with it, honestly) those white pixels still look kind of pink. This is an example of neon color spreading, the phenomenon in which bright colors seem to leak into the surrounding area. Yet another perceptual process that dithering exploits, or maybe just reveals.
Depending on the image and the palette, sometimes you get unexpected effects. For example, here are two versions of Washington Tower, both dithered with the same algorithm and the same 2-color palette of dark blue (#2200aa
) and pure yellow (#ffff00
). The center image is based on the original color image, while the image on the right is based on the grayscale image. The grayscale dither looks a lot like the black and white versions up top, not much more to say there. But this blue-yellow palette is a bad match to the original color version and forces the algorithm into creating some odd effects. Notice how much darker the sky is, because although dark blue is pretty far off from the sky’s actual light blue color, it’s still a closer match in color space than pure yellow. Dithering darkens the sky and keeps accumulating error until the algorithm hits the edge of the tower, where there’s a very slight fringe of brighter pixels thanks to camera and compression artifacts. By this point, so much quantization error has accumulated that the algorithm dumps it all into those fringe pixels, creating a striking edge highlight. Lastly, notice the orange tree on the right side of the frame. The color-based dither makes it look much brighter, partly due to simultaneous contrast (because it’s surrounded by darker pixels), and partly because the original orange leaves are a closer match to pure yellow than the grayscale version.
And of course, once you’ve dithered an image down to a few colors, palette swaps are easy.
I’ll bet you thought I wasn’t going to get any more mileage out of that “drip” kernel.
Programming these various algorithms (in P5) was a great learning exercise, and as a former vision scientist, I of course find it fascinating to see the ways in which artistic techniques intuitively exploit the facts of our perceptual processes. For more on that, check out this talk on the intersection of art and vision science by the great Marge Livingstone. The heyday of dithering may be behind us, but I think it’s overdue for a comeback. I’d go so far as to say it’s an unreasonably effective technique. Born of a need to stretch the limits of early graphics hardware, dithering manages to transcend its practical origins and becomes an art form all its own.
-
A study of experts indicates that experienced radiologists can guess whether a scan has an abnormality given as little as 250 milliseconds to look at it. Their accuracy isn’t fantastic, mind you, and you’d definitely want them to take a longer look, but it’s without a doubt above random chance. ↩
-
Alternately, diffusion algorithms can implement boustrophedon ordering: going left-to-right on the odd rows and right-to-left on the even rows (flipping the kernel accordingly, of course). ↩