← All Movies
Triangle
Jess prepares to take her autistic son Tommy on a boat trip with her friend Greg. When Tommy becomes upset, she tells him that he just had a bad dream. Jess goes to a Florida harbor without Tommy, explaining that he is at school, and boards Greg's boat with his deckhand Victor, his married friends Sally and Downey, and Sally's friend Heather. On the boat she has a dream about crabs on a beach, and wakes up disturbed, but then she forgets what disturbed her. At sea, a storm approaches, and while Greg radios the Coast Guard, he listens to a distress signal from a woman pleading for help. She says that someone is killing everyone but is cut off before she can provide her location. The sudden storm capsizes the boat. Heather is swept away, but the others climb onto the overturned sailboat when the storm clears.
The five survivors board a passing ocean liner, the Aeolus. It appears to be deserted even though they saw the silhouette of a person aboard. Jess experiences a sense of déjà vu as they explore the ship. They find Jess's keys and fresh food in the dining room. Jess spots someone watching them and Victor gives chase. Jess and Greg find the words "go to theater" written in blood on a mirror, but Greg insists the crew must be playing a prank. Jess returns to the dining room, where the food is now rotting. Victor, with a head wound, tries to strangle Jess, but she fights him, and he collapses.
Jess hears gunfire and follows it to the ship's theater, where Greg lies dead from a gunshot. Sally and Downey say that Greg told them Jess shot him. Someone in a burlap mask shoots Sally and Downey. Jess runs, grabs an ax and disarms the shooter, who tells her, "You have to kill them; it's the only way to get home" before Jess knocks her overboard.
Jess hears yelling and sees another copy of her group on Greg's boat, who spot her (as the earlier unidentified figure). This new set of passengers boards the ship. They spot her after she drops her keys, and she attempts to warn the new Victor when he chases her, only to accidentally injure his head on a wall hook. She finds dozens of her own lockets and notes in her own handwriting telling her to kill them all. She takes a shotgun and confronts the new group, intending to "change the pattern", but a third Jess shoots the new Greg and stabs the new Downey and Sally.
The old Jess chases the new Sally, who sends the distress signal heard on Greg's boat. Jess catches up to her on a deck filled with dozens of Sally's corpses, and Sally succumbs to her wound as, below them, the new Jess kills the third Jess. The overturned boat returns again with another copy of her group, and the old Jess realizes the loop restarts once everyone is killed. Desperate to stop the loop, she sets the loop into motion by writing on the mirror in blood, dumping bodies overboard, and telling the latest Sally and Downey to go to the theater. She then arms herself, dresses in the shooter's outfit, and puts on a burlap mask. After she shoots the latest group and is disarmed, she urges the latest Jess to kill everyone, before being knocked overboard.
She awakens near crabs on a beach, having washed ashore, and she discovers that it is earlier that morning. She returns home and watches from outside her house as her earlier self yells abusively and strikes Tommy out of frustration with his autism. She distracts her counterpart with the doorbell, then kills her, and tells Tommy that he just had a bad dream. She puts the bagged body in her car's trunk and leaves with Tommy, vowing to him that things will change.
A seagull hits their windshield and dies, but after she tosses it off the road, she sees there's a pile of many dead seagulls. Realizing she is still trapped in the loop, Jess hurriedly drives away, but crashes into a truck, killing Tommy. A taxi driver approaches her. Jess asks him to take her to the harbour, evidently hoping to bring back her son. The driver tells her he will wait for her, and she promises him that she will return. Exhausted, she joins the others on Greg's boat, starting the loop again.