After an effort to counter global warming goes awry, the world is plunged into perpetual winter, wiping out almost all humanity. The few survivors are all aboard a massive train, which has been perpetually running around the world for 17 years. The elite live at the front, in luxury. But the bulk of the population are crammed like cattle in the back, living off "protein blocks" made from who knows what. Occasionally, they try to revolt, with the rebellion being ruthlessly crushed by train security. The latest effort is under Curtis Everett (Evans), whose plan is to reach the prison section, and free from captivity Namgoong Minsu (Song), who designed the train's security systems. With help from Gilliam (Hurt), one-time partner of Wilford, the man who built the train, but opposed by Wilford's second-in-command, Mason (Swinton), Everett and his rebels slog their way through the carriages. But what Everett finds when he gets to the front, may not be quite what he expected.
Based on a French graphic novel, large chunks of this are quite excellent. The visual style is great, and the idea offers plenty of scope for invention, even if it's never properly explained why the train has to keep going. Never mind that: what's in the next carriage? Maybe something good, maybe something bad, and maybe something that initially looks entirely innocuous, yet turns out to be a lethal threat. It's a nicely balanced piece of work, with the exception of Swinton's performance, which is ultra-cartoonish: if fun to watch, it doesn't fit the other characters, who are much more finely-nuanced. I'm also not entirely happy with the finale, which almost appears spliced on from another movie, or as if Harvey Weinstein got his wish to slash 20 minutes from the film. Bong had a chance to be truly subversive if he had followed through with where this heads, before veering off into the expected, and much less interesting, heroics. It's a disappointing end to what remains one of the smarter and more inventive slices of dystopian sci-fi in recent years.