Device for generation of a three-dimensional object that encodes data by additive manufacturing
Patent Information
- Application Number
- EP2023794302
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-10-28
- Filing Date
- 2023-10-20
- Publication Date
- 2025-09-03
AI Technical Summary
Current methods for encoding information in objects, such as surface codes and authentication volume markings, are inadequate due to limitations in surface codes and complexity in implementation, with X-ray diffractometry not allowing for wide diffusion.
A device and method for generating a three-dimensional object encoding data through additive manufacturing, using a memory, encoder, initializer, and calculator to create paths within the object that encode information securely and easily, leveraging stochastic optimization to ensure path continuity and non-overlap, allowing for secure and easy recovery of encoded data.
Enables secure and easy encoding of information within the object's body, facilitating complex information encoding and easy retrieval through physical property measurements, overcoming limitations of existing methods.
Smart Images

Figure 1.1
Abstract
Description
[0001] Description
[0002] Device for generating three-dimensional objects encoding data by additive manufacturing
[0003] The invention relates to the field of manufacturing objects encoding information and in particular objects produced by additive manufacturing encoding information.
[0004] The field of information-encoding objects is currently underdeveloped. Information encoding is generally done by affixing a sign to the surface, such as a barcode or a QR code.
[0005] Some developments have attempted to offer anti-counterfeiting objects, such as application FR3098758 which proposes marking in an authentication volume by reading by X-ray diffractometry, DRX.
[0006] None of these systems are satisfactory. Surface codes are limited, while marking in an authentication volume is complex to implement, and reading by X-ray diffractometry (DRX) does not allow for wide distribution.
[0007] The invention improves the situation. To this end, it proposes a device for generating a three-dimensional object encoding data by additive manufacturing, comprising a memory arranged to receive information data to be encoded and object substrate data comprising shape data and encoding type data, an encoder arranged to determine a set of target lengths and a number of layers as a function of the information data to be encoded and the encoding type data, an initializer arranged to initialize a three-dimensional object model from the shape data with a stack of layers corresponding to said number of layers according to an additive manufacturing production direction thus defining an object surface, defining on the object surface a number of measurement points corresponding to the number of lengths in the set of target lengths,and generating paths between pairs of measurement points each corresponding to a length of the set of target lengths, each measurement point being associated with a single path, the length of each path being less than or equal to the target length with which it is associated, a path being defined by a continuous series of displacements of fixed dimension between the measurement points associated with this path, each displacement being expressed according to one of three directions associated with a three-dimensional reference frame and one of which corresponds to the direction of carrying out additive manufacturing, each displacement defining a space inside the layer stack making it possible to measure a physical property qualifying a measurement associated with the path of which this displacement is part,and a calculator arranged to modify the displacements of the paths generated by the initializer so that the latter each have a length corresponding to the target length with which they are associated, by applying a stochastic optimization whose operations are exclusively the addition, removal or modification of one or more displacements, which operations must further preserve the continuity of each path, the inclusion of each path within the stack of layers, and prevent the overlapping or contiguity of two paths between them.,
[0008] This device is particularly advantageous because it allows information to be encoded in the body of the object in a secure and easily retrievable manner.
[0009] According to various embodiments, the invention may have one or more of the following characteristics:
[0010] - the calculator is further arranged to apply stochastic optimization such that the paths associated with a non-zero target length have an identical number of operations according to the direction of additive manufacturing,
[0011] - the calculator is further arranged to apply a stochastic optimization such that the paths associated with a non-zero target length have a direction of travel of the stack of layers which is monotonous,
[0012] - the calculator is arranged to apply a stochastic optimization whose operations increase the Manhattan distance between the space defined by the movements being modified and the space defined by the paths which are closest to it according to the Manhattan distance,
[0013] - the encoder is arranged to define a surface code on an upper portion of the object surface, and - the encoder is arranged to define a random or pseudorandom set of target lengths, and to return a value corresponding to the measurement associated with the paths.
[0014] The invention also relates to a method for generating a three-dimensional object encoding data by additive manufacturing, comprising the following operations: a) receiving information data to be encoded and object substrate data comprising shape data and encoding type data, b) to determine a set of target lengths and a number of layers as a function of the information data to be encoded and the encoding type data, c) initializing a three-dimensional object model from the shape data with a stack of layers corresponding to said number of layers according to an additive manufacturing execution direction thus defining an object surface, defining on the object surface a number of measurement points corresponding to the number of lengths in the set of target lengths, and generating paths between pairs of measurement points each corresponding to a length of the set of target lengths,each measurement point being associated with a single path, the length of each path being less than or equal to the target length with which it is associated, a path being defined by a continuous series of displacements of fixed dimension between the measurement points associated with this path, each displacement being expressed according to one of three directions associated with a three-dimensional reference frame and one of which corresponds to the direction of additive manufacturing, each displacement defining a space inside the layer stack making it possible to measure a physical property qualifying a measurement associated with the path of which this displacement is part, and d) modifying the displacements of the paths generated by operation c) so that the latter each have a length corresponding to the target length with which they are associated, by applying a stochastic optimization whose operations are exclusively addition,removing or modifying one or more displacements, which operations must further preserve the continuity of each path, the inclusion of each path within the stack of layers, and prevent the overlapping or contiguity of two paths with each other. According to various embodiments, this method may have one or more of the following characteristics: operation d) comprises applying a stochastic optimization such that the paths associated with a non-zero target length have an identical number of operations according to the additive manufacturing realization direction,
[0015] - operation d) includes applying a stochastic optimization such that the paths associated with a non-zero target length have a direction of travel of the stack of layers which is monotonous,
[0016] - operation d) includes applying a stochastic optimization whose operations increase the Manhattan distance between the space defined by the movements being modified and the space defined by the paths closest to it according to the Manhattan distance,
[0017] - operation b) includes defining a surface code on an upper portion of the object surface, and
[0018] - operation b) includes defining a set of random or pseudorandom target lengths, and returning a value corresponding to the measurement associated with the paths.
[0019] The invention also relates to a computer program comprising instructions for executing the method according to the invention, a data storage medium on which such a computer program is recorded and a computer system comprising a processor coupled to a memory, the memory having recorded such a computer program.
[0020] Other characteristics and advantages of the invention will appear more clearly on reading the following description, taken from examples given for illustrative and non-limiting purposes, taken from the drawings in which:
[0021] - figure 1 represents a schematic diagram of a device according to the invention,
[0022] - figure 2 represents an example of an operating loop of the device of figure 1,
[0023] - Figure 3 represents an example of a function implemented by the encoder of Figure 1, and - Figure 4 represents an example of a function implemented by the initializer of Figure 1.
[0024] The drawings and the description below contain, for the most part, elements of a certain character. They may therefore not only serve to better understand the present invention, but also contribute to its definition, if necessary.
[0025] This description may contain elements that are subject to copyright protection. The rights holder has no objection to anyone reproducing this patent document or its description in the same form as it appears in the official files. He reserves his rights in full for all other purposes.
[0026] Figure 1 represents a schematic diagram of a device for generating a three-dimensional object encoding data by additive manufacturing 2 according to the invention.
[0027] The device 2 has the role of receiving as input data which define one or more messages to be encoded in a three-dimensional object, and to return an additive manufacturing model of this object allowing, by a measurement of a physical quantity, to recover the one or more messages. In general, the one or more messages can contain any type of information, whether it has meaning or not.
[0028] The device 2 comprises a memory 4, an encoder 6, an initializer 8 and a calculator 10.
[0029] Memory 4 can be any type of data storage suitable for receiving digital data: hard disk, flash memory hard disk, flash memory in any form, RAM, magnetic disk, locally or cloud distributed storage, etc.
[0030] In the example described here, the memory 4 receives all the data that concerns the device 2, that is to say the programs and software instantiating the encoder 6, the initializer 8 and the calculator 10, the parameters and hyperparameters thereof, the weights of the neural networks if any, the outputs and intermediate data of the neural networks, the data received as input, the intermediate values, the data stored in buffer memory, as well as the additive manufacturing model data as output. The data calculated by the device can be stored on any type of memory similar to the memory 4, or on it. This data can be erased after the device has performed its tasks or retained.
[0031] In the example described here, memory 4 receives information data to be encoded as well as object substrate data as input data. The object substrate data contains shape data as well as encoding type data.
[0032] The object substrate data makes it possible to define how the information data to be encoded will be used to generate the additive manufacturing model. Indeed, the Applicant has discovered that its invention makes it possible to generate a very wide variety of objects that encode information in diverse ways.
[0033] Thus, these objects may comprise a surface code and a code in the body of the object that are independent of each other. In this case, the code in the body of the object may be used as a steganographic mark, which allows the object to be uniquely authenticated, regardless of the surface code. In another variant, these codes may be the continuity of each other, i.e. the surface code constitutes high-order (respectively low-order) bits, while the code in the body of the object constitutes low-order (respectively high-order) bits. Still alternatively, the surface code and the code in the body of the object may be complementary and form a public key / private key pair.Finally, the surface code (respectively the code in the body of the object) can be used as a public key to be combined with an unknown private key to allow the decoding of a message (''ayload'' in English) contained in the code in the body of the object (respectively in the surface code). The encoding type data makes it possible to define the chosen paradigm and conditions the message that will be encoded in the code in the body of the object, and therefore its additive manufacturing model.
[0034] The Applicant has in fact discovered that additive manufacturing, thanks to its precision and new material possibilities, makes it possible to encode very complex information while offering an easy way to read it.
[0035] Thus, an object may comprise on one face a plurality of measurement points, connected or not to a plurality of measurement points on another face (for example the opposite face in the direction of additive manufacturing). More generally, the measurement points may be distributed over the surface of the additive manufacturing model, and the measurement points may be associated two by two, so that each pair of points represents a power of 2, or a position in a code that has a base value. In addition, the length of the path between two points may also be measured to modulate the base value. Thus, if the points are connected to each other by an electrically conductive element, a measurement at the terminals of the two measurement points may make it possible to determine the resistance of the path that connects them and therefore its length to derive a value.Alternatively, the paths can be hollow, and the measurement can be the measurement of the flow time of a fluid from one measurement point to another. Still alternatively, a thermal conduction phenomenon can be used to measure the length of the path between two measurement points, etc. Thus, it is possible to encode a very long message in the body of the object, and to read this message by a simple measurement of a physical property.
[0036] Shape data, for its part, allows defining the general shape of the object for which one seeks to generate the additive manufacturing model. Thus, it can be cubic or parallelepiped, which are the most spontaneous shapes, but more generally, the invention allows any shape: hexahedral base, variable section, etc. Typically, shape data can be seen as a set of stacked layers that correspond to a desired shape for the object before the code is integrated into its body. Shape data can indicate portions of these layers that must be preserved and must not be associated with a path.
[0037] Thus, the information data to be encoded and the object substrate data constrain the additive manufacturing model. Indeed, depending on the complexity of the message to be encoded, the way of encoding this message and the specific shape sought for the object, it will be possible to directly produce the additive manufacturing model, or it will be necessary to modify the shape data, for example by adding layers or by modifying the scale of the object to allow the implementation of the paths that encode the code in the body of the object.
[0038] As will be seen below, for this, the device 2 uses on the one hand the encoder 6 in order to dimension a priori the additive manufacturing model of the object, then the initializer 8 in order to prepare the work of the calculator 10. Finally, the calculator 10 carries out a stochastic optimization in order to define paths in the body of the object which make it possible to respect the rules of constitution of the latter, both from the point of view of its structural integrity and from the point of view of the subsequent measurement making it possible to recover the code in the body of the object.
[0039] This stochastic approach is particularly advantageous because it allows design constraints to be freed and is particularly suited to additive manufacturing. Indeed, the stochastic approach guarantees that if a satisfactory solution exists (i.e., a set of paths whose lengths satisfy optimization and manufacturing tolerances), it will be found, and additive manufacturing, through its freedom in dimensioning, guarantees that a solution exists regardless of the shape of the object or the size of the message to be encoded.
[0040] Thus, the additive manufacturing model produced by the device 2 will include layer data defining each layer of the object. This layer data will be distributed on a grid corresponding to the envisaged additive manufacturing, and will define at each point or box of the grid whether this point is empty or full and if it is full with what material. To obtain this final result, the encoder 6 starts from the information data to be encoded and the object substrate data to create a set of initial layer data which correspond to a "full" object suitable for receiving the paths necessary to encode the code in the body of the object. It goes without saying that a "full" object can include hollowed-out areas as long as it remains possible to manufacture it by additive manufacturing, or present areas in which the material density is lower than in the rest of the object.The encoder 6 also has the function of generating a table of target lengths which will define the length that each path between two measurement points must take in order to encode the information data to be encoded. As explained above, these lengths are determined according to the physical property measurement which is envisaged, so that the measurement of this property is directly linked to this length and makes it possible to define a value associated with a pair of measurement points.
[0041] The initial layer data is then transmitted to the initializer 8 which will define on the one hand the locations of the measurement points on the surface of the object (for example on opposite faces, or otherwise), and on the other hand which will initialize paths between pairs of measurement points on the basis of the table of target lengths.
[0042] Then, the calculator 10 optimizes the paths generated by the initializer 8 in order to respect the shape constraints of the object defined by the shape data, to obtain paths whose lengths correspond to the target length table, and to respect structural manufacturing and property measurement constraints.
[0043] All the data described above can be stored in memory 4.
[0044] The encoder 6, the initializer 8 and the calculator 10 directly or indirectly access the memory 4. They can be implemented in the form of appropriate computer code executed on one or more processors. By processors, it is meant any processor suitable for the calculations described below. Such a processor can be implemented in any known manner, in the form of a microprocessor for a personal computer, laptop, tablet or smartphone, a dedicated chip of the FPGA or SoC type, a computing resource on a grid or in the cloud, a cluster of graphics processing units (GPUs), a microcontroller, or any other form suitable for providing the computing power necessary for the implementation described below. One or more of these elements can also be implemented in the form of specialized electronic circuits such as an ASIC. A combination of processor and electronic circuits can also be envisaged.Processors dedicated to machine learning could also be considered.
[0045] Figure 2 shows an example of an operating loop of device 2.
[0046] In an operation 200, the device 2 executes a function Inp(). The function Inp() makes it possible to receive the input data for the generation of the additive manufacturing model. As seen above, the input data includes the information data to be encoded and the object substrate data. The input data can be obtained by any means, using a human-machine interface and accessing them on the memory 4 or on any other storage.
[0047] Then, the encoder 6 executes an Enc() function in an operation 210. As described above, the Enc() function has the role of transforming the information data to be encoded into an array of target lengths according to the encoding type data. In addition, the Enc() function has the other role of instantiating the full layers defining the object that must receive the code in its body.
[0048] Figure 3 shows an implementation of the Enc() function.
[0049] In an operation 300, the encoder 6 accesses the information data to be encoded and the encoding type data and executes a Tab() function that returns an array containing the target lengths of the paths. The encoding type data plays a special role. Indeed, depending on the physical property measured to determine the length of the paths as well as the type of encoding chosen (N-bit array, word comprising N groups of words with K bits each, random value), the Tab() function establishes a separate target length array. As will be seen below, the measurement of the length of the paths can be directly correlated with the physical length of the paths, but it can also be based on other properties, such as the number of turns in a path, the property measurement being intended to allow these to be counted.
[0050] Then, a Fit() function is executed in an operation 310. The Fit() function uses as arguments on the one hand the shape data, and on the other hand the target length array. The role of the Fit() function is to check whether it is possible to create paths whose lengths are contained in the target length array inside the object defined by the shape data. This check can be carried out by means of automatic training (for example based on a boosted tree) or based on analytical criteria (for example the fact that the object is not higher than the shortest path length when the measurement points are arranged on the upper and lower faces of the object respectively).
[0051] If the Fit() function returns a positive value, then the Enc() function stops in an operation 399. Otherwise, an Adapt() function is executed in an operation 320 and the operation 310 is repeated. The Adapt() function can determine on its own whether to increase or decrease the size of the additive manufacturing model, or use a return value from the Fit() function. The Adapt() function does this in the example described here by reducing or increasing the shape data by a scaling factor.
[0052] After the Enc() function of operation 210 completes, an Init() function is executed by initializer 8 in operation 220.
[0053] Figure 4 shows an implementation of the Init() function.
[0054] As explained above, the Init() function starts from the shape data possibly modified by the Enc() function and the array of target lengths and has the role of generating measurement points on the surface of the object, as well as initializing paths between each pair of measurement points.
[0055] Thus, in an operation 400, a MeasP() function randomly or pseudo-randomly arranges measurement points on the surface of the object. The MeasP() function can also be constrained by a surface code provided on one of the faces, so that the measurement points can be forced to belong to one part of the surface code (e.g., a lighter part) or to the other (e.g., a darker part). In addition, the MeasP() function creates the pairs of measurement points that will be connected by paths. The pairs of measurement points generated by the MeasP() function are unique in the example described here, and a measurement point is connected to only one other measurement point.
[0056] In a particular variant, link points can be created inside the body of the object in order to create triplets, quadruplets or more measurement points linked together. In this case, these multiple links can be used to either make the analysis of the object more difficult (since it is necessary to know which pair of points is relevant or if it is a combination of the two measurements), or to encode more information.
[0057] Next, in an operation 410, a function Pat() receives as arguments the array of target lengths and the set of measurement points generated by the function MeasP() of operation 400. The function Pat() operates by determining paths between the measurement points of each pair that correspond as closely as possible with the lengths in the array of target lengths.
[0058] For example, the Pat() function can apply a Djykstra-like algorithm to determine the shortest path between each pair of measurement points, and associate with each pair of points one of the lengths from the target length array in ascending order of the length of each path. Thus, each pair of measurement points is associated with a part of the information data message to be encoded.
[0059] Alternatively, the Pat() function can apply the algorithm described in the article by Lefebvre et al. "Information texture synthesis", 2021, hal-01706539, accessible at https: / / web.archive.Org / web / 20221019215343 / https: / / hal.inria.fir / hal-01706539v4. Optionally, after the execution of the Pat() function (or at the end of it) the initializer 8 can "freeze" part of the paths so that the calculator 10 does not modify them. For example, the visible part of the paths may have been constructed with a secondary purpose, such as following a logo, encoding information, etc. It goes without saying that this will require that the frozen part be shorter than the target length associated with the path in question.This is particularly advantageous when the "Information texture synthesis" algorithm is used to generate a visible part of the paths: the initializer 8 can then freeze the visible part according to the method of the article "Information texture synthesis" encoding visual information in the pattern formed by the paths, and generate the rest randomly.
[0060] Preferably but optionally, operation 410 may validate that none of the initialized paths is longer than the length with which it is associated. This avoids a risk of non-convergence of the following operation. When this is the case, operations 400 and 410 may be repeated until this condition is met.
[0061] Once the Init() function of operation 220 is completed, an Opt() function is executed by the calculator 10 in an operation 230.
[0062] As explained above, this function is used to optimize the paths resulting from operation 220 until all paths have a length corresponding to the length associated with them in the target length table at the end of operation 400.
[0063] The Opt() function implements a stochastic optimization algorithm. More precisely, it is a “Simulated Annealing” type algorithm as described in the article by Kirkpatrick et al. “Optimization by Simulated Annealing". Science 1983. Alternatively, other stochastic algorithms can be applied, for example, the genetic algorithms described in the article “Genetic Algorithms in Search, Optimization, and Machine Learning^, Goldberg, 1989. To do this, this algorithm pseudo-randomly modifies each path. For this, in each path, a subsequence of this path of randomly chosen size will undergo a modification operation. The type of operation will be chosen pseudo-randomly weighted according to the distance between the length of the path to which this subsequence belongs and the length to which it is associated in the table of target lengths.
[0064] As seen previously, each layer is represented on a grid where x and y are two orthogonal axes, and z is the direction of stacking of the layers during additive manufacturing. Thus, each path can be seen as a sequence of unit displacements along x, y or z. The operations carried out on each sub-sequence can therefore be:
[0065] - an extension operation, by adding a sequence (+1 ;-l) in x, y, or z around the subsequence, an operation,
[0066] - a reduction operation, by the deletion of two displacements of opposite sign in x, y or z in the subsequence, or
[0067] - a mixing operation, by the pseudo-random reorganization of a series of movements within the sub-sequence.
[0068] Each time one of these operations is performed, the Opt() operation is arranged to check that the induced change does not cause structural problems (impossibility of building the additive manufacturing model), or measurement problems (intersection or overlap of two paths following the operation). The verification also involves validating that the operation does not induce a displacement of type (+1 ;-l) or the opposite in x, y or z, since this would have no physical consequence in the object. If this is the case, then the operation is rejected. Otherwise, the optimization loop resumes with a new path, and a new sub-sequence to modify.
[0069] Optionally and preferably, the Opt() function may further implement one or more of the following rules:
[0070] - the z displacements must be monotonic, i.e. there are only +z or -z displacements. Starting from a top layer receiving all the measurement points, this ensures that all paths have the same number of layer transitions. This is particularly advantageous when the measurement of the path length is based on the measurement of the electrical resistance of the latter. Indeed, the transitions between two layers, which in fact constitute the z displacements, can have more fluctuating resistances than in x or y. Therefore, by ensuring the same number of z displacements, the measurement noise is substantially the same for all paths.
[0071] - checking that the operation reduces the proximity of the paths to each other, this proximity being defined as the Manhattan distance between each movement of the subsequence concerned by the current optimization operation and its nearest neighbor in another path. If the proximity of the modified subsequence is greater than that of the initial subsequence, then the operation can be canceled and another subsequence modification operation executed, until the proximity between neighbors increases.
[0072] Optionally, the Opt() function can further implement one or more of the following rules:
[0073] - movements in z respect a bitonic sequence (path which “goes up then down” or “goes down then up”)
[0074] - the movements in z have the same number of ascents / descents without imposing an order.
[0075] Although in the example described here the layer grid is square, it could be tetrahedral or any other shape. Furthermore, when a length in the target length array is zero, the Opt() function can be arranged to either create no path, or to create discontinuous pieces of path from one, the other, or both of the measurement points concerned.
[0076] Thus, device 2 makes it possible to produce a considerable variety of objects by additive manufacturing, the applications of which can be extremely varied:
[0077] - creation of a surface code, or not, - creation of an authenticity code by encoding an arbitrary value in the body of the object,
[0078] - realization of a public key / private key code, or shared secret, etc. And these realizations, while being extremely simplified by the use of a paradigm based on stochastic algorithms, call upon measurements of simple physical properties such as the measurement of resistance, temperature, or flow time of a fluid or gas, which makes the deployment of these objects extremely simple.
Claims
Claims
1. A device for generating a three-dimensional object encoding data by additive manufacturing, comprising a memory (4) arranged to receive information data to be encoded and object substrate data comprising shape data and encoding type data, an encoder (6) arranged to determine a set of target lengths and a number of layers as a function of the information data to be encoded and the encoding type data, an initializer (8) arranged to initialize a three-dimensional object model from the shape data with a stack of layers corresponding to said number of layers according to an additive manufacturing production direction thus defining an object surface, defining on the object surface a number of measurement points corresponding to the number of lengths in the set of target lengths,and generating paths between pairs of measurement points each corresponding to a length of the set of target lengths, each measurement point being associated with a single path, the length of each path being less than or equal to the target length with which it is associated, a path being defined by a continuous series of displacements of fixed dimension between the measurement points associated with this path, each displacement being expressed according to one of three directions associated with a three-dimensional reference frame and one of which corresponds to the direction of carrying out additive manufacturing, each displacement defining a space inside the layer stack making it possible to measure a physical property qualifying a measurement associated with the path of which this displacement is part,and a calculator (10) arranged to modify the displacements of the paths generated by the initializer (8) so that the latter each have a length corresponding to the target length with which they are associated, by applying a stochastic optimization whose operations are exclusively the addition, removal or modification of one or more displacements, which operations must further preserve the continuity of each path, the inclusion of each path within the stack of layers, and prevent the overlapping or contiguity of two paths between them.,
2. Device according to claim 1, wherein the calculator (10) is further arranged to apply a stochastic optimization such that the paths associated with a non-zero target length have an identical number of operations depending on the additive manufacturing direction.
3. Device according to claim 1 or 2, in which the calculator (10) is further arranged to apply a stochastic optimization such that the paths associated with a non-zero target length have a direction of travel of the stack of layers which is monotonous.
4. Device according to one of the preceding claims, in which the calculator (10) is arranged to apply a stochastic optimization whose operations increase the Manhattan distance between the space defined by the movements being modified and the space defined by the paths which are closest to it according to the Manhattan distance.
5. Device according to one of the preceding claims, wherein the encoder (6) is arranged to define a surface code on an upper portion of the object surface.
6. Device according to one of the preceding claims, in which the encoder (6) is arranged to define a set of random or pseudo-random target lengths, and to return a value corresponding to the measurement associated with the paths.
7. A method for generating a three-dimensional object encoding data by additive manufacturing, comprising the following operations a) receiving information data to be encoded and object substrate data comprising shape data and encoding type data, b) determining a set of target lengths and a number of layers as a function of the information data to be encoded and the encoding type data, c) initializing a three-dimensional object model from the shape data with a stack of layers corresponding to said number of layers according to an additive manufacturing production direction thus defining an object surface, defining on the object surface a number of measurement points corresponding to the number of lengths in the set of target lengths, and generating paths between pairs of measurement points each corresponding to a length of the set of target lengths, each measurement point being associated with a single path, the length of each path being less than or equal to the target length with which it is associated, a path being defined by a continuous series of displacements of fixed dimension between the measurement points associated with this path, each displacement being expressed according to one of three directions associated with a three-dimensional reference frame and one of which corresponds to the direction of additive manufacturing, each displacement defining a space inside the layer stack making it possible to measure a physical property qualifying a measurement associated with the path of which this displacement is part,and d) modifying the displacements of the paths generated by operation c) so that each of the latter has a length corresponding to the target length with which they are associated, by applying a stochastic optimization whose operations are exclusively the addition, removal or modification of one or more displacements, which operations must further preserve the continuity of each path, the inclusion of each path within the stack of layers, and prevent the overlapping or contiguity of two paths between them.,
8. The method of claim 7, wherein operation d) comprises applying stochastic optimization such that paths associated with a non-zero target length have an identical number of operations along the additive manufacturing direction.
9. A method according to claim 7 or 8, wherein operation d) comprises applying a stochastic optimization such that the paths associated with a non-zero target length have a direction of travel of the stack of layers which is monotonic.
10. Method according to one of claims 7 to 9, in which operation d) comprises applying a stochastic optimization whose operations increase the Manhattan distance between the space defined by the displacements which are the subject of a modification and the space defined by the paths closest to it according to the Manhattan distance.
11. A method according to one of claims 7 to 10, wherein operation b) comprises defining a surface code on an upper portion of the object surface.
12. Method according to one of claims 7 to 11, in which operation b) comprises defining a set of random or pseudo-random target lengths, and to return a value corresponding to the measurement associated with the paths.
13. A computer program comprising instructions for performing the method according to one of claims 7 to 12 when executed on a computer.
14. Data storage medium on which the computer program according to claim 13 is recorded.