In 1959, schoolchildren draw pictures of what they think the future will look like, to be buried in a time capsule to mark the opening of their school. One girl, Lucinda, fills a sheet of paper with row after row of numbers instead. Fifty years later, when the capsule is dug up as part of the school's anniversary celebration, Lucinda's sheet of numbers ends up in the hands of Caleb Koestler. He takes it home to show his father, John (Nicolas Cage), a professor of astrophysics at MIT who is estranged from his parents and struggling to find meaning in life following the death of his wife. But he has a more immediate problem when he realises that the numbers accurately predict the location, date and death toll of every major disaster of the past 50 years - and some that haven't happened yet. As the final date on the list approaches, John teams up with Lucinda's daughter (Rose Byrne) and they race to understand the predictions in time to avert the apparently inevitable. Meanwhile, Caleb begins to be visited by sinister figures who speak in telepathic whispers and show him horrifying glimpses of the future. Knowing got terrible reviews when it came out in cinemas, but the first half of the film is actually pretty good and genuinely chilling. It is once the meat of the story is revealed that the film falls apart spectacularly, collapsing into an unconvincing and didactic mess. This failure to come up with a convincing explanation is a deeply frustrating waste of a promising idea and a good first hour. "I thought there was some purpose to all this," Cage laments when the final prediction is deciphered, and the viewer can only share his disappointment.