A three-dimensional object generator that encodes data using additive manufacturing.

The three-dimensional object generator using additive manufacturing addresses the limitations of existing encoding methods by securely encoding information within the object through a memory, encoder, and stochastic optimization, enabling complex and easily readable data encoding.

JP2026512962APending Publication Date: 2026-04-22INST NAT DE RECHERCHE & INFORMATIC & ON OTOMATIC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
INST NAT DE RECHERCHE & INFORMATIC & ON OTOMATIC
Filing Date
2023-10-20
Publication Date
2026-04-22

AI Technical Summary

Technical Problem

Existing methods for encoding information on objects, such as surface codes and X-ray diffraction, are inadequate due to limitations in implementation complexity and scattering, respectively.

Method used

A three-dimensional object generator that encodes data using additive manufacturing, comprising a memory, encoder, initializer, and computer, which determines paths between measurement points and applies stochastic optimization to ensure secure and recoverable encoding within the object.

Benefits of technology

Enables secure and easily readable encoding of information within the object itself, utilizing additive manufacturing's precision and material potential for complex and easily readable information encoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026512962000001_ABST
    Figure 2026512962000001_ABST
Patent Text Reader

Abstract

This invention provides a device for generating three-dimensional objects that encode data using additive manufacturing. [Solution] The present invention relates to an apparatus for generating a three-dimensional object for which data is encoded by additive manufacturing, the apparatus comprising a memory (4), an encoder (6), an initializer (8), and a computer (10), wherein the memory (4) is configured to receive information data to be encoded, as well as object substrate data including shape data and encoding type data, the encoder (6) is configured to determine a series of target lengths and a number of layers based on the information data to be encoded and the encoding type data, the initializer (8) is configured to initialize a three-dimensional object model from the shape data having a stack of layers corresponding to the number of layers in the manufacturing direction of additive manufacturing, the initializer (8) defines an object surface, defines a number of measurement points on the object surface corresponding to the number of lengths included in a series of target lengths, generates paths between pairs of measurement points, each path being a predetermined number of lengths in the series of target lengths Each measurement point is associated with a unique path, the length of which is less than or equal to the target length to which the path is associated, the path is defined by a fixed-dimensional sequence of movement between the measurement points associated with the path, each movement is represented along one of three directions associated with a three-dimensional reference point, one of which is the manufacturing direction of additive manufacturing, each movement defines a space within a stack of layers that enables the measurement of a physical property characterizing the measurement associated with the path to which the movement belongs, the computer (10) is configured to modify the path movements generated by the initializer (8) by applying stochastic optimization so that each path has a length that matches the associated target length, the steps of the stochastic optimization are exclusively the addition, deletion, or modification of one or more movements, the steps further maintain the continuity of each path, the inclusion of each path in the stack of layers, and prevent overlap or adjacency of two paths.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of manufacturing objects for encoding information, and more particularly, to objects manufactured by additive manufacturing for encoding information.

Background Art

[0002] The field of objects for encoding information is currently relatively underdeveloped. Encoding of information is generally performed by attaching a code to the surface, such as a barcode or a QR code.

[0003] Certain developments have attempted to provide anti-counterfeiting objects, such as application FR3098758 regarding marking of authentication volumes using scanning by X-ray diffraction method (XRD).

Summary of the Invention

Problems to be Solved by the Invention

[0004] None of these systems are satisfactory. In fact, surface codes have limitations, while on the other hand, marking of authentication volumes is complex to implement, and scanning by X-ray diffractometer XRD does not provide wide scattering.

[0005] The present invention improves upon this situation. For this purpose, the present invention relates to an apparatus for generating a three-dimensional object for which data is encoded by additive manufacturing, the apparatus comprising a memory, an encoder, an initializer and a computer, the memory configured to receive information data to be encoded, as well as object substrate data including shape data and encoded type data, the encoder configured to determine a series of target lengths and a number of layers based on the information data to be encoded and the encoded type data, the initializer configured to initialize a three-dimensional object model from the shape data having a stack of layers corresponding to the number of layers in the manufacturing direction of additive manufacturing, the initializer defines an object surface, defines a number of measurement points on the object surface corresponding to the number of lengths included in a series of target lengths, generates paths between pairs of measurement points, each path being one of the series of target lengths be The length is consistent, each measurement point is associated with a unique path, and the length of each path is less than or equal to the target length to which the path is associated. each The pass is, the above A path is defined by a fixed-dimension continuous sequence of movements between the measurement points associated with the path, each movement being represented along one of three directions associated with a three-dimensional reference point, one of which coincides with the manufacturing direction of additive manufacturing, and each movement defines a space within a stack of layers that enables the measurement of physical properties characterizing the measurement associated with the path to which this movement belongs, and the computer is configured to modify the path movements generated by the initializer by applying stochastic optimization so that each path has a length that matches the associated target length, the steps of the stochastic optimization being exclusively the addition, deletion, or modification of one or more movements, and the steps further maintaining the continuity of each path, the inclusion of each path in the stack of layers, and preventing overlap or adjacency of two paths.

[0006] This device is particularly advantageous because it allows information to be encoded into the object itself in a secure and easily recoverable manner.

[0007] According to various embodiments, the present invention may have one or more of the following features: - The computer is further configured to apply stochastic optimization such that the paths associated with a non-zero target length have the same number of steps along the manufacturing direction of additive manufacturing. - The computer is further configured to apply stochastic optimization such that the paths relating to a non-zero target length have a monotonic direction of movement for the stack of layers. - The computer is configured to apply stochastic optimization, the stochastic optimization step of which increases the Manhattan distance between the space defined by the move to be modified and the space defined by the closest path according to the Manhattan distance. - The encoder described above is configured to define a surface code on the top of the object surface. - The encoder is configured to define a random or pseudo-random series of target lengths and return values ​​that match the measurements associated with the path.

[0008] The present invention also relates to a method for generating a three-dimensional object that encodes data by additive manufacturing, and includes the following steps a), b), c), and d): In step a), information data to be encoded, as well as object substrate data including shape data and encoded type data, are received. In step b), a series of target lengths and the number of layers are determined based on the information data to be encoded and the encoded type data. In step c), in the additive manufacturing direction, a three-dimensional object model is initialized from the shape data having a stack of layers corresponding to the above number of layers, In step c) above, an object surface is defined, a number of measurement points corresponding to the number of lengths included in a series of target lengths are defined on the object surface, a path is generated between pairs of measurement points, and each path is within the series of target lengths be The length is consistent, each measurement point is associated with a unique path, and the length of each path is less than or equal to the target length to which the path is associated. each The pass is , the above Defined by a fixed-dimension continuous sequence of movement between the measurement points associated with the above, each movement is represented along one of three directions associated with the three-dimensional reference point, one of which coincides with the manufacturing direction of additive manufacturing, and each movement defines a space within the stack of layers that enables the measurement of physical properties characterizing the measurement associated with the above path to which this movement belongs. In step d) above, the paths generated in step c) above are modified by applying stochastic optimization so that each path has a length that matches its associated target length, the stochastic optimization step being exclusively the addition, deletion, or modification of one or more paths, the step further maintaining the continuity of each path, the inclusion of each path in the stack of layers, and preventing overlap or adjacency of two paths.

[0009] According to various embodiments, this method may have one or more of the following features: - Step d) above includes applying stochastic optimization such that the paths relating to a non-zero target length have the same number of steps along the manufacturing direction of additive manufacturing. - Step d) above includes applying stochastic optimization such that paths related to a non-zero target length have a monotonic direction of movement for the stack of layers. - Step d) above includes applying stochastic optimization, the step of which increases the Manhattan distance between the space defined by the movement to be modified and the space defined by the nearest path according to the Manhattan distance. - Step b) above includes defining a surface code on the upper surface of the object. - Step b) above includes defining a random or pseudo-random set of target lengths and returning values ​​that match the measurements associated with the path.

[0010] The present invention also relates to a computer program comprising a computer program including instructions for performing a method according to the present invention, a data storage medium in which such a computer program is stored, and a processor coupled with memory, wherein the memory stores such a computer program.

[0011] Other features and advantages of the present invention will become more apparent from the following description, taken from the drawings, as illustrative and non-limiting examples. [Brief explanation of the drawing]

[0012] [Figure 1] This is a schematic diagram of the apparatus according to the present invention. [Figure 2] An example of the operating loop of the device shown in Figure 1 is presented. [Figure 3] An example of a function implemented by the encoder in Figure 1 is shown. [Figure 4] Figure 1 shows an example of a function implemented by the initializer. [Modes for carrying out the invention]

[0013] The drawings and the following description contain elements that have inherently specific properties. Therefore, they may be used not only to better understand the invention, but also, where appropriate, to contribute to its definition.

[0014] This specification is likely to contain elements that are protected by patent and / or copyright. The rights holder has no objection to anyone reproducing this patent or its description as it appears in official records in the same manner. The rights holder reserves all other rights.

[0015] Figure 1 is a schematic diagram of an apparatus 2 for generating a three-dimensional object encoded with data by additive manufacturing according to the present invention.

[0016] The apparatus 2 has the role of receiving, as input, data defining one or more messages to be encoded in the three-dimensional object and returning an additive manufacturing model of this object that enables the restoration of the one or more messages by measurement of a physical quantity. In principle, the one or more messages can contain any type of information, whether or not it has meaning.

[0017] The apparatus 2 includes a memory 4, an encoder 6, an initializer 8, and a computer 10.

[0018] The memory 4 can be any type of data storage capable of receiving digital data, such as a hard drive, a flash solid state drive, any form of flash memory, random access memory, magnetic disk, or locally or cloud-distributed storage.

[0019] In the example described here, the memory 4 receives all data related to the apparatus 2, namely the programs and software that instantiate the encoder 6, the initializer 8, and the computer 10, their parameters and hyperparameters, the weights of the neural network if applicable, the output and intermediate data of the neural network, the data received as input, intermediate values, data stored in buffer memory, and the output additive manufacturing model data. The data calculated by the apparatus can be stored in any type of memory similar to the memory 4 or in the memory 4. These data can be deleted or retained after the apparatus has performed its task.

[0020] In the example described here, memory 4 receives information data to be encoded and object substrate data as input data. The object substrate data includes shape data in addition to the encoded type data.

[0021] Object substrate data allows defining how the information data to be encoded is used to generate an additive manufacturing model. In fact, the applicant has found that the present invention makes it possible to generate a wide variety of objects that encode information in diverse ways.

[0022] Therefore, these objects can contain mutually independent surface codes and codes within the object body. In this case, the codes within the object body can be used as a steganographic tag that allows for unique authentication of the object regardless of the surface code. In other variations, these codes can follow each other, i.e., the surface code forms the most significant (or least significant) bit and the codes within the object body form the least significant (or most significant) bit. Also, the surface code and the codes within the object body can be complementary and form a public-private key pair. Finally, the surface code (or code within the object body) can function as a public key that, when combined with an unknown private key, enables the decryption of the message (payload) contained within the code (or surface code) within the object body.

[0023] Encoded data allows us to define the selected paradigm, determine the message encoded in the code within the object body, and ultimately, its additive manufacturing model.

[0024] In fact, the applicant has found that additive manufacturing, thanks to its precision and the potential of new materials, makes it possible to encode very complex information while simultaneously making it easily readable.

[0025] Thus, an object can contain multiple measurement points on one face and optionally connect to multiple measurement points on another face (e.g., the face opposite the additive manufacturing direction). As a general rule, measurement points can be distributed on the surface of the additive manufacturing model, and measurement points can be associated with pairs such that each pair of points represents a position in a code that has a power of 2 or a reference value. Furthermore, the reference value can be adjusted by measuring the length of the path between two points. Therefore, if two measurement points are connected by a conductive element, the resistance value of the path connecting the two measurement points, and thus the length of the path, can be determined and the value extracted by measuring at the terminals of the two measurement points. Alternatively, the path can be hollow, and the fluid flow time from one measurement point to the other can be measured. Also, the length of the path between two measurement points can be measured using the phenomenon of heat conduction. In this way, it is possible to encode a very long message in the object body and read this message by simple measurement of its physical properties.

[0026] Shape data can define the general shape of the object from which an additive manufacturing model is to be generated. Therefore, while the most common shapes such as cubes and parallelepipeds are possible, more generally, the invention allows any shape, such as the base of a hexahedron or a variable cross-section. Typically, shape data can be considered as a series of pasted layers that match the shape required for the object before the code is incorporated into the body. Shape data can indicate the parts of these layers that must be preserved and not associated with the path.

[0027] Thus, the informational data and object substrate data to be encoded constrain the additive manufacturing model. In fact, depending on the complexity of the message to be encoded, how this message is encoded, and the specific shape required of the object, it may be possible to directly create the additive manufacturing model, or it may be necessary to implement a path to encode the code within the object body by modifying the shape data, for example, by adding layers or modifying the scale of the object.

[0028] As will be described later, for this purpose, device 2 uses encoder 6 to pre-determine the dimensions of the additive manufacturing model of the object, and then uses initializer 8 to prepare the work for computer 10. Finally, computer 10 performs probabilistic optimization to define paths within the object body that allow compliance with the configuration rules of the object body, both from the standpoint of structural integrity and from the standpoint of subsequent measurements that enable the restoration of the code within the object body.

[0029] This probabilistic approach is particularly advantageous because it can free up design constraints and is especially well-suited to additive manufacturing. Indeed, the probabilistic approach can reliably find a satisfactory solution (i.e., a set of paths whose lengths meet optimization and manufacturing tolerances) if one exists, and additive manufacturing, with its dimensional degrees of freedom, can ensure that a solution exists regardless of the object's shape or the size of the message being encoded.

[0030] Therefore, the additive manufacturing model generated by device 2 includes layer data that defines each layer of the object. This layer data is placed on a grid that matches the assumed additive manufacturing, and at each point or cell of the grid, it defines whether the point is empty or filled, and the material that fills it. To obtain this final result, encoder 6 starts with the information data to be encoded and the object substrate data, and creates a set of initial layer data that matches a "filled" object that can receive the necessary paths to encode the code within the object body. It is clear that a filled object can contain hollowed-out zones or have zones with a lower material density than the rest of the object, as long as it is possible to manufacture it by additive manufacturing. Encoder 6 also has the ability to generate a table of target lengths that define the length each path between two measurement points should take to encode the information data to be encoded. As described above, these lengths are determined based on measurements of assumed physical properties, so that measurements of these properties can be directly linked to these lengths and define values ​​associated with pairs of measurement points.

[0031] The initial layer data is then sent to initializer 8, which, on the one hand, defines the locations of the measurement points on the object's surface (e.g., on the opposite face), and on the other hand, initializes the paths between pairs of measurement points based on a table of target lengths.

[0032] Next, the computer 10 optimizes the path generated by the initializer 8 to obtain a path that conforms to the shape constraints of the object defined by the shape data, whose length matches the target length table, and which also conforms to the structural manufacturing constraints and characteristic measurement constraints.

[0033] All of the above data may be stored in memory 4.

[0034] The encoder 6, initializer 8, and computer 10 access memory 4 directly or indirectly. These can be implemented in the form of appropriate computer programs running on one or more processors. The processor should be understood as any processor suited to the computations described below. Such a processor can be implemented in any known way in any other form that can provide the computing power required for the embodiments described herein, such as a microprocessor for a personal computer, laptop, tablet, or smartphone; a dedicated FPGA or SoC type chip; computing resources on a grid or in the cloud; a cluster of graphics processors (GPUs); a microcontroller; or any other form that can provide the computing power required for the embodiments described herein. One or more of these elements can also be implemented in the form of application-specific electronic circuits such as ASICs. Combinations of processors and electronic circuits are also conceivable. Dedicated machine learning processors are also conceivable.

[0035] Figure 2 shows an example of the operation loop of device 2.

[0036] In process 200, apparatus 2 executes the function Inp(). This function Inp() enables the reception of input data for the purpose of generating an additive manufacturing model. As described above, the input data includes informational data and object substrate data to be encoded. The input data can be obtained by any means, such as by accessing memory 4 or any other storage using a human-machine interface.

[0037] Next, in step 210, the encoder 6 executes the function Enc(). As described herein, the function Enc() has the role of converting the information data to be encoded into a table of target length based on the encoded data. Furthermore, the function Enc() has the further role of instantiating a filled layer that defines an object that receives the code within its body.

[0038] Figure 3 shows the implementation of the function Enc().

[0039] In step 300, the encoder 6 accesses the information data to be encoded and the encoding type data and executes the function Tab() which returns a table containing the target length of the path. This encoding type data plays a special role. In fact, based on the physical characteristics measured to determine the path length and the selected encoding type (an N-bit table, words containing N word groups of K bits each, and random values), the function Tab() creates another table of target lengths. As will be discussed later, the measurement of the path length can be directly correlated with the physical length of the path, but it can also be measured based on other characteristics, such as the number of bends in the path, and this characteristic measurement provides the ability to count the number of bends.

[0040] Next, in step 310, the function Fit() is executed. The function Fit() takes shape data as one argument and a table of target lengths as the other. The function Fit() verifies whether it is possible to generate paths within the object defined by the shape data whose lengths are included in the target length table. This verification can be performed by machine learning (e.g., based on a boosting tree) or by analytical criteria (e.g., the object does not exceed the shortest path length when measurement points are located on the top and bottom surfaces of the object, respectively).

[0041] If the function Fit() returns a positive value, the function Enc() is stopped at step 399. Otherwise, the function Adapt() is executed at step 320, and step 310 is repeated. The function Adapt() can independently determine whether the size of the additive manufacturing model needs to be increased or decreased, or it can use the return value of the function Fit(). In the example described herein, the function Adapt() proceeds by shrinking or enlarging the geometry data by a scale factor.

[0042] Once the Enc() function in step 210 is completed, the Init() function is executed by initializer 8 in step 220.

[0043] Figure 4 shows the implementation of the function Init().

[0044] As described herein, the function Init() starts with a table of shape data and target lengths, which have been optionally modified by the function Enc(), and is responsible for generating measurement points on the surface of the object and initializing the paths between each pair of measurement points.

[0045] Therefore, in step 400, the function MeasP() randomly or pseudo-randomly places measurement points on the surface of the object. The function MeasP() can also be constrained by a surface code provided to one side of the surface so that the measurement points can be forced to belong to a part of the surface code (e.g., a brighter area) or the other (e.g., a darker area). Furthermore, the function MeasP() creates pairs of measurement points connected by paths. The pairs of measurement points generated by the function MeasP() are unique in the examples described herein, and each measurement point is connected only to other unique measurement points.

[0046] In certain modifications, connection points can be created within the object body to allow for the creation of triplets, quadruplets, or more connected measurement points. In this case, these multiple connections may be used to make the analysis of the object more difficult (because it is necessary to know which sets of points are related or which consist of combinations of two measurements) or to encode more information.

[0047] Next, in step 410, the function Pat() receives a target length table and a set of measurement points generated by the function MeasP() in step 400 as arguments. The function Pat() proceeds by determining as many paths as possible between each pair of measurement points that match the length in the target length table.

[0048] For example, the function Pat() can apply a Djykstra-type algorithm to determine the shortest path between each pair of measurement points, and associate each pair of measurement points with one of the lengths in the target length table, in order from shortest to longest path length. Thus, each pair of measurement points is associated with a portion of the message of the information data to be encoded.

[0049] Alternatively, the function Pat() can also apply the algorithm described in the paper "Information texture synthesis," 2021, hal-01706539 by Lefebvre et al., which can be accessed at the address https: / / web.archive.org / web / 20221019215343 / https: / / hal.inria.fr / hal-01706539v4.

[0050] Optionally, after the execution of the function Pat() (or at its completion), initializer 8 may "freeze" parts of the path so that computer 10 does not modify them. For example, the visible portion of a path may be constructed for secondary purposes, such as following a logo or encoding information. In this case, it is obvious that the frozen portion must be shorter than the target length associated with the path in question. This is particularly advantageous when an "information texture synthesis" algorithm is used to generate the visible portion of the path. Initializer 8 may freeze the visible portion according to the method of the "information texture synthesis" paper, encoding items of visual information within the pattern formed by the path, and generate the rest randomly.

[0051] Preferably, as an option, step 410 may verify that none of the initialized paths are longer than their associated length. This prevents the risk that the next step will not converge. In this case, steps 400 and 410 can be repeated until this condition is met.

[0052] Once the function Init() in process 220 is completed, the function Opt() is executed by the computer 10 in process 230.

[0053] As explained above, this function is responsible for optimizing the paths from step 220 until all paths have a length that matches the length associated in the target length table that follows step 400.

[0054] The function Opt() implements a probabilistic optimization algorithm. More specifically, it consists of a "Simulated Annealing" type algorithm, such as the one described in Kirkpatrick et al.'s paper "Optimization by Simulated Annealing," Science 1983. Alternatively, other probabilistic algorithms can be applied. For example, the genetic algorithm described in Goldberg's paper "Genetic Algorithms in Search, Optimization, and Machine Learning," 1989, can also be applied.

[0055] To this end, the algorithm modifies each path in a pseudo-random manner. For this purpose, within each path, a subsequence of this path of a randomly selected size undergoes a modification process. The type of modification is selected in a weighted pseudo-random manner based on the distance between the length of the path to which the subsequence belongs and the length associated with it in the target length table.

[0056] As described above, each layer is represented on a grid with x and y as two orthogonal axes and z as the stacking direction of the layer during additive manufacturing. Therefore, each pass can be viewed as a sequence of unit movements along x, y, or z. Thus, this process performed on each subsequence may be as follows: - An expansion process by adding a sequence (+1;-1) to x, y, or z around a subsequence in a single process. - A reduction process by removing two movements of the x, y, or z inverse signs from a subsequence, or - A mixing process that simulates random arrangement of movement sequences within subsequences.

[0057] Each time any of these processes is executed, the Opt() process is configured to verify that the induced change does not cause a structural problem (making it impossible to construct an additive manufacturing model) or a measurement problem (such as the intersection or overlap of two paths following the process). Since this does not involve physical causality in the object, this verification also means ensuring that the process does not induce a movement of the type (+1;-1) or vice versa in x, y, and z. If it does, the process is rejected. Otherwise, the optimization loop restarts with a new path and a corrected new subsequence.

[0058] Optionally, and preferably, the function Opt() may further implement one or more of the following rules: - The movement of z must be monotonic; that is, there can only be +z or -z movement. From the upper layer receiving all measurement points, it becomes possible to ensure that all paths have the same number of layer transitions. This is particularly advantageous when the measurement of path length is based on the measurement of its electrical resistance. In fact, since the transition between two layers forms a movement of z, it can have a resistance value that fluctuates more than x or y movement. As a result, by ensuring the same number of z movements, the measurement noise becomes virtually the same for all paths.

[0059] - Verification that allows a process to reduce the proximity of paths to each other. This proximity can be defined as the Manhattan distance between each movement of a subsequence involved in the current optimization process and its nearest neighbor in another path. If the proximity of a modified subsequence is greater than the proximity of the first subsequence, the process can be canceled and a modification process for another subsequence can be performed until the proximity between neighbors increases.

[0060] Optionally, the function Opt() can implement one or more of the following rules: - Move z to observe a bitnic sequence (a "rising then falling" or "falling then rising" path). - A movement of z where there are the same number of up and down movements, without a fixed order.

[0061] In the examples described herein, the layer grid has square elements, but it may have tetrahedral elements or other shapes. Furthermore, if the length of the target length table is zero, the function Opt() can be configured not to generate a path, or to generate discontinuous pieces of the path from one, one, or both of the measurement points involved.

[0062] Thus, this device 2 makes it possible to manufacture a wide variety of objects through additive manufacturing, and its applications are extremely diverse, as follows: - Manufacturing of surface coatings, otherwise, - Generating authentication codes by encoding random values ​​into the object itself. - Manufacturing public / private key codes, or shared secrets.

[0063] These embodiments are greatly simplified by using a paradigm based on probabilistic algorithms, and the development of these objects is extremely simple because they utilize the measurement of simple physical properties such as the resistance, temperature, or flow time of a fluid or gas.

Claims

1. A device for generating three-dimensional objects that encode data by additive manufacturing, The device comprises a memory (4), an encoder (6), an initializer (8), and a computer (10). The memory (4) is configured to receive information data to be encoded, as well as object substrate data including shape data and encoded type data. The encoder (6) is configured to determine a series of target lengths and number of layers based on the information data to be encoded and the encoding type data. The initializer (8) is configured to initialize a three-dimensional object model from the shape data having a stack of layers corresponding to the number of layers in the manufacturing direction of additive manufacturing, The initializer (8) defines an object surface, defines a number of measurement points on the object surface corresponding to the number of lengths included in a series of target lengths, and generates paths between pairs of measurement points. Each path corresponds to a predetermined length within the series of target lengths, each measurement point is associated with a specific path, and the length of each path is less than or equal to the target length to which the path is associated. The path is defined by a fixed-dimension continuous sequence of movement between the measurement points associated with the path, each movement being represented along one of three directions associated with a three-dimensional reference point, one of which coincides with the manufacturing direction of additive manufacturing, and each movement defines a space within a stack of layers that enables the measurement of physical properties characterizing the measurement associated with the path to which the movement belongs. The computer (10) is configured to modify the path movements generated by the initializer (8) by applying probabilistic optimization so that each path has a length that matches the associated target length. The aforementioned probabilistic optimization step is exclusively the addition, deletion, or modification of one or more moves, and the step further maintains the continuity of each path, the inclusion of each path in the stack of layers, and prevents overlap or adjacency of two paths. Device.

2. The apparatus according to claim 1, wherein the computer (10) is further configured to apply stochastic optimization such that the paths relating to a non-zero target length have the same number of steps along the manufacturing direction of additive manufacturing.

3. The apparatus according to claim 1 or 2, wherein the computer (10) is further configured to apply a stochastic optimization such that the path relating to a non-zero target length has a monotonic direction of movement of the stack of layers.

4. The apparatus according to any one of the preceding claims, wherein the computer (10) is configured to apply a probabilistic optimization, the probabilistic optimization step of which increases the Manhattan distance between the space defined by the move to be modified and the space defined by the closest path according to the Manhattan distance.

5. The apparatus according to any one of the preceding claims, wherein the encoder (6) is configured to define a surface code on the upper surface of the object.

6. The apparatus according to any one of the preceding claims, wherein the encoder (6) is configured to define a random or pseudo-random series of target lengths and return a value that matches a measurement associated with the path.

7. A method for generating a three-dimensional object that encodes data by additive manufacturing, comprising the following steps a), b), c) and d): In step a), information data to be encoded, as well as object substrate data including shape data and encoded type data, are received. In step b), a series of target lengths and the number of layers are determined based on the information data to be encoded and the encoded type data. In step c), in the additive manufacturing direction, a three-dimensional object model is initialized from the shape data having a stack of layers corresponding to the number of layers, In step c) above, an object surface is defined, a number of measurement points corresponding to the number of lengths included in a series of target lengths are defined on the object surface, and a path is generated between pairs of measurement points. Each path corresponds to a predetermined length within the series of target lengths, each measurement point is associated with a specific path, and the length of each path is less than or equal to the target length to which the path is associated. The path is defined by a fixed-dimension continuous sequence of movement between the measurement points associated with the path, each movement being represented along one of three directions associated with a three-dimensional reference point, one of which coincides with the manufacturing direction of additive manufacturing, and each movement defines a space within a stack of layers that enables the measurement of physical properties characterizing the measurement associated with the path to which the movement belongs. In step d), the movement of the paths generated in step c) is modified by applying stochastic optimization so that each path has a length that matches the associated target length. The aforementioned probabilistic optimization step is exclusively the addition, deletion, or modification of one or more moves, and the step further maintains the continuity of each path, the inclusion of each path in the stack of layers, and prevents overlap or adjacency of two paths. method.

8. The method according to claim 7, wherein step d) includes applying stochastic optimization such that the paths relating to a non-zero target length have the same number of steps along the manufacturing direction of additive manufacturing.

9. The method according to claim 7 or 8, wherein step d) comprises applying a stochastic optimization such that the path relating to a non-zero target length has a monotonic direction of movement of the stack of layers.

10. The method according to any one of claims 7 to 9, wherein step d) comprises applying a stochastic optimization, the step of which the stochastic optimization increases the Manhattan distance between the space defined by the move to be modified and the space defined by the nearest path according to the Manhattan distance.

11. The method according to any one of claims 7 to 10, wherein step b) includes defining a surface code on the upper part of the object surface.

12. The method according to any one of claims 7 to 11, wherein step b) comprises defining a random or pseudo-random series of target lengths and returning a value that matches a measurement associated with the path.

13. A computer program that, when executed on a computer, includes instructions for performing the method according to any one of claims 7 to 12.

14. A data storage medium on which the computer program described in claim 13 is stored.