Jennifer Lawrence’s Joy is a hard-up, early-1990s Long Island single mother who invents a self-wringing mop. But before she can make a go of her invention, she has to overcome the ambition-stifling efforts of her chaotically dysfunctional family, as well as several unscrupulous business associates.

Director David O Russell takes a skew-whiff approach to Joy’s tale, giving a voice-over narration to her supportive grandmother (Diane Ladd), despite the fact that she dies fairly early on, and occasionally filtering events through the surreal prism of the outlandish TV soap to which her bed-bound mother (Virginia Madsen) is addicted.

The offbeat flourishes don’t always work, but there is much to enjoy along the way, including vibrant supporting performances from Robert De Niro as Joy’s meddlesome father and Isabella Rossellini as her wealthy backer (who happens to be her dad’s latest girlfriend).

Bradley Cooper seems subdued, however, as the suave home-shopping executive who gives Joy’s invention a boost. But it’s the mesmerising Lawrence who holds things together, wholeheartedly engaging our sympathy for her plucky underdog.