1. A system for procedurally synthesizing a training dataset for training a machine-learning model, comprising: a training designer configured to describe variations in content of training images to be included in said training dataset; and an image definer coupled to said training designer, configured to generate training image definitions in accordance with said variations and transmit said training image definitions: to a 3D graphics engine for rendering into corresponding training images, and further to a ground truth generator for generating associated ground truth corresponding to said training images, said training images and said associated ground truth comprising said training dataset.