This article was originally published on February 29, 2024. As of May 21, 2024, Dune: Part Two is streaming on Max.
Warning: Major spoilers ahead for the ending of Dune: Part Two.
By splitting Frank Herbert’s Dune into two parts, Denis Villeneuve pulled a bait and switch with audience expectations. In the first film, you can view Timothée Chalamet’s Paul Atreides as a fairly typical “chosen one” hero, but by the end of Part Two, the tide has turned. Paul embraces his destiny as the figurehead of a holy war, foreshadowing a catastrophic rise to power. In the as-yet unfilmed Dune: Part Three, Paul’s life is set to take an even darker turn, with Villeneuve announcing plans to adapt the epic Dune Messiah.
What Happened at the End of Dune: Part Two
Described by Villeneuve as a tragedy, Dune: Part Two leans into Paul’s role as Lisan al Gaib — the prophesied savior of the Fremen, the indigenous population of Arrakis. Initially unwilling to proclaim himself their messiah, Paul tries to live among the Fremen as an equal, learning their skills and traditions. It doesn’t hurt that he quickly falls in love with a Fremen warrior, Chani (Zendaya). More cynically, he knows the Fremen are crucial allies in his quest to defeat the Harkonnens, a repulsive dynasty of bald goths who killed Paul’s father in the first movie.
At first, Paul is primarily motivated by a desire for revenge. But Paul’s mother Jessica (a steely-eyed Rebecca Ferguson) has more ambitious plans in mind. Raised by the Bene Gesserit (Dune’s ruthless Illuminati sisterhood of psychic witches), she’s happy to fan the flames of religious fervor if it brings her son more power.
There are plenty of skeptics among the Fremen (including Chani), but Jessica does her best to sway public opinion toward Paul. After knocking back some hallucinogenic sandworm juice and becoming the Fremen’s new Bene Gesserit matriarch, she begins to whip up support among the zealots.
Meanwhile, Paul keeps exhibiting suspiciously messianic traits. He harnesses the biggest sandworm in living memory and becomes a notorious guerilla leader, sabotaging the Harkonnens’ rule over Arrakis. Despite having prophetic nightmares that he’ll spark a wave of destruction if he comes to power, he eventually accepts his role as Lisan al Gaib.
The turning point arrives when Paul drinks his own dose of sandworm bile, supercharging his latent powers of precognition. Delivering a maniacal speech to a gathering of Fremen leaders, he cements his image as the holy savior of Arrakis. It’s a hair-raising performance from Chalamet.
Like Part One, Part Two concludes with a duel and an epic battle, tying together Paul’s overlapping goals: his plan to destroy the Harkonnens, his destiny as a Fremen prophet, and his newfound desire to overthrow Emperor Shaddam IV (Christopher Walken), who has been manipulating events on Arrakis from afar.
Shaddam and his daughter Irulan (Florence Pugh) arrive just in time to see Paul conquer the Harkonnen fortress and kill Baron Vladimir (Stellan Skarsgård). Paul then threatens to nuke the planet’s spice fields — the reason why everyone wants to control Arrakis in the first place — unless the emperor surrenders. They settle this dispute the old-fashioned way, with a duel between Paul and the emperor’s champion Feyd-Rautha Harkonnen (Austin Butler). When Paul inevitably wins, the emperor is forced to abdicate and surrender Irulan’s hand in marriage, securing Paul’s claim to the throne.
The other Great Houses — i.e., Dune’s feudal overlords — are less impressed, rejecting Paul’s claim out of hand. So Paul ends Part Two on a terrifying note, commanding his followers to “send them to paradise.” Disturbed by her boyfriend’s tumultuous victory and impromptu royal betrothal, Chani flees into the desert alone.
What We Know About Dune: Part Three
This section includes major spoilers for Dune: Messiah.
Villeneuve envisioned his Dune adaptation as a trilogy, with Part Three covering the events of Dune: Messiah, Herbert’s second Dune novel. He confirmed recently that the script is “almost finished,” although Part Three’s existence depends on Part Two’s box-office success. (The first film made an impressive $402 million despite being released simultaneously in theaters and on HBO Max, so the signs here are pretty good.)
It may also be a while before filming begins. After making two Dune movies back-to-back, Villeneuve expressed a desire to take a break from Arrakis. Fortunately, this fits the 12-year gap between the events of Dune and Dune: Messiah. Chalamet, Zendaya, and Pugh aren’t in danger of aging out of their roles.
Messiah reintroduces Paul as the emperor, caught in a convoluted web of political intrigue. After achieving victory through a combination of aristocratic privilege, superior training, and religious/political machinations, he’s now trapped by his own image as a charismatic prophet. His terrifying visions have come true, with billions of people dying as he rules from the epicenter of a holy war.
If anything, adapting Dune: Messiah is an even more daunting task than the first two films. There’s no way Villeneuve and his screenwriting partner Jon Spaihts can cram everything in, considering the book’s elaborate tangle of subplots involving Paul’s precognitive superpowers, Irulan and Chani’s reproductive capabilities, a clone of Duncan Idaho (Jason Momoa), and Paul’s sister Alia in a prominent new role.
Alia’s absence from Part Two is actually a significant departure from book canon. Anya Taylor-Joy gets a brief cameo as the adult Alia during a dream sequence, but otherwise she’s still a fetus throughout the film, occasionally interjecting with telepathic commentary from inside Jessica’s womb. In the book, however, Paul and Jessica spend years rather than months in the deserts of Arrakis. Alia is born and raised among the Fremen.
By the time Paul defeats Shaddam IV, Alia’s already a young child — albeit with the powers and maturity of an adult Bene Gesserit. In fact, she’s the one who kills Baron Harkonnen in the original story. (If you’ve seen David Lynch’s Dune, you may remember her being played by a 7-year-old Alicia Witt in a mini Bene Gesserit costume.)
It made sense for Villeneuve to edit Alia out of Part Two because the film is already pretty long. But she’ll presumably have a major role in Part Three, including a potential romance with the aforementioned Duncan Idaho clone. This is, incidentally, only about the tenth-weirdest thing to happen to Duncan as the Dune novels descend into glorious chaos.
What We Think (or Hope) Will Happen Next
As Villeneuve politely put it in a recent interview, “the books become more … esoteric” after Dune: Messiah. But you could argue this is a feature, not a bug. Do we want to see Alia get possessed by her dead grandfather Baron Harkonnen, forcing Anya Taylor-Joy to do a Stellan Skarsgård impression while playing a power-hungry sex maniac? Assuredly yes. This kind of thing is the lifeblood of pulp science fiction.
While Villeneuve’s Dune movies present themselves as lofty dramas, some of Part Two’s greatest moments emerge from its wacky performances and peculiar lore: Javier Bardem’s slyly hilarious role as the Fremen leader Stilgar, Jessica discussing strategy with her telepathic fetus, or Feyd-Rautha’s vampiric BDSM orgies. Their entertainment value comes from the encroaching realization that virtually all of the main characters are total freaks. Part Three should thrive on this philosophy.
Heavily concerned with Paul’s line of succession, Dune: Messiah sees Irulan (his wife in name only) and Chani (his true partner) both fail to conceive an heir. In Chani’s case, this is because Irulan is secretly feeding her contraceptive drugs. For Irulan, there’s a more straightforward explanation: Paul refuses to sleep with her.
In addition to being a classic brand of royal melodrama, this conflict ties into Frank Herbert’s obsession with genetic destiny and bloodlines. (Don’t forget the scene in Part Two where Léa Seydoux’s character seduces the “psychotic” Feyd-Rautha on behalf of the Bene Gesserit breeding program, harvesting his precious Harkonnen DNA.)
In one of Dune’s most explicit influences on Star Wars, Messiah draws to a close with Chani giving birth to superpowered twins and then dying, leading Paul into an emotional breakdown. This tragic arc will likely make it into the film intact, but the same can’t be said for much of Messiah’s background world-building.
Villeneuve will probably have to trim some of the book’s political lore — although he can’t avoid the wildest subplot, the return of Paul’s dead mentor Duncan Idaho. He gets resurrected as a “ghola” (similar to a clone) named Hayt, a sleeper agent designed to sabotage Paul’s rule. Frank Herbert loved this idea so much that he just kept resurrecting Duncan Idaho again and again in later books.
You can understand why Villeneuve wants to wrap things up with Messiah. However, it’s tempting to imagine a future where the franchise just keeps going, shifting registers from weighty political drama to psychedelic space opera like the books.
By the time we reach the fourth installment, God Emperor of Dune, 3,500 years have passed and Paul’s son Leto II is a quasi-immortal human-sandworm hybrid, ruling the universe with a stranglehold on spice production. At one point, he gets embroiled in a love triangle with a sexy ambassador genetically engineered to seduce him, and — you guessed it! — yet another clone of Duncan Idaho. If someone does keep adapting these novels, Jason Momoa will never be out of work. A fitting tribute to Frank Herbert’s vision.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]