World news – What if I tell you that WandaVision is the Matrix from the perspective of the machines?


Subscribe to

With its sixth episode, « All-New Halloween Spooktacular! », WandaVision stepped into the 21st century, replacing the laughing reality of its almighty heroine with the single-camera format that has dominated television for the past two decades. But while the series threw its hats on sitcom evolution with its opening credits (a riff about Malcolm in the Middle that debuted in 2000), another influence of the series went unnoticed. The cinema in Westview Town Square may play a dual role between The Incredibles and Lindsay Lohan’s remake of The Parent Trap, but there is no question which film world Westview is actually in: The Matrix from 1999.

In A. Glitch in the Matrix, a new documentary about people who believe that what we see as reality is actually a computer simulation, one theme describes his recurring vision: he has wandered outside of the simulation’s active area to find frozen, rigid figures found with arms outstretched in a T-pose – the standard position for 3D animation, the idle state, returning to computer characters when the program stops giving instructions. This is the same version of reality that Wanda’s husband’s vision – or whatever we should call the figure who looks like him and seems to carry his consciousness – finds when he wanders to the edges of Westview, the bubble, to the Wanda created protect you from the truth of Vision’s death. As Wanda’s attention is drawn elsewhere, Vision wanders into areas that have not yet been prepared for his arrival. There he finds people frozen or trapped in a loop and repeats the same actions over and over again.

In The Matrix, these repetitions – especially those of the black cat that Neo sees twice on his way – are proof that that the simulation has been rewritten, like the overlapping edges of a drawing torn open and glued back together. In WandaVision, however, they are more of an example of what video game designers and computer animators refer to as truncated cone culling. It removes objects when they slip out of view of the player or the camera to reduce the processing power required to render a scene. (If you’ve ever moved a video game controller too fast and watched the terrain shift from amorphous blocks of color to a more detailed environment, you already know the phenomenon.) Simulation theory often seems to be on a continuum between philosophical exercise and intellectual masturbation: if the simulation is so convincing and inescapable that we cannot distinguish it from our reality (whatever that may be) then everything we do or feel the simulation carries as much weight as it would be, if it were real at all. However, this concept takes a darker turn when a person places themselves at the center of the simulation, the axis around which the virtual world rotates. You can’t verify the existence of other people, but they certainly exist themselves.

« Even in the Matrix movies, most of the people up there are actually tied to a body in a capsule, » Glitch director Rodney Ascher explained shortly before the premiere of the film at the virtual Sundance Film Festival in January. « But there are other notions of the world in which another person is more or less identical to a chair or a car. It’s just lights and numbers that flicker around you, and that assumption can have enormous consequences. » One of Ascher’s themes is Joshua Cooke, who killed his parents after believing he actually lived in the Matrix.)

The best of movies, music, television, books, and more becomes yours three times a week Inbox delivered.

Wanda knows the other people around her are real (or at least many of them), but she doesn’t like being reminded, especially when dealing with the unimulated death of her husband and brother is faced. While looking back at their childhood in the fictional, war-torn land of Sokovia from the point of view of Wanda’s twin brother Pietro, gunfire sounds in the background while the twins beg for Halloween treats. When Wanda questions his memory of the event, Pietro replies, « You probably suppressed much of the trauma. » Simulation theory is based on the ability of computers to create an increasingly convincing version of the real world. This theory, however, is just the latest iteration of an idea that dates back to Plato’s Allegory of the Cave and is driven by the feeling that there is something wrong with the world and that it might be preferable to inhabit an entirely different world. In her grief, Wanda has rewritten not only her reality but also her own mind so that she no longer remembers who she actually is. But as the series goes on and gets closer and closer to the present, it becomes clearer to her and to us what she did to her world and the other people in it.

With the possible exceptions of Vision and Pietro, the residents of Westview are real people whose minds and bodies are hijacked as they are unwittingly tossed into Wanda’s reboot of reality. Sometimes they don’t seem to know what happened to them and live ignorantly in a two-dimensional world resembling the Dick Van Dyke Show or Family Ties like it’s the only one they have ever known. But when the simulation breaks enough to let her real consciousness through, Wanda’s human toy is an experience of fear and horror. It’s one thing when everyone gets stuck in the same simulation. It is something completely different when the simulation is programmed from the inside, like a video game where only one player has the cheat codes. Life on a sitcom seems like a laugh, but for those who can’t escape, it’s more like a laughing version of Hell.

Slate is published by The Slate Group, a Graham Holdings Company.
All content © 2021 The Slate Group LLC. All rights reserved.

Slate depends on advertising to support our journalism. If you appreciate our work, please deactivate your ad blocker.

By joining Slate Plus you support our work and receive exclusive content. And you will never see this message again.

« )), c = d (m [i.size_id] .split ( » x « ). Map (function (s) {return value (s)}), 2 ), s.width = c [0], s .height = c [1]), s.rubiconTargeting = (Array.isArray (i.targeting)? i.targeting: []). redu (function (e, t ) {return e [t.key] = t. Values ​​[0], e}, {rpfl_elemid: f.adUnitCode}), t.push (s)): n.logError (« Rubicon: bidRequest undefined at index position: » . concat (o), r, e), t}, []). sort (function (e, t) {return (t.cpm || 0) – (e.cpm || 0)})}, getUserSyncs : Function (e, t, r, n) {if (! X&&e.iframeEnabled) {var i = «  »; return r&& « string » == typeof r.consentString&& (« boolean »? == typeof r.gdpries) « ? gdpr = » .gdprApplies), « &gdpr_consent = »). concat (r.consentString): i = « ? gdpr_consent = « . concat (r.consentString)), n&& (i = » « . concat (i? » & « : »? « , » us_privacy = « ) .concat (encodeURIComponent (n))), x =! 0 , {type: « iframe », url: « https: // » .concat (g.syncHost || « eus », « / usync.html ») i}}}, transformBidParams: function (e) {return n.convertTypes ({accountId: « number », siteId: « number », zoneId: « number »}, e)}}; Function v (e, t) {var r = obgetConfig (« pageUrl »); r = e.params.referrer? e.params.referrer: r || t.refererInfo.referer; return^http:/i, »https: »):r Genealogie function y (e, t) {var r = e.params; if (« video » === t) {var i = []; return i = [ playerWidth,]: Array.isArray (n.deepAccess (e, « »)) &&1 === i = playerSize [0]: Array.isArray (e.sizes) CSSEANDCH AR&0e.length) && (t = e.length); for (var r = 0, n = new array (t); r ‘; var i, o}}, h = function (e) {var t = 0 = e&&t.innerWidth’ v.vast_url «  »: v.vast_string&& (y = v.vast_string), g.pre_market_bids.push ({id: v.deal_id, seatbid: [{bid: [{impid:, dealid: v.deal_id, price: v.price, adm: y}]} ], cur: v.currency, ext: {event_log: [{}]}}}} var h = n.getBidIdParameter (« mimes » « , e .params) || [ » application / javascript « , » video / mp4 « , » video / webm « ], _ = {id: e.bidId, sure: l, video: {w: p, h: f, ext: g, mimes: h}}; » « ! = n.getBidIdParameter (« price_floor », e.params) && (_. bidfloor = n.getBidIdParameter (« price_floor », e.params)), «  »! = n .getBidIdParameter (« start_delay », e.params) && (_. video. video .startdelay = 0 Boolean (n.getBidIdParameter (« start_delay », e.params))), «  »! = n.getBidIdParameter (« e! .params) && (_. video.minduration = n.getBidIdParameter ( » min_duration « ) , e.params)), «  »! = n.getBidIdParameter (« max_ duration « , e.params) && (_. .getBidIdParameter (« max_duration », e.params)), «  »! = n.getBidIdParameter (« placement type », e.params) && (_. video.ext.placement = n.getBidIdParameter (« placement type », e.params))), «  »! = n.getBidIdParameter (« position », e.params) && (_. video.ext.pos = n.getBidIdParameter (« position », e.params)), e.crumbs&&e.crumbs (c = e .crumbs.pubcid ); var S = navigator.language? « language »: « userLanguage », I = {id: s, imp: _, site: {id: «  », page: a, content: « content »}, device: {h: screen height, w: screen width, dnt : n.getDNT ()? 1: 0, language: Navigator [S] .split (« -« ) [0], brand: Navigator.Vendor navigator.vendor: «  », including: navigator.userAgent}, ext: {wrap_response: 1}}; n.getBidIdParameter (« number_of_ads », e.params) && (I.ext.number_of_ads = n.getBidIdParameter_ « , e.params)); var A = {}; return 1 == n.getBidIdParameter ( » spotx_all_google_consent « , e .params) && (A.consented_providers_settings = u), t&&t.gdprConsentConsent .consentString, void 0! == t.gdprConsent.gdprApplies&ons )), t&&t .us_privacy « , t.uspConsent), n.deepAccess (e, » userId.id5id.uid « ) && (A.eids = A.eids || [], A.eids.push ({source: « id5-syn », uids: [{id: e.userId.id5id.uid}], ext: e.userId.id5id.ext || {}})), c&& (A.fpc = c) , e&&e.schain&CSSE (I.source = {ext: {schain: e.schain}}), e&&e.userId&&e.userId.tdid&&, {source | : « adserver. org », uids: [{id : e.userId.tdid, ext: {rtiPartner: « TDID »}}]}))), n.isEmpty (A) || (I.user = {ext: A}), {method: « POST », URL: « » s, data: I, bidRequest: t}} )}, interpretResponse: function (e, t) {var r = [], i = e.body; return i&&n.isArray (i.seatbid) &&n._each (i.seatbid, function (s) {n._each (, function (s) {var a = {}; for (var c in t.bidRequest. bids) e.impid == t.bidRequest.bids [c] .bidId&& (a = t.bidRequest.bids [c]); n._each (a.params. pre_market_bids, function (t) {t.deal_id == (e.price = t.price, i.cur = t.currency)}); var d = {requestId: a.bidId, currency: i.cur || « USD », cpm: e.price, creativeId: e.crid || «  », dealId: e.dealid || «  », ttl: 360, netRevenue:! 0, channel_id:, cache_key: e.ext.cache_key, vastUrl: « https: // search / ad / vast.html? key = « e.ext.cache_key, videoCacheKey: e.ext.cache_key, media type: sd, width: ew, height: eh}; d.meta = d.meta | | {}, e&&e.adomain&&0e.length) && (t = e.length); for (var r = 0, n = new array (t); rt? e: t} function d (e, t, n) { ! e.preload&&e.preloadThreshh old&&function (e, t, n, i) {return = e.shownThreshold&&! e.seen? (e.seen =! 0, setTimeout (function) new r (« shown », t))}, 15)) :(! n || i1&& (h = e (r, Math.floor (n / o), i-1, o)), h}, dies .getVerticallyVisiblePixels = f, this.getViewportHeight = function () {return t.innerHeight || e.documentElement.clientHeight || e.body.clientHeight}, this.getViewportWidth = function () {return t.innerWidth || e.documentElement .clientWidth || e.body.clientWidth}, this.isElementNotHidden = u, this.isElementInViewport = functi on (n) {var i = n.getBoundingClientRect (); return i .top> = 0&&i.left> = 0&&i.bottom = o.length) return {done: true}; return {done: false, value: o [i]}; }, e: function e (_e) {throw _e; }, f: F}; } throw new TypeError (« Invalid attempt to iterate on a non-iterable instance. nTo be iterable, non-array objects must have a [Symbol.iterator] () method. »); } var normalCompletion = true, didErr = false, err; return {s: function s () {it = o [symbol.iterator] (); }, n: function n () {var step = (); normalCompletion = step.done; Regression; }, e: function e (_e2) {didErr = true; err = _e2; }, f: function f () {try {if (! normalCompletion && it.return! = null) it.return (); } finally {if (didErr) throw err; }}}; }}

Function _unsupportedIterableToArray (o, minLen) {if (! O) return; if (typeof o === « string ») return _arrayLikeToArray (o, minLen); var n = (o) .slice (8, -1); if (n === « Object » && o.constructor) n =; if (n === « Map » || n === « Set ») returns Array.from (o); if (n === « Arguments » || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray (o, minLen); }}

Function _arrayLikeToArray (arr, len) {if (len == null || len> arr.length) len = arr.length; for (var i = 0, arr2 = new array (len); i


Donnez votre avis et abonnez-vous pour plus d’infos

Vidéo du jour: