A method for generating, by a data processing system, a robotic program for industrial coating, wherein coating material is to be applied on a surface of an industrial object by a coating gun of a robot, the method comprising the following steps: a) receiving inputs including virtual representation of a robot, virtual representation of a robotic coating gun, virtual representation of a set of elements of the object surface to be coated and a set of desired coating thickness ranges, virtual representation of an industrial sub-cell; b) receiving inputs on a coating dispersion object to be mounted on the coating gun for emulating coating behavior of the coating gun; c) synthetically generating training data of a plurality of robotic programs for industrial coating and of their corresponding coating thickness coverage on a plurality of surfaces for a plurality of scenarios; d) processing the training data for machine learning purposes to obtain first data tuples x and second data tuples y; wherein the x tuples are describing a point sequence on the surface, the corresponding coating thickness coverage and robot-part mutual information; wherein the y tuples are describing the corresponding robotic program as a list of robotic locations; e) learning, by using supervised learning algorithms, from the processed data a function mapping the x tuples into the y tuples to generate a coating prediction module for the robot; f) for a given point sequence of each given surface element, proceeding, starting with a given selected valid thickness coverage as input parameters, wherein the selected valid thickness coverage is for each point a valid coating thickness value, i. e. valid under range and delta constraints, wherein the delta value is given to specify what is the acceptable maximum value difference between points of the same surface element or across different surface elements, in an iterative manner to: - predict a robotic program via the coating prediction module; - simulate the predicted robotic program with a collision detection engine within the industrial sub-cell; - calculate the thickness values of the coating material on the given surface element by detected collisions between elements of the coating dispersion object mounted on the used robotic coating gun and sub-elements of the given surface element; where the input parameters are iteratively tuned until the calculated thickness values correspond to the set of desired coating thickness ranges and there are no unallowed robotic collisions within the industrial sub-cell; and g) generating a coating robotic program for each surface element based on one or more predicted robotic programs resulting from step f). a) receiving inputs including virtual representation of a robot, virtual representation of a robotic coating gun, virtual representation of a set of elements of the object surface to be coated and a set of desired coating thickness ranges, virtual representation of an industrial sub-cell; b) receiving inputs on a coating dispersion object to be mounted on the coating gun for emulating coating behavior of the coating gun; c) synthetically generating training data of a plurality of robotic programs for industrial coating and of their corresponding coating thickness coverage on a plurality of surfaces for a plurality of scenarios; d) processing the training data for machine learning purposes to obtain first data tuples x and second data tuples y; wherein the x tuples are describing a point sequence on the surface, the corresponding coating thickness coverage and robot-part mutual information; wherein the y tuples are describing the corresponding robotic program as a list of robotic locations; e) learning, by using supervised learning algorithms, from the processed data a function mapping the x tuples into the y tuples to generate a coating prediction module for the robot; f) for a given point sequence of each given surface element, proceeding, starting with a given selected valid thickness coverage as input parameters, wherein the selected valid thickness coverage is for each point a valid coating thickness value, i. e. valid under range and delta constraints, wherein the delta value is given to specify what is the acceptable maximum value difference between points of the same surface element or across different surface elements, in an iterative manner to: - predict a robotic program via the coating prediction module; - simulate the predicted robotic program with a collision detection engine within the industrial sub-cell; - calculate the thickness values of the coating material on the given surface element by detected collisions between elements of the coating dispersion object mounted on the used robotic coating gun and sub-elements of the given surface element; where the input parameters are iteratively tuned until the calculated thickness values correspond to the set of desired coating thickness ranges and there are no unallowed robotic collisions within the industrial sub-cell; and - predict a robotic program via the coating prediction module; - simulate the predicted robotic program with a collision detection engine within the industrial sub-cell; - calculate the thickness values of the coating material on the given surface element by detected collisions between elements of the coating dispersion object mounted on the used robotic coating gun and sub-elements of the given surface element; g) generating a coating robotic program for each surface element based on one or more predicted robotic programs resulting from step f).