A system of differentiable neural networks trainable for automatic extraction of key features from a 3D model of a target object that can be used to query complex databases of virtual 3D models representing known objects and entities, the system comprising: a processor; and a non-transitory memory having stored thereon modules executed by the processor, the modules comprising: a database of a virtual representation data for a plurality of 3D models of objects, the data configured as a list of points and vectors representing faces of the objects in 3D space; characterized by an end-to-end differentiable pipeline comprising a first differentiable neural network and a second differentiable neural network (120; 140), wherein the first differentiable neural network is configured as a differentiable renderer (122; 142) to be trained to generate a first set of 2D images from a first 3D model of a first object and a second set of 2D images from a second 3D model of a second object, the first set of 2D images being rendered according to optimized rendering parameters for producing 2D images, the rendering parameters determined by gradient descent of a first triplet loss function with optimization (i) to maximize visual variation among N images generated for the first 3D model and (ii)) to maximize visual dissimilarity between N images generated for the first model and N images generated for the second model; and wherein the second differentiable neural network (120; 140) is configured as a convolutional neural network (120; 140) defined by a regression function and to be trained to generate searchable features of the first set of 2D images, the features configured as feature vectors extracted from the first set of 2D images according to optimized neural network parameters determined by gradient descent of a second triplet loss function with optimization to achieve high correlation to an input image of the first set of 2D images and low correlation to images of the second set of 2D images. a processor; and a non-transitory memory having stored thereon modules executed by the processor, the modules comprising: a database of a virtual representation data for a plurality of 3D models of objects, the data configured as a list of points and vectors representing faces of the objects in 3D space; characterized by an end-to-end differentiable pipeline comprising a first differentiable neural network and a second differentiable neural network (120; 140), wherein the first differentiable neural network is configured as a differentiable renderer (122; 142) to be trained to generate a first set of 2D images from a first 3D model of a first object and a second set of 2D images from a second 3D model of a second object, the first set of 2D images being rendered according to optimized rendering parameters for producing 2D images, the rendering parameters determined by gradient descent of a first triplet loss function with optimization (i) to maximize visual variation among N images generated for the first 3D model and (ii)) to maximize visual dissimilarity between N images generated for the first model and N images generated for the second model; and wherein the second differentiable neural network (120; 140) is configured as a convolutional neural network (120; 140) defined by a regression function and to be trained to generate searchable features of the first set of 2D images, the features configured as feature vectors extracted from the first set of 2D images according to optimized neural network parameters determined by gradient descent of a second triplet loss function with optimization to achieve high correlation to an input image of the first set of 2D images and low correlation to images of the second set of 2D images. a database of a virtual representation data for a plurality of 3D models of objects, the data configured as a list of points and vectors representing faces of the objects in 3D space; characterized by an end-to-end differentiable pipeline comprising a first differentiable neural network and a second differentiable neural network (120; 140), wherein the first differentiable neural network is configured as a differentiable renderer (122; 142) to be trained to generate a first set of 2D images from a first 3D model of a first object and a second set of 2D images from a second 3D model of a second object, the first set of 2D images being rendered according to optimized rendering parameters for producing 2D images, the rendering parameters determined by gradient descent of a first triplet loss function with optimization (i) to maximize visual variation among N images generated for the first 3D model and (ii)) to maximize visual dissimilarity between N images generated for the first model and N images generated for the second model; and wherein the second differentiable neural network (120; 140) is configured as a convolutional neural network (120; 140) defined by a regression function and to be trained to generate searchable features of the first set of 2D images, the features configured as feature vectors extracted from the first set of 2D images according to optimized neural network parameters determined by gradient descent of a second triplet loss function with optimization to achieve high correlation to an input image of the first set of 2D images and low correlation to images of the second set of 2D images.