Terrified revellers screamed as a truck careered into a crowd of fireworks spectators in Nice, turning Bastille Day celebrations into a night of horror.
AFP correspondent Robert Holloway was among the crowds celebrating France's national day on Nice's Promenade des Anglais when the nightmare began.
He had to shield his face from flying debris as a gunman steered the truck two kilometres (1.3 miles) along the French Riviera resort's palm-fringed beachfront, mowing people down.
"It was absolute chaos," Holloway said.
At least 84 people have been killed in what French President Francois Hollande has branded a terrorist attack.
Bodies lay covered in sheets on what is usually a bustling seven-kilometre strip curving along Nice's clear blue coast, attracting tourists from the world over.
A child's doll lay abandoned next to one of the dead, as Hollande confirmed that several children were among the victims.
In the early hours of Friday, the truck itself sat finally immobilised in front of the luxury Palais de la Mediterranee hotel, badly damaged with its tyres burst and multiple bullet holes in its windscreen.
The driver fired a pistol several times before being shot dead by police, regional chief Christian Estrosi said.
'Like a battlefield'
In a Facebook video that has been viewed 3,000 times, Tarubi Wahid Mosta described how he had taken photos of the aftermath — children's toys lying abandoned; an empty pushchair.
"I almost stepped on a corpse, it was horrible. It looked like a battlefield," he says, trembling, his eyes red.
"All these bodies and their families ... they spent hours on the ground holding the cold hands of bodies dismembered by the truck. You can't even speak to them or comfort them."
When he finally went home, he brought a victim's Yorkshire terrier dog with him.
A witness named Nader told BFM television he had seen the whole attack from start to finish, and had initially thought the driver had "lost control".
"I was in the street. He stopped just in front of me after he (crushed) a lot of people," he said. "We were trying to speak to the driver to get him to stop.
"He looked nervous. There was a girl under the car, he smashed her. The guy next to me pulled her out," he said in broken English.
Nader said he saw the driver pull out a gun and start shooting at police.
"They killed him and his head was out the window."
'All hell broke loose'
People screamed and scattered as the truck veered down the beachfront where thousands of adults and children had gathered for the fireworks.
"For a big truck like that to get actually onto the promenade and then to go in a fairly straight line along there, looked to me like a very deliberate act," Holloway said.
"It was about 100 metres from me and I had a few seconds to get out of the way."
Several witnesses described how people hurled themselves off the promenade onto the beach below to escape the path of the truck.
Marie, a 37-year-old security guard at the nearby beachfront Massena Museum — which itself hosted Bastille Day festivities just hours before the attack — described the panic as people tried to flee.
"We saw hundreds of people rushing to get shelter," she told AFP, still stunned.
"There were children, people got trampled."
A single high-heeled shoe lay on a nearby road, lost in the panic.
The city streets were quiet as dawn approached, with the exception of the many soldiers and members of the security forces out on patrol.
Witness Roy Calley, who said he lived 200 metres from the promenade, told the BBC there was "all hell breaking loose" and the situation was "pretty horrendous".
"It was a celebratory atmosphere, it was fun, people were enjoying themselves.
Suddenly I heard a huge, what I can only describe as maybe an explosion or a crash.
A lot of people were screaming. That was followed by what I thought were maybe gunshots."
Earlier in the evening, as the crowds enjoyed the fireworks, lightning had flashed in the skies over Nice.