Collections: Why Celebrimbor Fell but Boromir Conquered: the Moral Universe of Tolkien

1 Comment

This week (and probably next) I want to talk a bit more Tolkien, but in a somewhat different vein from normal. Rather than discussing the historicity of Tolkien’s world or adaptations of it, I want to take a moment to discuss some of the themes of Tolkien’s work, which express themselves in the metaphysical architecture of Arda itself. In particular, I wanted to do this because it struck me how badly Rings of Power had fumbled the core story of its second season, the Fall of Celebrimbor, seemingly failing to understand the underlying moral themes of Tolkien’s legendarium and thus not understanding which elements of Celebrimbor’s story were ‘load bearing’ and why.

That said, for those who are just here for the history, this isn’t entirely a ‘skip week!’ As historians, we don’t simply document events, but also seek to understand past societies and the unique, often quite alien, ways that they understood themselves and their worlds. In short, the historian tries to, in a way, inhabit the worldview of people long gone and to communicate those values and assumptions to a modern audience. One of the ways we do that is reading the things those past people wrote carefully for exactly that: values, morals, assumptions about the world, mentalités as the Annales school would phrase it or Weltanschauung (‘worldview’) as German would express it. When you find the same idea or assumption about the world appear multiple types through a work or body of work, we call that single strand of worldview a ‘theme,’ and so in a sense when we read a work for its themes, what we’re really asking is, “in what ways do the worldview or mentalities of the person-or-society that produced this work ‘poke through’ the page?”

So we’re going to do a bit of that with Tolkien, looking at the way his legendarium treats sin and redemption, through the lens of two ambiguous characters: Celebrimbor and Boromir. I think the comparison of these characters is especially useful, in my view, because of what their contrast reveals in what Tolkien thinks is valuable and important. Both figures die fighting against Sauron and evil, but equally display character flaws that make them vulnerable at key points to the manipulations and machinations of Sauron. In terms of achievement, we would almost certainly regard Celebrimbor as the greater of the two: a king of the Elves and the maker of the Rings, the greatest of Elven craftsmen apart, perhaps, from his own ancestor Fëanor.

Yet the verdict of the text is quite different: whereas Celebrimbor fails quite completely, Boromir is redeemed and conquers, even in defeat.

But first, as always, if you want to help support this project you can do so on Patreon! And if you want updates whenever a new post appears, you can click below for email updates or following me on twitter (@BretDevereaux) and Bluesky (@bretdevereaux.bsky.social) and (less frequently) Mastodon(@bretdevereaux@historians.social) for updates when posts go live and my general musings; I have largely shifted over to Bluesky (I maintain some de minimis presence on Twitter), given that it has become a much better place for historical discussion than Twitter.

The Fall of Celebrimbor

Our main points of reference for Celebrimbor’s fall are a few short paragraphs in “Of the Rings of Power and the Third Age” (as part of the Silmarillion, henceforth in citation as Sil.) and a few equally short pages in “The History of Galadriel and Celeborn” (as part of Unfinished Tales, henceforth Tales). It’s not a lot to go on, but I think we can get a broad sketch of Celebrimbor’s character. What I think we see is a character who is not evil, per se, but who is overwhelmed by his character failings and as a result fails in his role. Celebrimbor is not, I would argue, a tragic hero redeemed in sacrifice, but more akin to Denethor: a flawed ruler who at some times tried to do the right thing, but whose own moral shortcomings lead to the sins that led to the failure of his rule. Rings of Power, I think, got this character quite wrong, attempting to portray Celebrimbor as a good man (well, elf), undone in part by his pride but chiefly by his gullibility and compassion.

The best way to show this is simply to move through Celebrimbor’s arc in both the legendarium and Rings of Power in parallel, to show both Tolkien’s moral vision and how Rings of Power fumbles its execution by pulling out some of the load-bearing components of his character.

Charles Edwards as Celebrimbor from Rings of Power. For what it is worth, I think Edwards works pretty hard to capture Celebrimbor’s vain ambition (often despite the script), though his rendition of the character sometimes comes off as a bit bumbling, which I think is unfortunate as it somewhat diminishes the character’s ‘greatness’ (as distinct from ‘goodness’).

We begin with Celebrimbor’s motivation for making the rings in the first place. Put frankly Rings of Power reframed Celebrimbor’s motivation, from something arrogant and transgressive in the books to something compassionate and altruistic in the show. I found when I pointed this out on social media, some folks were confused, but there really isn’t much doubt in the text. In the Silmarillion, we get both Sauron’s arguments and the Elves own reasoning for accepting them. Sauron, as Annatar, presents his case thusly:1

Alas for the weakness of the great! For a mighty king is Gil-galad, and wise in all lore is Master Elrond, and yet they will not aid me in my labours. Can it be that they do not desire to see other lands become as blissful as their own? But wherefore should Middle-earth remain for ever desolate and dark, whereas the Elves could make it as fair as Eressëa, nay even as Valinor? And since you have not returned thither, as you might, I percieve that you love this Middle-earth, as do I. Is it not then our task to labour together for its enrichment, and for the raising of all the Elven-kindreds that wander here untaught to the height of that power and knowledge which those have who are beyond the Sea? (Sil. 287; emphasis mine)

I want to pull out a few things from this argument. First, it is a call, however pleasantly worded, for something approaching blasphemy: an effort by the Elves, under their own power, to craft what is effectively a heaven on earth and to reverse the grand plan and will of Eru Ilúvatar (the singular creator god) that the Elves should come to dwell in Valinor and Middle-earth pass to Men. But note also how it is ‘sales pitch’ that aims to play off of the ambition and arrogance of the listener, rather than their compassion or generosity, bidding them to raise their greatness (that of the Elven-kindreds) to match those “who are beyond the Sea” (which could mean the Elves in Valinor, but equally the Valar themselves).

And the Elves of Eregion (chiefly, we find out in the Unfinished Tales, the smiths of the Gwaith-i-Mírdain, the “people of the jewel-smiths”), understand the appeal in basically those terms:

It was in Eregion that the counsels of Sauron were most gladly recieved, for in that land the Noldor desired ever to increase the skill and subtlety of their works. Moreover they were not at peace in their hearts, since they had refused to return into the West, and they desired both to stay in Middle-earth, which indeed they loved, and yet to enjoy the bliss of those that had departed. (Sil. 287; emphasis mine).

Note again the twin strains of ambition – to increase the skill and subtlety of their works – twisted with a desire for something that contravenes the will and plan of Eru – to have the bliss of Valinor while still living in Middle-earth. I should note, this temptation – that the immortality of Valinor could be seized by art or craft, outside of the planned will of Eru – is also exactly the temptation Sauron will use to lure the Númenóreans to their destruction under Ar-Pharazôn (Sil. 274-5). Indeed, this temptation is at the root is effectively all evil in Tolkien’s legendarium: the beginning of evil is in Melkor’s decision to try to bend the Song of creation to his own tune.

In Tolkien’s distinctly Christian worldview, both the real world and his created secondary world are ordered to the will of divinity and that will is fundamentally Good; choice is given to Men and Elves but defiance of that overarching plan is the most fundamental act of rebellion, the very root of sin. And it is what Celebrimbor is contemplating in his creation of the rings. Moreover, let us note that this motivation is wholly and entirely selfish: the purpose of these rings is to make the ageless, unending bliss of Valinor available for the Celebrimbor and the Elves. There is no intent to share it with anyone else. The motivation here is understandable – immortal beings grieved that the world changes even as they do not – but Tolkien’s morality says, in essence, ‘thems the breaks.’ Or, to put it in the rather more eloquent words of Gandalf, “but that is not for them to decide. All we have to decide is what to do with the time that is given us.”

Rings of Power fumbles this element almost completely, substituting new and different motivations. Whereas in the legendarium, Gil-galad, Elrond and Galadriel all want nothing to do with Annatar!Sauron (Sil. 287; Tales 227), in RoP, Gil-galad in particular is consumed with worry about the fading of the Elves and in particular that it will leave the rest of Middle-earth vulnerable to Sauron. Lest the audience think this is simply a rationalization, we are treated to a ‘ticking clock’ in the form of a sacred tree and repeated insistence that when the last leaf falls, the Elves will be compelled to sail for Valinor. Suddenly, rather than embracing the rings as an act of revolt against the will of Eru, the Elves are seeking a way to divert their decline – no longer presented as part of the divine plan – in order to shepherd and safeguard the other peoples.

Celebrimbor in Rings of Power celebrating the friendship of Elves and Dwarves. This isn’t an unreasonable scene: Celebrimbor’s Eregion was friendly with the Dwarves of Moria. But it serves as part of a broader framing of Celebrimbor’s ring-making project as being for all of the Peoples of Middle-earth, when the text is quite clear: the rings were really only ever for the Elves (to the point that even the claim by the Dwarves of Moria that their ring came direct from Celebrimbor and not via Sauron is sometimes treated with suspicion).

That change in motivation extends to Celebrimbor and here it is worth noting that Rings of Power has changed the order in which the rings are made. In the legendarium it is explicit (e.g. Sil. 287, Tales 227-8, RotK 415) that the lesser rings were created first, the Three Elven Rings second and the One Ring last; RoP inverts the first two, having the Three created before the Seven and Nine. Moreover, it changes the motivation: in RoP the first three Elven rings are sufficient to avert the decline of the Elves, which would of course remove the original motivation for making them. So the show has Sauron, in disguise, suggest Celebrimbor make the other rings of power for the purpose of giving them to Men and Dwarves. Now on the one hand, I would argue this is not a deception Sauron would actually use: Sauron understands power and domination, not altruism and he does not tempt Men or Elves with the better angels of their nature. Even when the One Ring – a shadow of Sauron’s own corrupting power – tries to tempt Boromir or Sam, it tempts them not with altruism but with greatness and adulation, with “great alliances and glorious victories….and he cast down Mordor and became himself a mighty king” (FotR 469; RotK 195-6). ‘Thankless service’ is not a language Sauron speaks and so not a temptation he would use.

But more broadly, this shifting plot point, which seems to me to have been a product of the show shifting around events and characters to try to make its multi-threaded structure work, fundamentally alters Celebrimbor’s motivation: rather than a bad end (overturning the will of Eru) which turns out badly it becomes a good end (aiding the other Peoples of Middle-earth) turned to evil.

The next disconnect in the two stories is broadly in culpability. Rings of Power does quite a lot to limit Celebrimbor’s guilt (if not his broader responsibility) for the fall of his kingdom, in part because the writers of Rings of Power have not quite grasped the sorts of arguments Sauron uses – and thus the sort of arguments Tolkien imagines would be persuasive to figures like Celebrimbor. As mentioned already, the show has Sauron, disguised as Annatar and presenting himself as an emissary of the Valar, encourages Celebrimbor to make the lesser rings in order to aid Dwarves and Men. Rather than preying on Celebrimbor’s pride, he preys on his compassion, an emotion Sauron ought not consider or understand.

But the larger break comes once Adar’s siege arrives. In order to keep Celebrimbor working on the rings, in the show, Sauron alters Celebrimbor’s sense perception, causing him to see his city at peace and flourishing even when it is under attack and burning and I do not think the writers and showrunners quite realized what giving Sauron direct mind control powers does to the moral arc of Tolkien’s universe. In a later scene (s2e7 at 58:05) Sauron seizes direct and total control over a group of Elf warriors, compelling them to kill each other over their apparent struggles. The show’s excuse is that in allowing Sauron in, the Elves of Eregion put themselves ‘under his power,’ but this makes little moral sense for soldiers who had no idea who ‘Annatar’ was and no say in letting him in regardless. Instead, giving Sauron straight-up mind control – the ability to make Celebrimbor see whatever he wants, to make other Elves do whatever he wants – obliterates Celebrimbor’s moral responsibility for his own actions. Celebrimbor doesn’t respond incorrectly because of his moral failings but because he is prevented by force majeure from seeing the world as it really is. Indeed, the moment he does see the world as it is, he responds correctly – trying to organize the defense – but is prevented because Sauron uses magic to make it seem like Celebrimbor has callously murdered one of his smiths.

Sauron, having spent several episodes drastically altering Celebrimbor’s perception of the world so that he could not take proper action, caps it off by openly controlling six Elven warriors all at once. The problem, of course, is that if Sauron is capable of such mind control, it strips away the guilt of all other parties: they could hardly have done otherwise.

In short, Sauron’s ability to control perceptions and minds substantially reduces – if it doesn’t entirely remove – Celebrimbor and his smith’s agency in the story, which in turn reframes them are relatively more innocent victims of Sauron’s power.

Which is very much not how the appear in the legendarium! As noted above, in the Silmarillion, we get a direct report of the arguments Sauron, as Annatar, uses to persuade the Elves and there is nothing of compassion for Men or Dwarves in it, but an open invitation to attempt to build heaven on earth, to achieve “the height of that power and knowledge which those have who are beyond the Sea?” which is accepted because “in that land [Eregion] the Noldor desired ever to increase the skill and subtlety of their works” (Sil. 287). In short, Sauron is from the beginning asking the smiths of Eregion to do something wrong, which they know is wrong (as it defies the order set by Eru), his trickery which they do not know is that he intends to betray them, but that they do wrong, they know at the outset.

As the narrative continues in the Unfinished Tales, we see that not only the business begun wrongly, it continues wrongly. Sauron, as Annatar, convinces the brotherhood of Elven crafters under Celebrimbor, the Gwaith-i-Mírdain, to join his plan and they and Celebrimbor begin working under him “in secret, unknown to Galadriel and Celeborn” who were, at the time, the rulers of both Eregion and Lórinand (later to be Lothlórien; Tales 228). They’re working in secret because while Galadriel and Celeborn don’t seem to know that Annatar is Sauron, they can tell something is up with him and refuse to treat with him – after all, he keeps suggesting people do a bad thing, as noted above. Sauron, however, is able then to persuade the Gwaith-i-Mírdain “to revolt against Galadriel and Celeborn and seize power in Eregion” at which point Galadriel flees to Lórinand, while Celeborn remains in Eregion but “disregarded by Celebrimbor” (Tales 228).

Which is to say that when the rightful rulers of the kingdom, Galadriel and Celeborn, correctly point out, “hey, this Annatar guy is sketchy and seems to be asking you to do something that at least shades into evil,” Celebrimbor and the Gwaith-i-Mírdain respond by launching a coup, forcing Galadriel out of the kingdom and excluding Celeborn from the government. Having already begun a task at the advice of Annatar which is, at the very least, morally dubious, they have then taken an action – revolt against lawful authority – which is clearly morally wrong in its pursuit.

Celebrimbor only repents of this choice once the One Ring is made and the trap revealed, not before (Tales 228; Sil. 288), which again means that Celebrimbor only turns against Annatar!Sauron when it becomes clear it will be bad for Celebrimbor if Sauron achieves his aims; he was fine when it was merely an evil against Galadriel, Celeborn and the order of creation set out by Eru Ilúvatar. In this sense, I would note, Celebrimbor’s arrogance and pride in a way neatly mirror that of Denethor’s: both characters are notionally on the side of Good against Evil and that’s certainly what they’d tell you if you asked them, but equally both characters are, in their pride, rebelling against rightful authority (“I will not step down to be the dotard chamberlain of an upstart…I will not bow to such a one, last of a ragged house long bereft of lordship and dignity” RotK 142). Indeed, Gandalf’s rebuke to Denethor, “authority is not given to you, Steward of Gondor, to order the hour of your death” (RotK, 141) could equally have been given to the Elves seeking to recreate in Middle-earth the deathless, eternity of Valinor.

Likewise, I do not think in the books that Celebrimbor is redeemed in his death. In Rings of Power, a great deal is made of Celebrimbor’s resistance to Sauron at the end and his unwillingness to give up the locations of any of the rings, as well as his desperate efforts, as things come crashing down, to do the right thing: he tries to organize the defense, but is prevented by Sauron’s trickery, he tries to attack Sauron, but is prevented when Sauron mind-controls his guards, and he refuses to tell Sauron anything even under torture.

By contrast, the portrait in the Unfinished Tales is not so flattering. When Sauron’s assault falls on Eregion, it is the disregarded Celeborn who makes the initial sortie. Celebrimbor only appears after the attackers breach Eregion, defending “the chief object of Sauron’s assault, the House of the Mírdain, where were their smithies and their treasures” (Tales 228). While this is after the “repentance and revolt [against Sauron] of Celebrimbor” (Tales 228), I think it is revealing that Celebrimbor is taken defending the thing he fundamentally cares about this most: the works of his hands and those of the Mírdain, their treasures. It is instead Elrond who takes care for those who survive the fall of Eregion (Tales 229): so while Elrond and Celeborn seek to save people, Celebrimbor, in his last acts, seeks to save things. According to the Tales, the Nine Rings were there in the House of the Mírdain and Celebrimbor, tortured, revealed the locations of the Seven “because neither the Seven nor the Nine did he value as he valued the Three…the Three were made by Celebrimbor alone” (Tales 229). Note of course, those Seven rings were “bestowed” to people (Tales 229) whom Celebrimbor is giving up instead of the Three not because he cares about the people but because he cares about the things and in particular he values the Three not for who holds them but because they were the works of his hands.

To summarize then, Rings of Power‘s Celebrimbor was a basically good Elf, who sought to solve a real and pressing problem (the fading of the Elves, which might leave Middle-earth defenseless), unknowingly enlisted the aid of a bad fellow in solving it, who – once he discovered that fact – immediately set about trying to right his mistakes, albeit failing in the process, because Sauron has Magic Mind Control Powers.

By contrast, J.R.R. Tolkien’s Celebrimbor is not an evil Elf, in that he does not desire domination – which is the sine qua non of capital-E Evil in Tolkien’s legendarium. Tolkien writes, after all, “Celebrimbor was not corrupted in heart or faith, but had accepted Sauron as what he posed to be” (Tales 228). But Celebrimbor is an arrogant and proud Elf who does much wrong and is undone by his wrongdoing. For reasons we’ll get into in a subsequent post, the cause and effect here is direct: the moral universe (the Unseen) of Arda has a direct, causal impact on the physical universe (the Seen); Celebrimbor is undone by his wrongdoing – that is, had he done right he would not have been undone. This version of Celebrimbor pursues an aim that was wrong in its conception, attempting to turn aside the plan of Eru for how the world would change (demanding heaven on earth instead of Heaven and Earth, as it were), then executed wrongly with a coup. And in his final moments, Celebrimbor reveals what always mattered to him most as he defends not his people but his things, the products of his hands that he valued most, a sort of love I have no doubt Tolkien would view as inordinate – in a literal sense ‘out of order,’ and thus inappropriate.

Consequently, while Celebrimbor revolts against Sauron, he never really changes his character, remaining prideful and ambitious to the end and unwilling to see his prized creations destroyed – as the text notes, “they should have destroyed all the Rings of Power at this time [before the fall of Eregion], ‘but they failed to find the strength.'” (Tales 228); another indicator, by the by, that the rings of power themselves ought not to have been made under any circumstances. Celebrimbor doesn’t redeem himself and fall heroically, but rather is, at last, consumed by his folly.

The contrast with Boromir is marked: where Celebrimbor, for all of his artifice and greatness fell, Boromir, we are told, conquered.

Why Boromir Conquered

First, I think we ought to get the facts of the narrative out of the way. In a straight reading of events of the Breaking of the Fellowship, Boromir does not come off tremendously well. When Frodo splits off from the group at Nen Hithoel, Boromir follows him and falls to the Ring’s temptation, first trying to persuade Frodo and then eventually trying to take the Ring by force. He recovers himself once Frodo vanishes and flees, but then wanders for at least half an hour (FotR, 476) before returning to the rest of the Fellowship, where he then refuses to be entirely truthful, though he does not lie (FotR, 475-6) and then, as if the full import of the moment has finally hit him, just sort of breaks down, “put his head in his hands, and sat as if bowed with grief” (FotR, 476) while the Fellowship begins to scatter.

As an aside, I think this is one point where I think the notion that Peter Jackson’s films are a bit more favorable to Boromir than the books deserves some credit. First, this returning scene – where Boromir wastes time and breaks down, is gone entirely, but I think more importantly, whereas in the books Aragorn, heading off, never finds Frodo in the film he does. And we see Aragorn tempted by the Ring too, something we do not get in the books. The edge in Viggo Mortensen’s voice and the threatening way he is shot in the scene is not just, I think, a fake out, but rather we are to understand that Aragorn here too is struggling to resist the Ring and succeeds only with difficulty, which is why he sends Frodo away. There was real peril in this moment and Aragorn, in his wisdom, realizes the answer to Frodo’s question, “Can you protect me from yourself?” is “no.” I think that moment does a lot to humanize Boromir’s failure – he wasn’t the only member of the Fellowship to be broken by the Ring, merely the first; the others would have fallen, one by one, given time (which I think, for what it is worth is the correct reading of the text: the Ring would have destroyed all of them, given the time, just as it eventually, in the very last instance, claims Frodo).

Peter Jackson also has the advantage of Sean Bean, who has just a few seconds to sell Boromir’s sincere regret, with a quivering lip and stumbling speech as Boromir comes to his senses and realizes what he has done.

In any case, Aragorn bids Boromir keep the other hobbits safe while he searches (FotR, 476). Boromir meets this charge, attempting to protect Merry and Pippin even to the cost of his life. Here, of course, he fights and apparently fails utterly: he is mortally wounded and both hobbits in his care are taken bound by his enemies once he is too wounded to fight back. The orcs focus on what they think is their objective (no, I will not let Saruman live down this bit of terrible operational planning, thank you) – capturing hobbits – but do not (in the book) bother to finish Boromir off; they simply leave him to bleed out (TT, 18).

In short, then, we might say Boromir succumbed to temptation, then lost his head at a critical moment, then tried to accomplish something in battle, failed entirely and was slain. That sounds a lot like Celebrimbor, but whereas the basic facts of the two more or less match, what is in their hearts does not and that makes all the difference.

Boromir’s verdict on himself is sharply negative, focusing on those facts: “I have tried to take the Ring from Frodo,” he said, “I am sorry. I have paid…Farewell Aragorn! Go to Minas Tirith and save my people! I have failed” (TT, 18). Except of course, that is Boromir speaking and one thing we’ve learned is that Boromir, whatever his virtues – and he has them – is not among the wise. One of the key things for understanding The Lord of the Rings and Tolkien’s broader legendarium is that statements should be evaluated by the speaker; words from the wisest characters, like Gandalf, are often deeply true to the point of being prophetic, but less wise or even foolish characters, like Saruman, frequently err or say more than they mean. Critically, what makes one wise is not an understanding of the Seen world (the physical, ‘real’ world) but an understanding of the Unseen world and its deeper, more profound moral realities. Boromir cannot see that while he has failed in the Seen world, he has triumphed in the Unseen world.

But Aragorn, Aragorn is one of the relatively wise characters, even though he is not without fault (indeed, he spends much of the chapter “The Departure of Boromir” reminding the reader that “All that I have done today has gone amiss.” (TT 19)), and so we can put a fair bit more stock in Aragorn’s judgement. And Aragorn immediately corrects Boromir, with a judgement that gives us the title of this post:

“No!’ said Aragorn, taking his hand and kissing his brow. “You have conquered. Few have gained such a victory. Be at peace! Minas Tirith shall not fall!”

Boromir smiled. (TT 18; emphasis mine)

First I want to note the use of the word ‘conquered’ here, which may strike readers as strange. In modern English, we generally use ‘conquer’ to mean the capture of territory (that is, conquest), but Tolkien was a classically trained philologist and so, like many Latin and Greek students before and after him, he will have used ‘conquer’ frequently to translate Latin vincere and Greek νικᾷν both of which have a sense of winning a victory or prevailing in a contest in a much broader sense (for instance winning in an athletic contest).

Note that Aragorn at this point no longer merely suspects that Boromir tried to take the Ring, but knows it, as Boromir has told him. He likewise knows that the hobbits have been taken, though he does not yet know for certain it is just Merry and Pippin (he’ll realize Frodo and Sam went elsewhere in a couple of pages). In short, Aragorn has encompassed the full magnitude of Boromir’s folly and failure and fears yet more besides. And yet he declares “You have conquered.”

Likewise, I think the blocking here does a good job selling that what Boromir is doing in this moment is not fighting for his life but actively defending Merry and Pippin as they try to escape.

If you were somewhat unfamiliar with the way Tolkien’s characters work, you might read Aragorn’s statement as merely a comforting lie told to a dying man, but I think that would be profoundly out of character for Aragorn, who does not lie casually. You might also read it as Aragorn merely commenting on how many orcs Boromir slew – at least twenty before he fell – but that too would be surprising for Aragorn, who you may note does not take part in Gimli and Legolas’ game at Helm’s Deep.2

But then of course Gandalf returns later in the book and offers his own judgement:

Poor Boromir! I could not see what happened to him. It was a sore trial for such a man: a warrior, and a lord of men. Galadriel told me that he was in peril. But he escaped in the end. I am glad. It was not in vain that the young hobbits came with us, if only for Boromir’s sake. (TT 118)

And we should remember here that Gandalf is, in fact, Olórin, the wisest of the Maiar. He isn’t all-knowing and indeed in this passage admits to gaps in his knowledge, but his moral intuition and understanding of the spiritual structure of Arda is unsurpassed by any character we meet or really could meet in the context of the narrative. We may take his judgement here as essentially axiomatically true. He too, knows Boromir’s folly (right before this sentence, he essentially tells Aragorn this, without revealing it to Gimli and Legolas) and is a bit more reserved than Aragorn, framing Boromir’s death as an escape from the peril he was in, which Galadriel perceived – and he chalks up the hobbits having more than a little role in this escape, declaring himself glad of it.

I think the “young hobbits” role in this is our key to understand why Boromor “escapes” and “conquers” whereas Celebrimbor fails and falls: evidently Gandalf would have us understand the presence of the “young hobbits” accomplished something “for Boromir’s sake.” They certainly didn’t change the ‘facts on the ground,’ as it were: their presence changed nothing for Boromir in the Seen world. But they changed everything for Boromir in the Unseen world, which is, I hope we’re coming to understand, the more important one.

We see Boromir, like Celebrimbor, succumb to a moment of temptation – he tries, by his own admission, to take the ring, a grievous failure. In the period that follows, I think we should understand his sullen silence as a wrestling with what that moment means. Boromir recognizes his failure and regrets it, instantly, after all, but then has to sit with the guilt; it would be all too easy for him to rationalize away his failure – to say it wasn’t a failure at all, but that Frodo was the fool – or to fall into despair. But Aragorn bids him to do something and that seems to snap Boromir out of his sullen state.

More to the point, the thing Aragorn bids Boromir to do requires the rejection of his false thinking and the embrace of something selfless. Whereas Celebrimbor, at the last, fell defending the very things that had been his sin and ruin – his pride in his craftsmanship, made manifest and tangible in the Rings – Boromir does not rush to defend his ambition or the glory of Gondor, or his dreams of conquest. He does not seek a grand audience and indeed when the deed is done, requests scorn, not praise, for it. Instead, otherwise alone, unwatched and unnoticed, he fights a battle he must know is hopeless to answer his charge and defend two young hobbits who are entirely superfluous to the quest as he understands it. They don’t matter in the Seen world, which is part of why they matter so much: Boromir isn’t doing this for glory or praise, but merely because it is the right thing to do.

I think Boromir must have had something of a crisis of identity in those sullen minutes. Boromir had imagined himself as the great hero of Gondor and it was this false pride that the ring had used to wedge itself in his mind; in accepting his failure, that false image has to fall away. Boromir has to become someone different and Aragorn, perhaps unknowingly, gives him the opportunity by charging him to do something good with no promise of glory or renown or power, a chance to take the new Boromir forming in the soul and make him real in the world. I think we see a hint of this new Boromir in his dying words, where he bids Aragorn, “Go to Minas Tirith and save my people!” – the old Boromir would not easily have yielded the glory of saving his people to another, but the new Boromir, a wiser Boromir, recognizes this task was not the one allotted to him; his task was to defend the young hobbits, a task with little hope of glory or power (TT, 18). It did not matter if Boromir succeeded or failed in that task, because the outcome of the battle was less important than the moral choice to fight it.

The hobbits matter for Boromir’s sake because they provided the opportunity for him to take his moral transformation and make it real by putting real sacrifice behind it. This is the thing Celebrimbor, defending his rings to the last, does not do. It is necessary to note, of course, that this is a very Christian worldview that Tolkien is advancing: what matters is Boromir’s soul, which is influenced by his decision to sacrifice even if the battle is not. Celebrimbor’s actions have the same influence on the battle, but not the same impact on his soul, for he does not abandon his vain ambition, even at the end.

Of course, in Tolkien’s legendarium, the moral force of actions has its own logic to it and bears out its consequences in the Seen world in its own way. Boromir has, after all, in his stout – if forlorn – defense of the hobbits, helped to save Gondor, though he knows it not. For the hobbits will now go to the Ents and so help topple Saruman, and from there to Gondor, where Pippin will help to save Faramir from Denethor’s pyre and Merry will help to fell the Witch King on the field of battle. As we’ll see next week, we ought not dismiss that chain of events as ‘mere chance.’ In Tolkien’s world it is the moral universe, the spiritual value of our choices, that matter most, far more than the physical results those choices produce. It is the choice to fight for the good rather than victory in battle, that matters to Tolkien and to his world. Yet at the same time, Tolkien exudes a confidence that if we choose to do right, things will be right, even if we do not live to see it.

On Borormir then, I think it is best to give Pippin the last word, “But I honor his memory, for he was very valiant. He died to save us, my kinsman Meriadoc and myself, waylaid in the woods by the soldiery of the Dark Lord; and though he fell and failed, my gratitude is none the less.” (TT, 29).

As an aside, I think it is striking and fits with the differing verdicts on these characters that Boromir’s horn arrives back in Gondor and his funeral raft sails out the Anduin to the Sea (from whence his people came), an honorable end, whereas Celebrimbor’s body is made into a banner of Sauron, one last humiliation repaid to the proud folly of the greatest of Elven smiths.

And so Celebrimbor fell, but Boromir conquered.

Read the whole story
jlvanderzwan
18 hours ago
reply
> By contrast, J.R.R. Tolkien’s Celebrimbor is not an evil Elf, in that he does not desire domination – which is the sine qua non of capital-E Evil in Tolkien’s legendarium. Tolkien writes, after all, “Celebrimbor was not corrupted in heart or faith, but had accepted Sauron as what he posed to be” (Tales 228). But Celebrimbor is an arrogant and proud Elf who does much wrong and is undone by his wrongdoing.

This is kind of a perfect summary of the common confusion of narcissism with psychopathy. Someone with narcissistic personality syndrome is (usually) not an evil psychopath, they're just self-centered and refusing to be held accountable for their selfishness in a specific way that does a lot of damage to themselves and their surroundings.

Also elves biggest weakness being that they're prone to narcissism feels very, very on-brand to me.
Share this story
Delete

Sounds Plausible Enough

1 Comment
Read the whole story
jlvanderzwan
1 day ago
reply
Why TF would a Dutch person be obsessed with cannabis? It's utterly mundane and boring to us.

Popping pills while raving to Eurodance is more our thing, duh
Share this story
Delete

Saturday Morning Breakfast Cereal - Past

3 Shares


Click here to go see the bonus panel!

Hovertext:
The thing I miss most about the 90s is the ability to time travel.


Today's News:
Read the whole story
jlvanderzwan
1 day ago
reply
acdha
2 days ago
reply
Washington, DC
Share this story
Delete

Nancy by Olivia Jaimes for Tue, 22 Apr 2025

1 Share

Nancy by Olivia Jaimes on Tue, 22 Apr 2025

Source - Patreon

Read the whole story
jlvanderzwan
1 day ago
reply
Share this story
Delete

v2.0.0

1 Share

We are releasing p5.js 2.0 to the community for testing and development! Here’s what you need to know.

  • For reference: p5.js 1.x reference will stay on https://p5js.org/, and p5.js 2.x documentation will be on https://beta.p5js.org/
  • In the p5.js Editor: the default will continue to be 1.x until at least August 2026 - more information and discussion on timeline can be found on this Discourse thread or this GitHub thread
  • For updating sketches and add-on libraries: check out the compatibility add-on libraries and guides
  • For contribution: npm latest will default to 2.x, but the git branches are still separated with main on 1.x and dev-2.0 on 2.x. We will switch the branches when we have updated all automations (including deploying updated documentation to the website). Want to contribute ideas or implementation? Check the 2.x project board for an overview of what still needs discussion, and what’s ready for work!

Start exploring 🌱

More details of the changes 🌳

You can also checkout Dave Pagurek's reflections on p5.js 2.0 and an open source philosophy!

Typography

  • A refactor of the typography system to be smaller, support variable fonts, and have more precise text measurement by Daniel Howe @dhowe
  • Support for loading fonts via CSS (thanks to @dhowe)
  • More ways to draw and manipulate text (thanks to @davepagurek)
  • An approximately 350% performance improvement to textToPoints and 3D text extrusion support (thanks to @davepagurek)

Support for more color spaces in p5.Color (thanks to @limzykenneth and @dianamgalindo)

p5.js 2.0 now supports more color modes in addition to the existing RGB, HSB, and HSL color modes. Here are the list of new supported color mode and brief description of them:

  • RGBHDR - High Dynamic Range RGB color defined within the Display P3 color space. You will need to use the HDR canvas described below to draw this color on the canvas accurately.
  • HWB - Hue, Whiteness, Blackness. This is similar to HSL and HSB in that you will define a hue angle however instead of saturation and lightness, you will define the percentage of whiteness and blackness. It is the color model of the GUI color picker used by Chrome.
    color-picker
  • LAB - Also called CIE Lab, defines color with Lightness, Alpha, and Beta. The color space is often used in professional color measuring context.
  • LCH - An easier to use representation of a CIE Lab color with definition of Lightness, Chroma, and Hue instead.
  • OKLAB - OkLab is a slight adjustment to CIE Lab color space mainly to fix a non-uniformity issue that exist in CIE Lab. This difference is more visible in the example below.
  • OKLCH - An easier to use representation of an OkLab color with definition of Lightness, Chroma, and Hue instead.

Comparing HSL, LCH, and OKLCH in a sketch below:
color wheel
From left to right are color wheels of HSL, LCH, and OKLCH respectively. Notice the evenness of color distribution between each wheel with OkLCH having the most even distribution. It can be noted that the LCH wheel has a large blue section that is fixed by OkLCH.

To use these new color spaces in p5.js 2.0, the respective constants have been added and the colorMode() function can be used with these constants in the same way as RGB, HSL, and HSB.

function setup(){
  createCanvas(200, 200);
}

function draw(){
  colorMode(OKLCH);
  background(220); // Should show a teal colored canvas
}

Support for wide-gamut colors with the display-p3 mode (thanks to @limzykenneth)

You can now create a 2D canvas that supports HDR colors that will give you a more vibrant sketch and also HDR images. To use a HDR canvas you will need to create it using the P2DHDR constant like below:

function setup(){
  createCanvas(400, 400, P2DHDR);
}

When a P2DHDR canvas is created, the default color mode will be switched to the new RGBHDR color mode instead of RGB. In practice you can continue to use the same RGB color definition you have always used.

function setup(){
  createCanvas(400, 400, P2DHDR);
}

function draw(){
  background(255, 0, 0);
  fill(100, 255, 0);
  circle(100, 100, 50);
}

This example sketch shows a direct comparison between HDR and non-HDR colors, you should see three bands of red, green, and blue colors with a slightly dimmer red, green, and blue circles within. However, both your browser and your screen will need to support HDR to see the difference. Currently Firefox on desktop does not support HDR canvas so if you do not see a difference, try a different browser such as Safari or Chrome.

You can also now load HDR images and have them be displayed in full HDR in a HDR canvas. If you see a dark image on the linked sketch, your browser or screen does not support HDR and you should try a different browser/device.

A new simple lines mode for WebGL (thanks to contributions from @perminder-17)

If you are drawing lots of shapes, and don't need stroke caps or joins, you can use a simple lines mode for increased performance in WebGL. You can activate this mode by calling linesMode(SIMPLE) in your sketch.

Custom shaders for fills, strokes, images (thanks to @Garima3110 and @perminder-17)

You can now create your own shaders for fills, strokes, and images, and have them all applied at once! Use shader() to set a fill shader, strokeShader() to set a stroke shader, and imageShader() to set an image shader. Try using baseMaterialShader().modify(...) and baseStrokeShader().modify(...) to create custom shaders.

let myFillShader = baseMaterialShader.modify({
  'vec4 getFinalColor': `(vec4 color) {
    return vec4(1., 1., 0., 1.);
  }`
});
let myStrokeShader = baseStrokeShader.modify({
  'vec4 getFinalColor': `(vec4 color) {
    return vec4(1., 0., 1., 1.);
  }`
});
let myImageShader = baseMaterialShader.modify({
  'vec4 getFinalColor': `(vec4 color) {
    return vec4(0., 1., 1., 1.);
  }`
});

shader(myFillShader);
strokeShader(myStrokeShader);
imageShader(myImageShader);

sphere(); // Draws with the custom stroke and image shaders
image(myImg, 0, 0); // Draws with the custom image shader

Updated bezier and curve drawing functions (thanks to @GregStanton)

First off: you can combine multiple types of curves in one begin/endShape() block now!

Long cubic and quadratic bezier vertex calls are now split up into their individual control points. Both cubic and quadratic curves are done with bezierVertex now, and you can set bezierOrder() to change from cubic (order 3) to quadratic (order 2). For WebGL mode, this also means you can also specify texture coordinates per control point, or change the fill, stroke, normal, and more between control points.

1.x2.0
beginShape();
vertex(10, 10);
vertex(30, 10);

bezierVertex(35, 10, 40, 15, 40, 20);

vertex(40, 30);

quadraticVertex(40, 40, 30, 40);

vertex(10, 40);

endShape(CLOSE);
beginShape();
vertex(10, 10);
vertex(30, 10);

// Default cubic
bezierVertex(35, 10);
bezierVertex(40, 15);
bezierVertex(40, 20);

vertex(40, 30);

bezierOrder(2);
bezierVertex(40, 40);
bezierVertex(30, 40);

vertex(10, 40);

endShape(p5.CLOSE);

We've renamed curveVertex to splineVertex and have given it more options. By default, it will now go through every splineVertex, so you no longer have to double up the first/last point to get it to go through it:

1.x2.0
beginShape();
curveVertex(10, 10);
curveVertex(10, 10);
curveVertex(15, 40);
curveVertex(40, 35);
curveVertex(25, 15);
curveVertex(15, 25);
curveVertex(15, 25);
endShape();
beginShape();

splineVertex(10, 10);
splineVertex(15, 40);
splineVertex(40, 35);
splineVertex(25, 15);
splineVertex(15, 25);

endShape();

Similarly, endShape(CLOSE) (or endContour(CLOSE) if you're in a contour) will cause a spline to smoothly loop back on itself so you no longer need to double up any points:

1.x2.0
beginShape();
curveVertex(15, 25);
curveVertex(10, 10);
curveVertex(15, 40);
curveVertex(40, 35);
curveVertex(25, 15);
curveVertex(15, 25);
curveVertex(10, 10);
curveVertex(15, 40);
endShape();
beginShape();

splineVertex(10, 10);
splineVertex(15, 40);
splineVertex(40, 35);
splineVertex(25, 15);
splineVertex(15, 25);


endShape(CLOSE);

Async loading (thanks to @limzykenneth)

Rather than having a preload function, p5 2.0 has async setup!

1.x2.0
let img;

function preload() {
  img = loadImage('cat.jpg');
}

function setup() {
  createCanvas(200, 200);
}
let img;

async function setup() {
  createCanvas(200, 200);
  img = await loadImage('cat.jpg');
}

🚧 Since this is a breaking change from 1.x to 2.0, you can weight in on the compatibility discussion here

Support for loading fonts via CSS (thanks to @dhowe)

In 2D mode, try loading fonts via a a path to a CSS font file, such as a Google Fonts link!

loadFont("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap")
loadFont(`@font-face { font-family: "Bricolage Grotesque", serif; font-optical-sizing: auto; font-weight: <weight> font-style: normal; font-variation-settings: "wdth" 100; }`);
loadFont({
    fontFamily: '"Bricolage Grotesque", serif',
    fontOpticalSizing: 'auto',
    fontWeight: '<weight>',
    fontStyle: 'normal',
    fontVariationSettings: '"wdth" 100',
});
loadFont("https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZhrib2Bg-4.ttf");
loadFont("path/to/localFont.ttf");
loadFont("system-font-name");

Support for variable font weight (thanks to contributions by @dhowe)

In 2D mode, if you've loaded a variable font, try changing its weight!

var font;

async function setup() {
  createCanvas(100, 100);
  font = await loadFont(
    'https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap'
  );
}

function draw() {
  background(255);
  textFont(font);
  textAlign(LEFT, TOP);
  textSize(35);
  textWeight(sin(millis() * 0.002) * 200 + 400);
  text('p5*js', 0, 10);
}

More ways to draw and manipulate text (thanks to @davepagurek)

Like how textToPoints() gives you points on text, the new textToContours() function lets you edit the points on text and then draw them with fills!

createCanvas(100, 100);
const font = await loadFont('myFont.ttf');
background(200);
strokeWeight(2);
textSize(50);
const contours = font.textToContours('p5*js', 0, 50, { sampleFactor: 0.5 });
beginShape();
for (const pts of contours) {
  beginContour();
  for (const pt of pts) {
    vertex(pt.x + 20*sin(pt.y*0.01), pt.y + 20*sin(pt.x*0.01));
  }
  endContour(CLOSE);
}
endShape();

In WebGL, you can use textToModel to extrude a 3D model out of your text:

createCanvas(100, 100, WEBGL);
const font = await loadFont('myFont.ttf');
background(200);
textSize(50);
const geom = font.textToModel('p5*js', 0, 50, { sampleFactor: 2, extrude: 20 });
orbitControl();
model(geom);

A new pointer event handling system (thanks to @diyaayay)

Instead of having separate methods for mouse and touch, we now use the browser's pointer API to handle both simultaneously. Try defining mouse functions as usual and accessing the global touches array to see what pointers are active for multitouch support!

Custom shader attributes (thanks to @lukeplowden)

If you are using a shader and want custom per-vertex properties in addition to uniforms, which are the same across the whole shape, you can now call vertexProperty(name, value) before vertices.

const vertSrc = `#version 300 es
 precision mediump float;
 uniform mat4 uModelViewMatrix;
 uniform mat4 uProjectionMatrix;

 in vec3 aPosition;
 in vec2 aOffset;

 void main(){
   vec4 positionVec4 = vec4(aPosition.xyz, 1.0);
   positionVec4.xy += aOffset;
   gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;
 }
`;

const fragSrc = `#version 300 es
 precision mediump float;
 out vec4 outColor;
 void main(){
   outColor = vec4(0.0, 1.0, 1.0, 1.0);
 }
`;

function setup(){
  createCanvas(100, 100, WEBGL);

  // Create and use the custom shader.
  const myShader = createShader(vertSrc, fragSrc);
  shader(myShader);

  describe('A wobbly, cyan circle on a gray background.');
}

function draw(){
  // Set the styles
  background(125);
  noStroke();

  // Draw the circle.
  beginShape();
  for (let i = 0; i < 30; i++){
    const x = 40 * cos(i/30 * TWO_PI);
    const y = 40 * sin(i/30 * TWO_PI);

    // Apply some noise to the coordinates.
    const xOff = 10 * noise(x + millis()/1000) - 5;
    const yOff = 10 * noise(y + millis()/1000) - 5;

    // Apply these noise values to the following vertex.
    vertexProperty('aOffset', [xOff, yOff]);
    vertex(x, y);
  }
  endShape(CLOSE);
}

What's Changed

What's Changed 🎊

New Contributors

Full Changelog: v1.11.5...v2.0.0

Read the whole story
jlvanderzwan
3 days ago
reply
Share this story
Delete

Saturday Morning Breakfast Cereal - Wargh

1 Comment and 4 Shares


Click here to go see the bonus panel!

Hovertext:
The other one of course is Schindler's List.


Today's News:
Read the whole story
jlvanderzwan
3 days ago
reply
I disagree, live-dubbing movies into Wookie with your friends is way more fun
acdha
4 days ago
reply
Washington, DC
Share this story
Delete
Next Page of Stories