Methods and systems for designing and manufacturing wearable items

JP2026519424APending Publication Date: 2026-06-16VIVOBAREFOOT LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
VIVOBAREFOOT LTD
Filing Date
2024-06-10
Publication Date
2026-06-16

Smart Images

  • Figure 2026519424000001_ABST
    Figure 2026519424000001_ABST
Patent Text Reader

Abstract

A method for creating a three-dimensional (3D) digital model of an appendage representing a part of the human body, used in the manufacture of custom-fitted wearable items, is described. The method includes receiving a 3D mesh object representing the appendage, the mesh object including a plurality of vertices and edges defining the shape and size of the appendage; orienting the mesh object in a plurality of degrees of freedom so as to align the mesh object in a predetermined orientation; identifying from the mesh object the values ​​of each of a predetermined set of landscape points specific to the type of appendage, each of which is configured to represent a particular geometric location of the appendage and defined relative to a predetermined reference point in the mesh object when oriented in a predetermined orientation; creating a set of parameters representing the mesh object, each parameter defined as a predetermined measurement between at least two different landscape points; and storing the set of parameters as a 3D digital model of the appendage.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method of designing and manufacturing custom-fit footwear and other wearing articles designed to fit a part of the human body. More specifically, without limitation, the present invention relates to an improved method of creating custom patterns for wearing articles such as footwear, headgear, and gloves, as well as a more efficient design and manufacturing process for creating such made-to-order wearing articles from the custom patterns.

Background Art

[0002] It should be understood that while the present disclosure relates to the design and manufacture of all types of wearing articles, the present description focuses on footwear, but the present disclosure is not so limited.

[0003] In the field of footwear manufacturing, a model of the human foot known as a "form" is used to create footwear articles. Traditionally, the form was a physical model on which the shoe was constructed, but currently, technology has made it possible to create digital models of the form, and footwear is constructed around the form by a designer using computer-aided design (CAD) software. The form defines the shape and size of the foot and is the mold on which the shoe is constructed. Thus, the form determines the shape, size, and fit of the footwear to be created. Forms are standardized across different sizes, and different-sized forms are available for designing and manufacturing footwear to fit different-sized feet. However, due to size standardization, when the number of different sizes needs to be limited, the forms are always approximate sizes and do not fit most individuals' feet perfectly.

[0004] In recent years, custom-fit footwear has become increasingly popular because this type of footwear offers various advantages such as increased comfort, support, and performance. Creating custom-fit shoes requires a custom mold that precisely models the user's foot. Recent technology has made it possible to create such bespoke digital molds from foot scans. For example, individual dimensions corresponding to the measurements required for the mold are obtained from the scan, and these measurements are used to construct the custom digital mold. The footwear is specified by the designer using CAD software to create a digital model of the custom shoe (as a CAD file) that fits the mold (manual process). The CAD file is then provided to the manufacturer, who uses the CAD file to design and manufacture the appropriate manufacturing tools (molds and stamps, etc.), and the shoes are produced based on the CAD file using the custom manufacturing tools. However, there are currently limitations related to the accuracy, efficiency, and consistency of the various processes involved in the methods used to create digital molds and custom-fit shoes.

[0005] Creating custom-fit shoes first involves creating a custom mold from a scan of the user's foot. An existing method used to create a custom mold is shown in the flowchart of Figure 1. The conventional method begins by capturing a foot scan and then fitting it into a bounding box (B-box) used to define the length and width variables of the scanned foot. Using the length and width measurements defined by the B-box, the foot representation is divided into percentages based on the Y-axis length to obtain a series of points that define the foot geometry. However, the points are often inaccurate and are therefore subsequently manually adjusted to better fit the foot scan. Once the points are manually adjusted (using CAD) and the foot geometry is appropriately defined, the points are used to obtain the measurements required for the physical mold. These measurements are used to construct the geometry and create the custom mold. Figure 2 shows three examples of digital molds created using the method described above. The same mold is shown modeled using different meshing techniques, namely Nurbs surface, Tri / Quad mesh, and SubD mesh, but any type of mesh can be used.

[0006] There are several drawbacks associated with this method of creating custom molds. First, mold measurements are significantly affected by any rotation that may exist in the input foot scan. Scan rotation greatly affects the size and shape of the B-box, and therefore the foot length and width measurements. Figures 3A and 3B illustrate a comparative example of the effect of a scan rotated 2 degrees in the XY plane. As shown, Figure 3A shows the first digital mold 20 and first scan 22 of a foot, and Figure 3B shows the same digital mold 20 and scan 22 of the same foot rotated 2 degrees in the XY plane. As can be seen from these figures, a 2-degree scan rotation significantly alters the length and width of the B-box, leading to the derivation of inaccurate foot length and width dimensions. Since these dimensions are used to locate a series of points that characterize the geometry of the foot, and therefore ultimately define the mold measurements, inaccurate foot length and width lead to an inaccurate mold. The effect is even greater if the scan is rotated in all six degrees of freedom, for example, if the scan is tilted due to the user's heel lifting during the scan.

[0007] Manual orientation is also required to fit the foot scan to the B-box, and therefore this is another cause of inconsistency in foot length and width (defined by the B-box). When these dimensions are inconsistent, the percentage length and thus the series of points derived from the B-box often do not perfectly match the foot. This is shown in Figure 4A, where the initial approximate points derived from the B-box do not perfectly match the foot geometry. As mentioned above, each point must be manually adjusted, which is time-consuming and prone to human error. Therefore, the resulting mold measurements (e.g., the dashed lines in Figure 4A) are often approximate and not accurate. This is shown in Figure 4B, which shows two foot scans 30, 32 and their associated dimensions and corresponding molds 34, 36, where the dimensions were obtained by fitting the scan to the bounding box and manually adjusting the points. Inaccurate mold measurements are also shown in Figure 4C, where, in each case, the upper number represents the foot dimensions from the scan, and the lower number represents the mold dimensions generated using the prior art method discussed earlier. As shown in Figures 4B and 4C, the mold dimensions differ from the actual foot dimensions, and therefore the mold is inaccurate.

[0008] Another drawback of this conventional method is that only a single view of the scan is used when manually adjusting the points, and therefore not all directions are considered. This also leads to inaccurate calculations of the scanned foot geometry.

[0009] Finally, this method of creating a mold is mold-oriented, and the specific measurements obtained from a foot scan are typically based on certain parameter measurements (the number of which is limited) required to create the mold, and do not take into account the dimensions of the entire foot.

[0010] For these reasons, the current methods of creating types are time-consuming, laborious, error-prone, and lead to inconsistent types that do not accurately model the user's feet.

[0011] Once a custom digital mold is created, a modeling process is used to build structure and texture around the custom mold, thus creating custom footwear. A common modeling process used in existing methods is UV mapping, a technique where the surface of a three-dimensional (3D) model is unwrapped to create a two-dimensional (2D) image (in U and V Cartesian coordinates). Once the texture is applied to the 2D image and rendered, the features can be projected back onto the 3D model (i.e., the digital mold). An example of this process is shown in Figures 5A and 5B. Figure 5A shows a 3D polygon model, and Figure 5B shows the same model divided into component parts and unwrapped in 2D. When this process is used to create footwear, the footwear is created around the mold, which will then perfectly fit the modeled foot.

[0012] This method 40 of UV mapping is outlined in more detail in the flowchart of Figure 6. First, a UV map is created on a 3D mesh object such as a digital mold, and the coordinates of each vertex on the mesh are generated. For complex objects such as feet, the object is divided into different sections, and in each section, a seam is selected where the 3D UV map should be cut. The section is cut at the selected seam and unrolled to create a 2D UV map of that section, in which each vertex has orthogonal U, V, and W coordinates. Dividing the object into multiple smaller sections reduces the amount of distortion when that part of the object is unfolded into a 2D representation. However, such a process still creates distortion at the seams, and therefore these are manually adjusted to obtain uniform UV vectors on both sides of the seam. The object can then be attached to the 2D UV map, and whatever is created, it is projected back onto the 3D UV map through the corresponding coordinate system to create the object in 3D space. This is done for each section of the object, and the result is a custom shoe that fits the custom mold.

[0013] There are significant drawbacks associated with UV mapping techniques. First, the process becomes more complex by sectioning the foot scan into separate parts for unwrapping. Furthermore, the requirement to ensure consistency at the seams and edges of each part is a manual process that requires human interaction with the software, making the process extremely time-consuming. This adjustment must be performed on each separate part of the foot scan; otherwise, when multiple components are combined, the seams and edges will not match after deformation.

[0014] First, there are drawbacks associated with designing shoes in a 2D design environment, and then projecting this back into 3D space. Using this technique requires a new custom 2D map for each custom type, and therefore the footwear must be redesigned from scratch each time. Consequently, using this technique results in a highly inefficient design process that requires time-consuming human involvement.

[0015] Next, custom shoes are produced from a 3D CAD model of the shoe. Traditionally, a 3D file (3D model or 3D digital mold) is provided to the manufacturer, who first converts the 3D file into appropriate tools such as molds and stamps specifically made for manufacturing custom shoes. A conventional method 50 of creating footwear from such a 3D model is shown in the flowchart of Figure 7. In step 52, the upper is attached to the mold using tools designed from the 3D CAD file of the shoe. Next, in step 54, the sole components are dry-assembled to the attached mold. Next, in step 55, the areas where the sole components will be attached are marked, and then, in step 56, adhesive attachments are manually painted. In step 57, the shoe adhesive is left to dry-decompose, and then, in step 58, the sole and upper adhesives are reactivated (usually using heat) and pressed together. Finally, in step 59, the finished shoe is placed on a chiller to allow all adhesives to fully cure.

[0016] The methods described above have several inefficiencies. First, the production of tool elements such as molds and stamps is a lengthy process that requires several iterations (following feedback from designers) before arriving at tools suitable for shoemaking. Tool elements must also be customized for each size and shoe design, which is extremely inefficient and creates a bottleneck in the mass production of custom shoes. There is also a discrepancy between the shoe design and the creation of the tools, which further prolongs the manufacturing process.

[0017] The creation of footwear also requires the generation of toolpaths that a robot (robot arm) will traverse as it assembles each shoe. These toolpaths must be defined in a 3D digital model of the shoe and are used to guide the robot arm during shoe manufacturing. For example, a toolpath guides the robot arm to deposit adhesive at specific locations to secure the sole to the upper. In existing methods, as shown in Figure 8, toolpath generation is a post-design step. That is, a foot scan is input into the software, a 3D model of the custom footwear is created using CAD, and then the toolpaths are added to the CAD software manually or by code.

[0018] This method has several drawbacks. First, it is a manual process, requiring a human to interact with a software program to define the toolpath. Therefore, this process can be prone to human error. Also, because this industrial process is not standardized, it can be difficult to find technicians with the programming knowledge needed to code the instructions that determine the specific movements of the robot (robot arm) in use, potentially leading to a bottleneck in the shoe manufacturing process. For example, such technicians would not only need to program the correct deposition of adhesive in the right locations on the upper for each custom shoe design, but also maintain toolpath uniformity to minimize toolpath intersections and potential collisions with external objects in the build volume of the robot arm when multiple layers are combined in shoe manufacturing. Adding toolpaths in the post-processing stage is also very time-consuming and inefficient when creating custom objects such as custom footwear, as it requires regenerating toolpaths for each custom object. This exacerbates the bottleneck and slows down the process of mass-producing shoes. [Overview of the project] [Problems that the invention aims to solve]

[0019] Therefore, an object of the present invention is to address at least some of the limitations outlined above relating to at least one of the different fields described, namely, custom mold making, UV mapping, custom shoe design and manufacture, and toolpath generation. In particular, it is desirable to create a more accurate, efficient, and consistent process for producing custom-fitted wearable articles such as footwear. [Means for solving the problem]

[0020] According to one aspect of the present invention, a method is provided for creating a three-dimensional (3D) digital model of an appendage representing a part of the human body, used in the manufacture of a custom-fitted wearable article, the method comprising: receiving a 3D mesh object representing the appendage, the mesh object including a plurality of vertices and edges defining the shape and size of the appendage; orienting the mesh object in a plurality of degrees of freedom so as to align the mesh object in a predetermined orientation; identifying from the mesh object the values ​​of each of a predetermined set of landscape points specific to the type of appendage, each of the predetermined landscape points configured to represent a specific geometric location of the appendage and defined with respect to a predetermined reference point in the mesh object when oriented in a predetermined orientation; creating a set of parameters representing the mesh object, each parameter defined as a predetermined measurement between at least two different landscape points; and storing the set of parameters as a 3D digital model of the appendage.

[0021] The orientation step may include aligning the mesh object with the principal axis of the appendage, where the principal axis includes the long axis of the appendage.

[0022] The orientation step may include pitching / rolling the mesh object to the XY plane. The pitching / rolling step may include identifying the principal axes of the mesh object by creating bounding bubble spheres around the mesh object, reducing the size of the bounding bubble spheres by a predetermined percentage, identifying all points of the mesh object outside the reduced-size bounding bubble spheres, and using the identified points to identify the principal axes of the appendages between the identified points.

[0023] In some embodiments, the pitch / roll alignment step includes identifying a specific feature of the appendage by creating a plane along the principal axis of the appendage, creating a two-dimensional (2D) profile of the appendage using the intersection of the plane and the mesh object, and identifying a specific feature of the appendage by measuring the distance from the vertices of the bounding box around the 2D profile to the nearest point in the 2D profile, wherein the identifying step includes identifying another point of the appendage, using an anchor point to specify the appendage area to be aligned with the XY plane, and aligning the mesh object with the XY plane containing the anchor point.

[0024] The orientation step may include yaw aligning the mesh object to the Y axis in the XY plane. In some embodiments, the yaw aligning step includes defining an anchor point as the origin of rotation; converting each of the mesh object points and the centroid of the appendage from a 3D location in the mesh object to a 2D location in the XY plane; performing geometric calculations using the anchor point and the principal axis to define the center of the appendage; and aligning the mesh object to the Y axis by aligning the vectors from the anchor point and the center of the appendage to the Y axis.

[0025] The orientation step may include determining the orientation of the mesh object using several different bounding algorithms, and then selecting the algorithm that best provides the determined orientation. These multiple bounding algorithms may include Euclidean, Wertzl, bouncing bubble, and minimum bounding box algorithms.

[0026] The receiving step further includes receiving a user identifier (ID) along with the mesh object, and the storing step includes storing the user ID along with the 3D digital model of the appendage.

[0027] In some embodiments, the storing step includes creating an anonymized data file including a set of landscape points, their positions in 3D space, and a set of parameters, and storing the anonymized data file in a data store.

[0028] In some embodiments, the method further includes using a plurality of anonymized data files, and creating an average 3D digital model by calculating the average of the data of the anonymized data files.

[0029] Preferably, the using step includes filtering the anonymized data files, thereby selecting a subset having properties of a predetermined feature and determining a specific digital model according to those properties.

[0030] The method may further include obtaining a 3D digital model and an average 3D digital model, calculating the difference between the landscape points of the average 3D digital model and the landscape points of the 3D digital model, calculating a vector using the difference, and morphing the average model into a new 3D digital model adjusted using the vector.

[0031] In some embodiments, the method further includes scanning an accessory organ and creating a 3D mesh object representing the accessory organ.

[0032] Preferably, the 3D mesh object represents a human foot or hand.

[0033] According to another aspect of the present invention, a system is provided for creating a three-dimensional (3D) digital model of an appendage representing a part of the human body, used in the manufacture of a custom-fitted wearable article, the system comprising: an input processor configured to receive a three-dimensional mesh object representing an appendage, the mesh object comprising a plurality of vertices and edges defining the shape and size of the appendage; an object orientation engine configured to orient the mesh object with a plurality of degrees of freedom so as to align the mesh object in a predetermined orientation; an object landscaper configured to identify from the mesh object the value of each of a predetermined set of landscape points specific to the type of appendage, each of the predetermined landscape points configured to represent a specific geometric location of the appendage and defined relative to a predetermined reference point in the mesh object when oriented in the predetermined orientation; a data extractor configured to create a set of parameters representing the mesh object, each parameter defined as a predetermined measurement between at least two different landscape points; and a data store configured to store the set of parameters as a 3D digital model of the appendage.

[0034] In another embodiment, a method is provided for creating a three-dimensional (3D) wearable article model used in the manufacture of custom-fit wearable articles, the method comprising: receiving a 3D digital mold of an appendage representing a part of the human body, wherein the 3D digital mold includes a plurality of vertices defining the shape and size of the appendage, and has a center point and a principal axis; providing a mesh cylinder within the 3D digital mold that includes a plurality of control points, thereby aligning the center of the mesh cylinder with the center point and orienting the mesh cylinder along the principal axis; and generating opposing fixed anchor seams at each end of the 3D digital mold. The method includes generating each fixed anchor seam having a fixed location, extending both ends of the mesh cylinder to each of the fixed anchor seams, creating a soft anchor within a 3D digital mold, the soft anchor having limited mobility and defining a set of vertices that can operate on a circumferential point located between the ends of the mesh cylinder, repeatedly warping the cylinder mesh to minimize tension between opposing anchor seams and soft anchors until the cylinder mesh and 3D digital mold converge, and outputting the warped cylinder mesh as a 3D wearable item model.

[0035] The step of generating fixed anchor seams may include identifying the normals of all mesh faces in the 3D digital model, selecting points in the 3D digital model based on the angle of the normals with respect to the Z axis, identifying the edges of the unselected mesh faces in the 3D digital model, and assigning the identified edges to opposing fixed anchor seams.

[0036] The step of extending the end of the mesh cylinder may include dividing each fixed anchor seam by the number of end control points located around the circumference of the end of the mesh cylinder closest to the fixed anchor seam, calculating a vector between the end control points at each end of the mesh cylinder toward the nearest fixed anchor seam, and using the vector to move the end control points toward the nearest fixed anchor seam.

[0037] Each of the multiple control points may have a weight, which determines the allowable displacement of the associated control point, and the step of iteratively warping the cylinder mesh includes moving each of the multiple control points according to its weight.

[0038] In some embodiments, the fixed anchor seam has a high weight that hinders movement, the soft anchor has a medium weight that allows limited movement, and the remaining control points of the mesh cylinder have a low weight that allows maximum movement.

[0039] The method may further include generating parameters that control the manner in which the cylinder mesh warps repeatedly. In some embodiments, the step of generating parameters includes generating pull parameters, which determine the vector of each control point of the mesh cylinder toward the nearest of a plurality of vertices of a 3D digital type. Alternatively or in addition, the step of generating parameters may include generating vector tension parameters, which determine the vector tension between the control points of the mesh cylinder necessary to pull all the control points together to ensure that the cylinder mesh maintains its structure. Alternatively or in addition, the step of generating parameters may include generating spherical parameters, which include the average vector of a particular control point determined from the vector values ​​of the nearest neighbor control points toward that particular control point.

[0040] In some embodiments, the step of iteratively warping a cylinder mesh includes generating pull parameters, vector tension parameters, and sphere parameters in parallel.

[0041] The step of repeatedly warping the cylinder mesh may include recalculating the parameters after each iteration.

[0042] The step of repeatedly warping the cylinder mesh may include setting a convergence threshold and stopping the repeated warping step when the convergence threshold is reached. Alternatively, the step of repeatedly warping the cylinder mesh may include determining a predetermined number of iterations and stopping the repeated warping step when the number of iterations is reached.

[0043] Preferably, the 3D wearable item model includes a model of a shoe or a glove.

[0044] The present invention is also extended to a method for creating a 3D wearable item model used in the manufacture of custom-fit wearable items, the method including the method for creating the three-dimensional (3D) digital mold described above and the method for creating a 3D wearable item model used in the manufacture of custom-fit wearable items described above.

[0045] According to another aspect of the present invention, a system is provided for creating a 3D wearable article model used in the manufacture of a custom-fit wearable article, the system comprising: a receiver for receiving a 3D digital mold of an appendage representing a part of the human body, wherein the 3D digital mold includes a plurality of vertices defining the shape and size of the appendage, and has a center point and a principal axis; a cylinder generator that provides a mesh cylinder within the 3D digital mold, including a plurality of control points, and is configured to align the center of the mesh cylinder with the center point and to orient the mesh cylinder along the principal axis; and fixed anchor seams, each having a fixed location opposite to each end of the 3D digital mold. The invention includes a fixed anchor generator configured to extend both ends of a mesh cylinder to each of the fixed anchor seams, and a soft anchor generator configured to create a soft anchor in a 3D digital mold, wherein the soft anchor has limited mobility and defines a set of vertices that can operate on a circumferential point located between the ends of the mesh cylinder, and a physics engine configured to repeatedly warp the cylinder mesh to minimize the tension between the opposing anchor seams and the soft anchor until a convergence threshold is achieved, and to output the warped cylinder mesh as a 3D wearable item model.

[0046] A further aspect of the present invention provides a method for creating a custom-fitted wearable article having a textured surface for printing, the method comprising: providing a planar design environment that enables the design of a textured surface of a custom-fitted article within a planar UV map using UVW coordinate mapping; applying surface geometry to a planar UV map, the surface geometry comprising a plurality of control points, each having UVW coordinates; specifying texture elements in the UV map by using UVW coordinates; receiving a three-dimensional (3D) wearable article model of an appendage representing a part of the human body; morphing the texture elements created in the UV map onto the custom 3D wearable article model using corresponding UVW locations on the 3D wearable article model; integrating the UV map and the 3D wearable article model into a unified mesh; and exporting the unified mesh to an output file for printing.

[0047] In some embodiments, the surface geometry includes a mesh, a NURBS model, or a planar (polygon) model.

[0048] In some embodiments, the texture element includes regions where the thickness of the UV map varies in the W-coordinate direction. In one non-limiting embodiment, the planar UV map may include the sole of a shoe, and the 3D wearable item model is the shoe model.

[0049] Advantageously, the morphing step may include wrapping the planar UV map around the 3D wearable item model so that two opposing edges of the planar UV map are brought together to form a single seam around the 3D wearable item model.

[0050] This method may further include manufacturing 3D wearable items by printing the output file with a 3D printer.

[0051] In one non-exclusive example, the receiving step includes receiving a 3D wearable item created by the method for creating the 3D wearable item model described above.

[0052] This method may further include communicating with a robot tool system and exporting a unified mesh to the robot tool system.

[0053] In some embodiments, the morphing step includes passing the 3D object model and planar UV map through voxels or implicit geometry fields to unify separate parts together.

[0054] This aspect of the present invention is also extended to a system for creating custom-fitted wearable articles having a textured surface for printing, the system comprising: a design engine for providing a planar design environment, the design engine configured to enable the design of a textured surface of a custom-fitted article in a planar UV map using UVW coordinate mapping, applying surface geometry to the planar UV map, the surface geometry including a plurality of control points, each having UVW coordinates, and specifying texture elements in the UV map by using UVW coordinates; a projection engine configured to receive a 3D wearable article model of an appendage representing a part of the human body, morph the texture elements created in the UV map onto the custom 3D wearable article model using corresponding UVW locations on the 3D wearable article model, and integrate the UV map and the 3D wearable article model into a unified mesh; and a mesh exporter configured to export the unified mesh to an output file for printing.

[0055] A further aspect of the present invention provides a method for generating one or more toolpaths to guide a robotic arm during the manufacture of a custom-fitted wearable article, the method comprising: converting a received three-dimensional (3D) model of the wearable article into a two-dimensional (2D) UV coordinate map; identifying the object boundaries of the wearable article from the 2D UV map; generating at least one boundary offset line offset from the object boundaries as a toolpath line; converting at least one toolpath line into a 3D UV coordinate map; generating a plurality of points along the at least one boundary offset line, where the distance between adjacent points represents a step in the toolpath of the robotic arm; for each of the plurality of points, creating three orientation vectors: a first vector aligned in the direction normal to the point, a second vector aligned in the direction of movement between the points, and a third vector aligned toward the center of the toolpath to restrict rotation; and generating code from the vectors to control the movement of the robotic arm in the manufacture of the custom-fitted wearable article.

[0056] This method may further include determining the state of the object boundary and, if the boundary is determined to be open, closing the detected boundary of the object.

[0057] In some embodiments, generating at least one boundary offset line may include generating multiple boundary offset lines from the object boundary as multiple toollines, each of which is a separate toolline.

[0058] Preferably, the step of generating code includes generating code to move the head of the robot tool from a first toolpath among a plurality of toolpaths to a second adjacent toolpath among a plurality of toolpaths, while moving the first toolpath.

[0059] In some embodiments, the step of generating a code includes generating a code that deposits adhesive onto the wearable item at each point along the toolpath.

[0060] In one embodiment, the step of generating a plurality of points includes determining the length of at least one offset boundary line and dividing the length of at least one boundary offset line into a predetermined number of equal-length sections, each section being between adjacent points.

[0061] In another embodiment, the step of generating a plurality of points includes creating a plurality of points along at least one boundary line, the points being spaced apart by a predetermined distance.

[0062] Preferably, the method further includes ensuring that each point in at least one toolpath lies on the surface of the 3D UV map.

[0063] In a non-limiting embodiment, the assurance step includes checking that each point in at least one toolpath is on the surface of the 3D UV map, and pulling each point that is not on the surface of the 3D UV map to the surface.

[0064] Preferably, the method further includes assigning different weights to vectors so as to control the movement of the robot tool head in different directions during use.

[0065] In some embodiments, the step of generating code includes generating code in a computer numerical control (CNC) programming language. More preferably, the step of generating code may include generating G-code.

[0066] The step of generating the code may include calculating the rotation angle of the robot tool head based on the vector.

[0067] In one embodiment, the generated code is incorporated into a 3D model of the wearable item.

[0068] One embodiment of this method further includes determining an offset parameter that specifies the size of the offset, and applying the offset parameter to generate at least one boundary offset line.

[0069] In yet another aspect of the present invention, a system is disclosed for generating one or more toolpaths to guide a robotic arm during the manufacture of a custom-fit wearable article, the system comprising: a translator that converts a received 3D model of a wearable article into a 2D UV map; a boundary generator configured to identify object boundaries of the wearable article from the 2D UV map and generate at least one boundary offset line offset from the object boundaries as a toolpath line, wherein the translator is configured to convert at least one toolpath line into a 3D UV map; the boundary generator is configured to generate a plurality of points along at least one boundary offset line, where the distance between adjacent points represents a step in the toolpath of the robotic arm; a vector creator configured to create three orientation vectors for each of the plurality of points: a first vector aligned in the direction normal to the point, a second vector aligned in the direction of movement between the points, and a third vector aligned toward the center of the toolpath to restrict rotation; and a code generator configured to generate code from the vectors to control the movement of the robotic arm when manufacturing a custom-fit wearable article.

[0070] The present invention will be described with reference to the accompanying drawings, merely as an example. [Brief explanation of the drawing]

[0071] [Figure 1] This flowchart illustrates a conventional method for creating custom digital molds. [Figure 2] Figure 1 shows a series of representations illustrating examples of digital types obtained using the conventional method. [Figure 3A]Figure 1 shows an exemplary plan view representation of a digital type and foot scan having length and width dimensions derived from a bounding box using the conventional method. [Figure 3B] Figure 3A is a plan view representation of an exemplary digital type and foot scan, rotated 2 degrees, with length and width dimensions derived from a bounding box using the conventional method shown in Figure 1. [Figure 4A] Figure 1 shows a plan view line representation of an exemplary foot scan with defining points for geometry acquired using the prior art method. [Figure 4B-4C] Figure 1 shows an exemplary line representation of an inaccurate type measurement obtained using a conventional method. [Figure 5A] This is a line representation showing a 3D UV map in a state where no objects are present. [Figure 5B] Figure 5A shows a line representation of a 3D UV map, which is unwrapped in 2D space and divided into multiple components for constructing an object using conventional methods. [Figure 6] Figure 5B is a flowchart illustrating the conventional method. [Figure 7] This is a flowchart illustrating a conventional method for manufacturing footwear. [Figure 8] This flowchart illustrates a conventional method for creating robot toolpaths. [Figure 9] This is a schematic block diagram illustrating an exemplary system for implementing an improved custom footwear creation system according to one embodiment of the present invention. [Figure 10] Figure 9 is a schematic block diagram showing the composition of the custom footwear manufacturing system in more detail. [Figure 11] This is a schematic block diagram showing the type creator in Figure 10 in more detail. [Figure 12A] Figure 11 shows four oriented and landscaped foot scans with 6 degrees of freedom, performed by the extraction engine shown. [Figure 12B]Figure 11 shows the mesh results obtained from a foot scan obtained from a process performed by the morphing engine shown. [Figure 13] This is a flowchart showing how to create a custom type using the type creator in Figure 11. [Figure 14] Figure 11 is a schematic block diagram showing the object orientation engine in more detail. [Figure 15A] Figure 14 is a flowchart illustrating the operation of the pitch / roll aligner. [Figure 15B] Figure 14 is a flowchart illustrating the operation of the yaw aligner. [Figure 16A] This is a schematic diagram showing two input scans in a bounding bubble sphere using the method shown in Figure 15A. [Figure 16B] Figure 15B is a diagram illustrating the process of aligning the foot scan along the Y-axis using the method shown. [Figure 17] Figure 11 is a flowchart illustrating an example of an object-specific algorithm executed by the data extractor shown. [Figure 18] This is a diagram showing the dimensions of a foot obtained using the conventional method and the method shown in Figure 17. [Figure 19] Figure 10 is a schematic block diagram showing the UV mapping system in more detail. [Figures 20A-20D] Figure 19 is a schematic diagram illustrating the process performed by the UV mapping system. [Figure 21] Figure 19 is a flowchart illustrating how to create a UV map using the UV mapping system. [Figure 22] Figure 10 is a schematic block diagram showing the custom footwear creator in more detail. [Figure 23A] When there are no objects in the 2D UV map, Figure 22 shows a series of lines illustrating the results of the process performed by the morphing engine. [Figure 23B]Figure 22 shows the process performed by the morphing engine when an element is created on a 2D UV map, illustrating a computer-generated representation of the sole, which is a 2D configuration and then manipulated to become a 3D configuration. [Figure 24] Figure 22 is a flowchart illustrating the operation of the custom footwear creator. [Figures 25A-25D] This is a diagram of a circle with thickness, showing the results of a deformation method using conventional technology. [Figures 26A-26D] This is a diagram of a circle with thickness, showing the result of a deformation method according to one embodiment of the present invention. [Figure 27] Figure 10 is a schematic block diagram showing the robot tool system in more detail. [Figure 28A] Figure 27 shows a computer-generated representation of a custom sole, created in a 2D plane and then manipulated to become a 3D configuration, indicating the boundaries that can be found in both 2D and 3D representations, as determined by the robotic tool system. [Figure 28B] Figure 28A is a computer-generated representation of a custom sole, showing multiple robot toolpaths, divided points, and normal vectors determined by the robot tool system in Figure 27. [Figure 28C] Figure 28A is a computer-generated representation of a custom sole, showing multiple robot toolpaths, divided points, and directions of movement vectors determined by the robot tool system in Figure 27. [Figure 29] Figure 27 is a flowchart illustrating how limits are generated for a robot toolhead, as performed by the limit encoder. [Figure 30] This is a schematic diagram of the divided toolpath created using the method shown in Figure 29, indicating the directions of the U, V, and W vectors at each point. [Figure 31] This is a flowchart illustrating the operation of the code generator shown in Figure 27 when generating instructions for a robot tool. [Modes for carrying out the invention]

[0072] Figure 9 outlines an exemplary system 70 for implementing an improved method for designing and manufacturing custom-fit wearable items. While the manufacture of custom-fit footwear will be discussed in detail, it should be understood that this system 70 can also be used for designing and manufacturing other custom-fit wearable items such as gloves, helmets, or any other suitable examples.

[0073] A system 70 for designing and manufacturing custom-fit footwear (footwear articles, etc.) includes a foot scanner 72, a custom footwear creation system 74, a 3D printer 76, and a robot assembly 78. In use, the custom footwear creation system 74 receives a foot scan from the foot scanner 72 and outputs a file containing a 3D digital model of custom-fit footwear for the scanned foot. The file is output to the 3D printer 76, which prints the custom footwear item. The custom footwear creation system 74 can also output a set of instructions to the robot assembly 78 that can be used with the created 3D digital model to instruct the assembly to assemble the custom footwear item, for example, by attaching the sole to the upper. The embodiment shown in Figure 9 shows a foot scanner 72 inputting a 3D scan of a user's foot into the custom footwear creation system 74; however, in other embodiments, the input may be a 3D digital mold. Once a digital mold is input to the custom footwear creation system 74, the system creates footwear that fits the provided mold.

[0074] The elements of the custom footwear creation system 74 are shown in a block diagram in Figure 10. The custom footwear creation system includes a mold creator 80, a UV mapping system 82, a footwear creator 84, and a robotic tooling system 86. Each component operates independently, performing its respective function and can therefore work with functional components other than those shown in this embodiment; however, the four components work together to provide a complete system for designing and manufacturing custom-fit footwear. Thus, it should be understood that each of the four elements can, by itself and independently of the other elements, form one embodiment of the present invention.

[0075] When working together in the custom footwear creation system 74, the mold creator 80 is operably coupled to the UV mapping system 82, and the UV mapping system 82 is coupled to the footwear creator 84. The footwear creator 84 also communicates with the robotic tooling system 86 to provide a 3D model of the footwear and to better control the robotic assembly to put together the components of the footwear item. These components can be created by the 3D printer 76 in response to the provision of a 3D model of the footwear item. The input to the custom footwear creation system 74 is a 3D foot scan, which is input to the mold creator 80. The scan can be generated using conventional scanning devices and is therefore not described further herein. The mold creator 80 creates a custom (digital) mold that fully models the scanned foot and provides the custom mold to the UV mapping system 82. The UV mapping system 82 generates a 3D UV map (i.e., a mesh where each vertex has U, V, and W orthogonal coordinates), which is wrapped around a custom mold, and the UV-mapped mold is then pushed to the footwear creator 84. The footwear creator 84 constructs a 3D digital model of footwear (such as the entire shoe or the sole of the shoe) that perfectly fits the custom mold, and communicates with the robotic tool system 86 to generate instructions for the robotic assembly 78 to assemble the footwear item. For example, the robotic tool system 86 can generate a robotic toolpath that specifies how the robotic arm should move during the assembly of the footwear item. One of the outputs of the footwear creator 84, and by extension the custom mold creation system 74, is a file containing a 3D digital model of the custom-fit footwear item that is suitable for 3D printing.

[0076] The mold creator 80 within the custom footwear creation system 74 is shown in more detail in a block diagram in Figure 11. The mold creator 80 includes several components shown in Figure 11 and described below. The mold creator 80 includes an input processor 90 that communicates with a data store 92. The data store 92 is shown in Figure 11 as an element provided within the mold creator 80, but in another embodiment, the data store 92 can be provided remotely, for example, as cloud storage. The input processor 90 includes an extraction engine 96, a tuning engine 98, and a morphing engine 100 coupled to the tuning engine 98. The input processor 90 also includes a data processor 102 and a data store manager 104, the data store manager 104 being a component for the extraction engine 96, tuning engine 98, morphing engine 100, and data processor 102 to communicate with the data store 92. The data store 92 stores the bounding algorithm 106, the landscape point and corresponding object algorithm 108, the processed text file 110, the anonymized dataset 112, and the stored average type 114, each of which will be described in more detail later.

[0077] As shown in Figure 11, the extraction engine 96 includes an object orientation engine 116, an object landscaper 118, and a data extractor 120, all of which work together to perform the functions of the extraction engine 96. Similarly, the adjustment engine 98 also includes an adjuster 122 and a vector creator 124.

[0078] The mold creator 80 functions to create custom digital molds from any input 3D foot scan. The mold creator 80 also stores all scan input data and categorizes the data into different groups, for example, groups based on different shoe sizes. The categorized data can then be used to calculate a more accurate average mold across various groups.

[0079] For use, a mesh object 134, such as a foot scan, is supplied to the extraction engine 96. The object scan is first directed to all six degrees of freedom by the object orientation engine 116, which uses several different bounding algorithms 106, including Euclidean, Wertzl, bouncing bubble, and minimum B-box algorithms, to obtain the most accurate orientation of the object. The object landscaper 118 then "divides" the directed object using landscape points 108 retrieved from the data store 92 by the extraction engine 96 via the data store manager 104. "Dividing" means that the scan is represented by a predetermined set of parameters, each defined as a specific measurement between certain landscape points 108. Landscape points 108 are unique to each type of input object and are a defined set of points configured to divide the object at the same geometric locations independently of the individual objects. For example, in a footwear application embodiment, 46 landscape points are used, which divide all input foot scans at the same 46 geometric locations, and thus the same 46 measurements in each scan, such as the distance between the heel and the big toe, can be identified. An example of four foot scans oriented along the Y-axis, aligned, and landscape-processed is shown in Figure 12A (note that all four scans in Figure 12A are horizontally aligned). In this embodiment, 46 landscape points are used, but for clarity to the reader, only six are shown in Figure 12A, providing three parameters.

[0080] When the object landscaper 118 divides an object using landscape points 108, the data extractor 120 extracts these points and corresponding data from the landscaped object using landscape point object algorithm 108, which is also retrieved from the data store 92 via the data store manager 104. The corresponding data includes the location of each landscape point in 3D space and information about the relationships between each landscape point, enabling the calculation of various foot dimensions. These algorithms used to extract such dimensions (descriptive parameters) are object-specific and are developed specifically for a selected set of landscape points. For example, in a footwear application with 46 defined landscape points as described above, the landscape point object algorithm 108 that calculates the difference between point 0 (located at the heel of the foot) and point 15 (located at the big toe of the foot) is used to find the length of the foot. Various other dimensions are also extracted using different landscape point object algorithms 108. This method of deriving foot measurements from a scan is more accurate than the conventional methods discussed, where dimensions are typically approximate due to the manual processes used to orient the scan and define the foot geometry.

[0081] Returning to Figure 11, the data extractor 120 outputs the landscape points and corresponding data to the data store manager 104 along with the original input object 134 and associated user ID. The data store manager 104 splits this data into two separate datasets. First, all received data is written to the data store 92 and stored as processed text files 110. A separate processed text file 110 is stored for each input scan 134, and each file contains the input scan object 134, the user ID, and a text file 136 containing the landscape points and their locations in 3D space and the extracted measurements. A communication address 138, such as an email address, may also be provided. Separately, the data store manager 104 creates an anonymized version of the data 112. To create the anonymized dataset 112, the data store manager 104 removes the original input object 134, communication address 138, and associated user ID from the data, creating a dataset containing only the landscape points, their locations in 3D space, and the extracted, associated measurements. The anonymized dataset 112 is also sent so that it can be stored in the data store 92.

[0082] As briefly mentioned above, the type creator 80 can be used to create an accurate average type 114, and this process uses the stored anonymized dataset 112. The data processor 102 is configured to include a filtering engine 128, an average calculator 126, and communicate with a local data store 130 containing rules 132 to calculate the average type 114. The data processor 102 retrieves the anonymized dataset 112 from the data store 92, and the filtering engine 128 filters the data, selecting only specific categories (characteristics). Examples of categories are male, female, shoe size, foot width, and age, but many other categories are possible. To perform the classification process, the filtering engine 128 retrieves rule 132 from the rules 132 stored in the local data store 130 and applies rule 132 to the entire anonymized dataset 112. For example, to filter data and retrieve data only from male foot scans, rule 132 can be used, which states that if the forefoot length (a measurement extracted and stored from scan 134 by the data extractor 120) is between 10mm and 12mm, then the foot belongs to a male. This rule 132 is retrieved from the local data store 130 by the filtering engine 128 and applied to the entire anonymized dataset 112, returning only data from scans where the forefoot length is between 10 and 12mm. Several rules 132 can be stored and applied to the anonymized dataset 112 to filter for various different categories, such as shoe size.

[0083] The filtered data is output from the filtering engine 128 to the averaging calculator 126, which calculates the average of the filtered data, including calculating the average of each landscape point position in 3D space and the average of the associated foot measurements. This process creates an "average" type for that particular filtered dataset. The average type 114 includes the average landscape points of its objects and the associated foot dimensions. In the example discussed earlier, if the filtering engine 128 selects only foot scans from men, the filtered dataset is output to the averaging calculator 126, which calculates the average landscape points and foot dimensions of the filtered dataset, thus creating an average model of men's feet: average type 114. The average type 114 is sent to the data store 92 via the data store manager 104 and stored under the category "men". As more foot scans are input to the type creator 80, more data is added to the anonymized dataset 112, and therefore more data is used to calculate the average for any selected category (e.g., shoe size). In this way, the "average" type 114 stored in each category becomes more accurate. Therefore, by grouping the data into different discrete sizes (European sizes 39, 40, 41, ..., etc.), we can obtain a better average size for footwear in each group, and consequently, a better-fitting discrete size for each shoe size, i.e., a specific size that fits more people better because it is based on actual data. Thus, the type creator 80 can provide averaged types across various different foot sizes or other categories, as well as be used to create custom types that perfectly match an individual, which will be discussed later.

[0084] As shown in Figure 11, once the input object 134 is processed by the extraction engine 96 and the data is stored, the adjustment engine 98 retrieves the processed file 110 and the stored average type 114 of the input object 134 from the data store 92 via the data store manager 104. The adjuster 122 adjusts the landscape points on the average type 114 to match the landscape points of the input scan object 134. This generates two datasets, namely the original landscape points and the adjusted points 142 on the average type 140. The vector creator 124 calculates the positional difference between the original points 140 and the adjusted points 142, and the generated vector is output to the morphing engine 100. The morphing engine 100 then uses this vector to morph the object from the stored object (average type 114) to a new adjusted object (custom type 144). The morphing process is shown in Figure 12B. In this way, a custom type 144 is produced that accurately models the scanned foot. The adjusted object 144 is output from the mold creator 80 to the UV mapping system 82.

[0085] Figure 13 shows an overview of the process 200 performed by the mold creator 80 to create a custom mold 144. A mesh object 134 (e.g., a 3D scan) is input to the mold creator 80 and, in step 202, is rotated and aligned in all six degrees of freedom. The object is then subdivided in step 204 using landscape points, which are described with reference to the Y-axis origin (root). In step 206, the points and corresponding data are extracted based on a specific algorithm, and the data is then written to the data store in step 208 as a text file containing the user ID, landscape points and corresponding distances, and input object, as well as in step 210 as anonymized data containing only landscape points and scan measurements. In step 212, the landscape points in the stored average mold are adjusted to correspond to the landscape points in the 3D scan input, and then in step 214, the difference between the original landscape points and the adjusted points is calculated to generate a vector. In step 216, this vector is used to morph the stored average type from the object corresponding to the average landscape points to the object corresponding to the adjusted points. Thus, the adjusted mesh object, specifically the adjusted type 144 that perfectly models the feet of the input scan, is output from the type creator 80.

[0086] The object orientation engine 116 in Figure 11 is described in more detail in the block diagram in Figure 14. The object orientation engine 116 includes a pitch / roll aligner 220 and a yaw aligner 222. In use, the mesh object 134 is first fed to the pitch / roll aligner 220, which orients the object 134 to the XY plane, and then the yaw aligner 222 aligns the length of the object 134 to the Y axis. The output of the object orientation engine 116 is the object 134, which is oriented and aligned in all six degrees of freedom.

[0087] The process 300 performed by the pitch / roll aligner 220 is illustrated by the flowchart in Figure 15A. First, in step 302, all mesh vertices of the object are found, and a bounding bubble sphere is created around this point cloud. An example of bounding bubbles created around two different input scans with different orientations is shown in Figure 16A. In step 304, the centroid of the bounding bubble sphere is identified, and the sphere is scaled to 0.9 around the centroid such that 90% of the object's mesh vertices remain inside the sphere and 10% are outside the sphere. The 10% of points outside the sphere become points at the (two) extremes of the object. Scaling the sphere to 0.9 is useful when oriented 3D foot scans or digital molds, as points at the toes and heels remain outside the sphere, and therefore the principal axes that define the orientation of the input scan or mold can be identified. However, the value used to scale the sphere depends on the object being oriented and therefore changes based on the application. In step 306, a best-fitting plane is created that fits the points at both extremes of the input object, defining the axis passing through the object. The plane divides the object and therefore provides a 2D profile of the object, and the profile is a plane curve (a curve divided by the plane). The 2D profile is required in subsequent operations to further define and orient the object.

[0088] More specifically, creating a plane (and thus a 2D profile) involves calculating the average of the X, Y, and Z coordinates of each point outside the bounding bubble sphere to provide a singularity in 3D space. A vector is created in each of the X, Y, and Z directions, and the length of each vector is the average value in each of the X, Y, and Z directions, respectively. Using this singularity and the three vectors, a best-fitting plane is created from which the object can be divided and a 2D profile can be obtained.

[0089] Returning to Figure 15A, in step 308, the system runs a minimum bounding box (a method in which a box is repeatedly twisted until the minimum area is found) around the 2D profile of the input object, finding each corner of the minimum bounding box. In step 310, the distance from each corner of the bounding box to the object profile is measured, and these distances, along with the distances between the four corners of the bounding box, are used to determine which corners of the bounding box correspond to the heel and toe of the input scan. Logical rules are used, and for example, it can be determined that the corner with the longest distance to the profile does not have an ankle, and therefore this point must be on the toe side of the foot. The relationship between this point and the points of the other three corners allows the point corresponding to the heel in the 2D profile to be found, and in step 312, this point is defined as the anchor of the object. As a designated point on the object, the anchor is important because it is the part of the object on which the subsequent functions and algorithms are based. In the footwear application discussed, the heel is used as the anchor, but in other applications, other points may be used. For example, when oriented a hand scan, the lower part of the palm may be selected as the anchor. Finally, in step 314, the area of ​​the object to be aligned with a flat XY plane is specified. In footwear applications, this is selected as the sole of the foot. In this way, any input type or scan can be oriented onto a plane.

[0090] Next, the parts-aligned object is fed to the yaw aligner 222, and the process 400 performed by the yaw aligner is illustrated in the flowchart of Figure 15B. See also Figure 16B, which is a diagram showing how it is performed by the yaw aligner 222. Figure 15B illustrates that first, an anchor point at the heel is used to create an orientation plane for the object, and this plane is used in step 402 to orient the object to the XY plane. Orienting the object to the XY plane involves moving the heel anchor point to the Y-axis origin (XY coordinate (0,0)). This is shown in Figure 16B, which shows the heel anchor point 420 at coordinate (0,0) on the XY axis. The area and centroid of the object, as well as all object control points (mesh vertices), are then transformed from 3D space to a flat XY plane in step 404.

[0091] The object's length is known because the input scan direction and the UVW coordinate points corresponding to the heel and toe were previously defined using the best fit plane, the generated 2D profile, and the bounding box. Therefore, in step 406, a secondary anchor point 422 can be created on the principal axis 424 at 66% along the object's length. This point is also shown in Figure 16B. The value of 66% is chosen because, in footwear applications, if the input object is a scan or digital model, 66% along the length of the foot is, on average, the widest part of the foot, and thus the extreme point of the foot's geometry in the X direction can be found. In step 408, a circle 426 is created where the distance between the heel anchor point 420 and the secondary anchor point 422 at 66% corresponds to the diameter of the circle 426, and in step 410, the intersection point 428 of circle 426 with the object's 2D profile is found. The two intersection points 428 correspond to the widest part of the foot: the extreme point of the foot's geometry in the X direction. In step 412, vector 430 is created between two extreme points 428, and point 432 is defined at 40% along this distance. On average, 40% distance is used because it corresponds to the position of the middle toe, and therefore the center of the foot. Since the input scan is aligned with the XY plane, the object orientation engine 16 can determine whether the input scan is of the right or left foot, and therefore knows which intersection point 428 (inside or outside of the foot) to measure 40% of the foot width from. In step 414, vector 434 is created between the heel anchor point 420 and point 432 at 40% of the foot width. This vector 434 is the origin of the object. Finally, in step 416, the object is rotated using the heel anchor point 420 as the center of rotation to align vector 434, and thus the input object, with the Y axis. In this way, the object is oriented and aligned in all six degrees of freedom.

[0092] This orientation method allows any input scan from any source to be accurately and efficiently aligned and oriented in all six degrees of freedom, independently of the original orientation of the input scan. Any input object can be described by referring to the heel anchor point 420 and secondary anchor point 422, and the variation in the input object is described by the variation of points around anchors 420 and 422.

[0093] As described above, the aligned objects are then landscaped by the object landscaper 118, and the data extractor 120 extracts landscape points, their positions in 3D space, and various dimensions calculated using the landscape point object algorithm (object-specific) 108. An example of the algorithm 500 used by the data extractor 120, an algorithm for identifying ball girths, is shown in detail in the flowchart of Figure 17. The landscaped objects are input to the data extractor 120, and in step 502, the normals of all mesh faces on the objects are found. In step 504, the mesh faces are then selected based on their normal angles relative to the Z axis, and the edges of the unselected meshes are found. In step 506, a Euclidean B-box is created, with the length of the B-box extending between 63% and 72% along the Y axis, and the width of the B-box capturing the full width of the scanned foot. The values ​​63% and 72% are used in this example as the ball girth (widest part) which typically occurs between 63% and 72% along the length of the foot (from the heel). In step 508, object points that are not within this B box are removed. Then, in step 510, for the points within the B box, extreme points in the positive and negative directions along the X axis are selected. Note that different combinations of these directional distances are needed for different feet. For example, for the right foot, negative X-axis values ​​are used inside the scan and positive X-axis values ​​are used outside the scan. The points are described with reference to the heel anchor point 420, and thus their exact location in 3D space is known. Thus, the distance between the two points can be calculated, leading to an accurate measurement of the foot, and by extension the ball girth, at its widest point. Returning to Figure 17, finally, in step 512, the selected control points, along with their positions in 3D space, are written to the data store 92.

[0094] Figure 18 shows an example of ball girth measurements obtained from a foot scan using the method of this embodiment, as well as using a prior art method. In the prior art example described, the distance is measured in a plane and is based on a percentage. Therefore, the results are always approximations and thus inaccurate, as highlighted in Figure 18. The method of this embodiment calculates the distance in 3D space, which leads to a more accurate measurement of ball girth, as shown.

[0095] UV mapping. As shown in Figure 10, a modified object or custom mold from a mold creator 80 is provided to the UV mapping system 82. In other embodiments, the UV mapping system 82 is independent of the mold creator 80, so the digital mold may be provided from a different source. The UV mapping system 82 creates a uniform 3D UV map around the modified object, which is needed to add structure and texture later during footwear design.

[0096] The UV mapping system 82 is shown in more detail in the block diagram of Figure 19 and includes a fixed anchor generator 602, a soft anchor generator 604, a parameter generator 606, and a data store 608 containing weights 610. The UV mapping system 82 also includes a physics engine 612, which receives parameters from the parameter generator 606, weights 610 from the data store 608, and objects with fixed and soft anchors from the soft anchor generator 604. The physics engine 612 outputs adjusted objects with a 3D UV map wrapped around them. The parameter generator 606 itself includes three components: a cylinder pull generator 614, a vector tension generator 616, and a sphere generator 618.

[0097] When the four components of the footwear creation system 74 work together, the adjusted object 144 from the mold creator 80 is input to the UV mapping system 82. However, the UV mapping system 82 can also receive a 3D foot scan as input and create a 3D UV map of the input scan.

[0098] In use, the fixed anchor generator 602 receives an object 144 (3D scan or mold) and generates a mesh with fixed anchors within the adjusted object 144. This involves first creating a UV mesh cylinder 702 inside the adjusted object 144 and aligning the center of the cylinder 702 with the center of the adjusted object 144 (found through the calculation of the area of ​​the adjusted object). This is shown in Figure 20A. The fixed anchor generator 602 creates two seams at both ends of the object 144, as shown in Figure 20B: a north anchor seam 704a and a south anchor seam 704b. If the adjusted object 144 is a foot scan or mold, the north anchor seam 704a is created at the ankle and the south anchor seam 704b is created along the toes of the foot. The two seams, namely the north anchor seam 704a and the south anchor seam 704b, are where the UV vectors of the mesh converge. To create the north anchor seam 704a and the south anchor seam 704b, the fixed anchor generator 602 finds the normals of all mesh faces of the adjusted object 144 and selects a mesh based on the angle of the normals to the Z axis. Two edges of the unselected mesh are found, and these become the north seam 704a and the south seam 704b. Each seam 704a, 704b is divided using several points, the number of points corresponding to the number of mesh vertices on each side of the mesh cylinder 702 (i.e., the number of points on the circumference). Thus, as the density of the mesh cylinder increases, the number of points along each seam increases. The density of the mesh cylinder 702 is variable, but enough points are needed to accurately describe the foot geometry. Examples of meshes that can be used for footwear applications are a 55x55 grid or a 25x55 grid. As the mesh density increases, the resolution of the UV map also increases. However, the processing time for any calculations also increases.

[0099] The fixed anchor generator 602 calculates vectors between the control points on each side of the mesh cylinder 702 and the corresponding points on each seam 704a, 704b, and uses these vectors to move the mesh to the seams. The points in the north anchor seam 704a and the south anchor seam 704b are the north and south fixed anchors of the mesh. The fixed anchors are fixed in 3D space and cannot be moved. Therefore, as shown in Figure 20B, the output from the fixed anchor generator 602 is the adjusted object 144 with the mesh cylinder 702 extended to the fixed anchor points in the north 704a and south 704b.

[0100] The output of the fixed anchor generator 602 is provided to the soft anchor generator 604, which creates soft anchors 706 within the adjusted object 144. Unlike the fixed anchors 704, the soft anchors 706 are a set of points that have the ability to move in 3D space. For the footwear application described, a heel-to-instep soft anchor is a valid soft anchor, as shown in Figure 20C. Figure 20C shows the start point 706a and end point 706b of the soft anchor, which correspond to the initial placement of the soft anchor by the soft anchor generator 604 706a and the position of the soft anchor point 706b after the physics engine 612 warps the mesh. Other soft anchors may be used, but the heel-to-instep soft anchor 706 is extremely effective for footwear applications. Therefore, the output of the soft anchor generator 604 is a modified object 144 having a mesh cylinder 702, and any control point on the mesh cylinder can be defined as a fixed anchor 704, a soft anchor 706, or neither.

[0101] Every control point on the mesh cylinder 702 is associated with a weight 610, the weight of which depends on whether the point is a fixed anchor 704, a soft anchor 706, or neither. The weight 610 determines how much each control point can move relative to any other control point on the object 144, guiding the control point from source to destination. For example, fixed anchors 704 have a large weight 610 such as 100, and therefore these points do not move. Soft anchors 706 have some flexibility and are therefore assigned a medium weight 610 such as 30. All other control points can move freely in 3D space and are therefore assigned a small weight 610 such as 2. All weights 610 are pre-assigned to the mesh cylinder control points and stored in the data store 608.

[0102] The adjusted object 144, which has a mesh cylinder 702 and fixed anchors 704 and soft anchors 706, is output to the physics engine 612, which also receives parameters from the parameter generator 606 and retrieves a list of associated weights 610 from the data store 608. The parameter generator 606 generates three parameters, namely cylinder pull 614, vector tension 616, and sphere 618, which are assigned to cylinder control points (mesh vertices of cylinder 702) to guide and control the movement (warp) of the mesh. The generation of the three parameters creates nine vectors for each control point, and the weights 610 associated with that control point are retrieved and assigned to the vectors. Thus, the parameters and weights determine how each control point on the mesh can move. Each of the generated parameters will be described in detail later.

[0103] The cylinder pull generator 614 creates a pull of the cylinder control point toward the adjusted object 144, moving the control point outward toward the surface of object 144. To do this, the closest point on the surface of object 144 to the cylinder control point is found, and a vector is created between the two points. A weight of the movement is assigned to this vector, and the weight is object-specific. In the footwear application discussed, this is assigned 100 (hence the low movement between these two points), but other weights would be used in other applications.

[0104] The parameter generator 606 also includes a vector tension generator 616, which assigns the vector tensions between cylinder control points that are needed to pull all points together and ensure the mesh maintains its structure. To create the vector tensions, all internal mesh edges of the mesh cylinder 702 (i.e., the edges of the individual squares that make up the mesh) are found and the edges are converted into vectors. Weights are then assigned to each vector (via weights 610 associated with the control points, stored in the local data store 608), and in the footwear example described, the weights assigned are 60.

[0105] The final component of the parameter generator 606 is the sphere generator 618, which creates a sphere for each cylinder control point. The sphere is the average vector for each control point, and to create this parameter, five nearest neighbor control points are found for each control point. A vector is created between the control point and the five nearest neighbors, and the average of the five vectors is calculated to create the average vector for that control point. The weight 610 assigned to this control point is then assigned to the vector to guide the movement from the control point's original location to the location of the average vector. In the footwear example, this is chosen as 30.

[0106] The physics engine 612 receives vectors generated by the parameter generator 606 and weights 610 assigned to each point on the mesh, and iteratively moves the mesh by moving the control points from their starting positions in 3D space using the parameters and weights 610. The objective is to move the control points to find the minimum tension between the north anchor seam 704a and the south anchor seam 704b that demonstrates a good fit of the mesh to the input object 144. Using a soft anchor 706 from heel to instep, 2000 iterations are required to achieve a appropriately warped mesh, which takes approximately 5 seconds to complete. In each iteration, a vector is calculated (the three vectors are summed to represent the sum of how far the point has been pushed), and the weights 610 associated with the control points are assigned to that vector. At the end of each iteration, the system 82 can determine the amount the mesh has moved. The parameters and vectors are recalculated, the same weights 610 are applied, and the process is repeated over multiple iterations, with 2000 iterations used in this embodiment.

[0107] The number of iterations, and therefore the computation time, can vary depending on the soft anchors 706 and input objects 144 used. 2000 iterations are chosen for this application because the mesh always converges after this number of iterations. An alternative is to measure the number of iterations required for mesh convergence against a convergence threshold and perform physical iterations until the threshold is reached.

[0108] The physics engine 612 outputs an adjusted object with a UV map wrapped around it, as shown in Figure 20D. Unlike conventional methods, the UV map is uniform in 3D space, and there is no need to section the object and unwrap it into separate 2D objects, thus eliminating the need to manually adjust edges to create uniform UV vectors at each edge.

[0109] Process 800, performed by the UV mapping system 82, is outlined in the flowchart of Figure 21. As shown, the adjusted object 144 is input to the UV mapping system 82, and in step 802, a mesh cylinder is created and oriented within the adjusted object. In step 804, north and south anchor seams are created, and in step 806, these seams are separated using the same number of points on each edge of the mesh cylinder. In step 808, the edges of the cylinder are moved to the points on each seam, and these points become the fixed anchors of the mesh. In step 810, soft anchors are created, and in parallel, three parameters are generated: in step 812, the pull of the cylinder control points; in step 814, the vector tension between the cylinder control points; and in step 816, the sphere of the cylinder control points. Once these parameters are created, in step 818, the physics engine retrieves the weights assigned to each control point and assigns them to vectors. The physics engine then calculates the mesh movement over 2000 iterations in step 820, allowing the output from the UV mapping system 82 to be a mesh pulled around the adjusted object. This creates a custom 3D UV map that is tailored to the input object.

[0110] Footwear / Sole Builder. Figure 10 shows that when operating in the Custom Footwear Creation System 74 for designing custom articles, a 3D UV-mapped object is output from the UV mapping system 82 to the Footwear Creator 84. In other embodiments, the input may be UV 3D-mapped objects obtained from different sources. The components of the Footwear Creator 84 are shown in a block diagram in Figure 22. The Footwear Creator 84 includes a 2D design engine 902, a projection engine 904, and a mesh exporter 906. The 2D design engine 902 is an algorithm-driven engine, and its output is an article designed on a 2D UV map, which is provided to the projection engine 904. The projection engine receives the 3D UV-mapped object 708 from the UV mapping system 82 and converts the 2D design into a 3D object; that is, the projection engine 904 projects the 2D design onto the 3D UV-mapped object 708. A real-world, non-limiting example of this is creating a custom-made sole for footwear in a 2D domain and then wrapping it around a 3D digital model of the item. The projection engine also communicates with the robotic tool system 86. The projection engine 904 provides its output to the mesh exporter 906, which outputs a 3D file of the custom-fitted item suitable for 3D printing. This example describes custom-fitted footwear.

[0111] The 2D design engine 902 designs and constructs footwear on a 2D UV map. This design engine 902 creates a planar UV map by creating a rectangle and then applying surface geometry to this rectangle. The surface geometry can be any type of surface geometry, e.g., a mesh, a NURBS (non-uniform rational B-spline) model, or a planar (polygon) model, where each control point of the surface geometry has U, V, and W coordinates. An example where a mesh is applied is discussed, in which case each vertex on the mesh has U, V, and W coordinates. The 2D design engine 902 then adds the object to the UV planar map, which involves specifying the thickness and constructing features across different parts of the mesh. In this way, the entire footwear item is designed on the planar UV map. This item can be an entire shoe or simply a sole. This is performed by algorithms or code, with separate algorithms or code used for each type of shoe or sole designed. The intended components are sent from the 2D design engine 902 to the projection engine 904, which also receives a 3D UV map of the custom object 708 from the UV mapping system 82. The projection engine 904 then morphs all elements created on the planar UV map into the custom 3D UV map using the corresponding UVW coordinates. In this way, the footwear item is projected from the planar UV map to fit the custom object, creating a 3D mesh of custom-fitted footwear.

[0112] Figure 23A shows an example of how a planar UV map is converted into a 3D UV-mapped object. Note that this figure only shows how a 2D UV map is converted and does not show how any object attached to the 2D map is converted. As shown, when converting a 2D UV planar map to a 3D UV-mapped object, the resulting object contains only one seam and one edge. This is a reduction compared to the prior art method in which, if the object is divided into separate components, the object is attached to each component separately and then the components are fitted together. Furthermore, the uniform grid obtained using the method of this embodiment ensures that the geometry of the created footwear is accurate and consistent. Figure 23B shows an example of a sole created on a planar UV map, which is then wrapped into a custom 3D object, i.e., a mold.

[0113] Once the features are converted into 3D objects by the projection engine 904, the 3D mesh objects are output to the mesh exporter 906, which converts the mesh into a format suitable for 3D printing and outputs the file for 3D printing.

[0114] Process 1000, performed by the footwear creator 84, is shown in the flowchart of Figure 24. In step 1002, a planar UV map is created, and in step 1004, a mesh is added to the planar UV map. In step 1006, an object is added to the planar UV map, which involves building thickness in the W direction. In step 1008, the elements created on the planar UV map are then morphed into a 3D UV-mapped adjusted object (provided by the UV mapping system 82), and in step 1010, the 3D adjusted object with the design elements unifies the separate parts (i.e., unifying each square in the mesh into a single object) via voxels or implicit geometry fields. This step closes the mesh, which is important for subsequent 3D printing of the custom object so that the 3D printer can determine what is inside and what is outside the model. Then, in step 1012, the mesh is exported to output a file containing the details of the custom-fit footwear, ready to print.

[0115] The footwear creation process 1000 according to this embodiment has several advantages over the prior art methods discussed earlier. The principle of the prior art method is shown in Figures 25A to 25D, which show that when an object is created in 3D and then deformed (e.g., footwear is created and then deformed to fit a custom scan), the footwear will have inaccurate geometry. More specifically, Figure 25A shows an example of a created object with a thickness of 5 mm. As shown in Figures 25B to 25D, when an object is deformed, e.g., compressed, expanded, or narrowed, the thickness of the object is not consistent across different parts of the object and does not match the original design. The design will also differ across different objects, resulting in a low-quality product. The method of this embodiment, in which an object without a physical form (e.g., a digital mold) is first deformed to create a custom object (custom mold), and then the object is created in 2D and then converted to 3D, ensures consistent geometry across all custom objects. The two-step process of this embodiment is shown in Figures 26A to 25D, where Figure 26A shows an object that has been created and then had an object added to give it a thickness of 5 mm. Figures 26B to 26D show that when the object is deformed (and therefore its dimensions change), the object is added after deformation, so the thickness of the object is maintained across objects with different thicknesses and is consistent throughout all parts of the object.

[0116] Furthermore, the method of this embodiment first designs an item in 2D space and then projects it onto any object in 3D space (such as a foot scan mold) while maintaining its geometry, so the same 2D item can be used for any input object. This is far more efficient than the conventional method in which a new custom item is created from scratch for each custom input scan. Therefore, the method of this embodiment enables high-speed production of custom footwear and significantly improves the accuracy and efficiency of footwear manufacturing.

[0117] Toolpath. As briefly described and shown in Figure 11, the footwear creator 84 communicates with the robot tool system 86. The robot tool system 86 is responsible for generating instructions that control the robot to assemble the footwear article. More specifically, the robot tool system 86 generates toolpaths that guide the robot arm during footwear manufacturing, and the system is shown in more detail in Figure 27. The robot tool system 86 includes a limit encoder 2000 operably coupled to a code generator 2002, the limit encoder 2000 includes a boundary generator 2004, a translator 2006, and a vector creator 2008. In use, the 3D mapping custom object generated by the footwear creator 84 is input to the translator 2006, which first converts the 3D object back into a 2D UV map. Using a 2D UV map, the boundary generator 2004 detects the object's boundary 2010, ensuring it is completely closed, and creates multiple toolpaths 2012 by shifting the boundary 2010. Then, as shown in Figure 28A, the translator 2006 converts the boundary 2010 and offset lines 2012 back into a 3D UV-mapped object. Only the boundary line 2010 is shown in Figure 28A, and the offset lines have been excluded for clarity to the reader. Next, the vector creator 2008 creates a series of points along the toolpath 2012, creating three orientation vectors for each point: a W vector (aligned in the normal direction, an example is shown in Figure 28B), a V vector (aligned in the direction of movement, an example is shown in Figure 28C), and a U vector (aligned towards the center of the toolpath to restrict rotation). The normal direction is important because it defines the direction of movement of the toolhead so that it engages with the object it is interacting with. The three vectors work together to restrict the robot head's movement to toolpath 2012, ensuring that the robot arm does not move up or rotate off toolpath 2012, but continues along the generated toolpath 2014 during operation.It is also possible to assign weights to these vectors, which can be used to instruct the movement speed of the robot tool head along the adhesive flow and toolpath 2012, but this will not be further detailed in this specification.

[0118] Once the limits are generated, the vectors are output to the code generator 2002, which converts the vectors into G-code (a widely used computer numerical control (CNC) programming language). The code generator 2002 uses a refactoring script to convert the vectors into G-code and generate a set of commands that the robot can understand. In the G-code, the U, V, and W vectors become the X, Y, and Z vectors, respectively. Thus, the output of the robot tool system 86 is a 3D object in which the toolpath 2012 is encoded, which is output to the robot assembly 78.

[0119] During robot assembly, the robot toolhead moves along one toolpath 2012 in a series of steps, depositing adhesive incrementally as it moves. The created X, Y, and Z vectors restrict the movement of the robot toolhead, ensuring efficient and accurate movement along the toolpath 2012. Once the first toolpath 2012 is completed, the robot jumps to the next toolpath, repeating the process until adhesive has been deposited on all encoded toolpaths. Figure 28C shows a sole with multiple toolpaths 2012, where the toolhead must repeatedly traverse each toolpath 2012 to deposit adhesive on the shoe sole.

[0120] Process 3000, performed by the limit encoder 2000, is illustrated in detail in the flowchart of Figure 29. Upon receiving a 2D object, in step 3002, the object is converted back into a 2D UV map, and then in step 3004, the limit encoder finds the object's boundaries. In step 3006, the system determines whether the boundaries are closed. If the boundaries are not closed, in step 3008, the boundaries are closed, and then in step 3010, the robotic arm offsets them multiple times to the location on the 2D UV object where the adhesive should be deposited. Multiple offset lines are required because multiple adhesive deposition lines are needed to manufacture footwear (also shown in Figure 28C, corresponding to multiple toolpaths 2012). If, in step 3006, the system determines that the boundaries are closed, it proceeds directly to step 3010, offsetting the boundaries to the desired adhesive deposition locations. The size of this offset is an input to the limit encoder and can be modified depending on the designed object.

[0121] In step 3012, the offset boundary lines are converted into a 3D UV map, and in step 3014, each of these lines is then divided into a series of points, each point acting as a step for the robot toolhead. Lines can be divided using two methods: a method based on the length of each curve path (for example, a boundary curve is divided into 20 sections separated by points), or points can be created at set distances, e.g., every 5 mm from each other. The number of points used to divide the curve is variable and is also an input to the limit encoder. A larger number of points increases the precision of the toolpath and requires enough points for the toolpath line to be smooth enough to ensure the robot head does not jump and stays on the surface of the object. However, a larger number of points increases processing time. In step 3016, each divided point is checked to ensure that each point lies on the surface of the UV map, and if necessary, the point is pulled to the surface of the UV map. In step 3018, the normal of each divided point is found and used to create a vector, i.e., a W vector, in the direction of the normal. The W vector is used to align the robot tool control points and ensure they always point to an object. In step 3020, the separated set of points is shifted by 1 in the U direction, and a vector is created between the original points and the shifted points to create a vector that characterizes the direction of movement of the robot arm. In step 3022, the final constraint vector is created, and an orientation vector is created for alignment with the V axis. The V vector is used to ensure that the robot head does not rotate during operation. An example of one transformed boundary, separated using 11 points used to guide the robot tool head, is shown in Figure 30 along with the direction of each vector.

[0122] Next, the vectors must be converted into a command set understandable by the robot: the vectors must be converted into native robot code and encoded into a 3D design object. The process 4000 in which the code generator 2002 does this is shown by the flowchart in Figure 31. First, in step 4002, the three vectors generated by the limit encoder 2000 are exported as G-code (and become X, Y, and Z vectors), and then, in step 4004, the code calculates the rotation angles. It is necessary to calculate the rotation angles at each point on the boundary curve 2010 and toolpath 2012 and integrate this parameter into the native code so that the extruder maintains the same orientation throughout the curve and avoids rotating itself. The output of the code generator 2002 is the 3D object in which the toolpath 2012 is encoded, which can be provided to the robot assembly 78. The encoded toolpath 2012 means that during manufacturing, the robot tool head will follow the path 2012 and additionally deposit adhesive in the desired locations. For example, in footwear applications, shoes are decorated with a woven upper. The 3D-printed outsole includes a toolpath 2012 that allows for adhesive deposition, and the outsole is then pressed onto the upper to create the footwear item. The toolpath can be used in the future to additively deposit material to create the entire custom item.

[0123] While only specific features of this disclosure have been shown and described herein, those skilled in the art will likely conceive of numerous modifications and changes. Therefore, it should be understood that the attached claims are intended to encompass all such modifications and changes as they fall within the true spirit of this disclosure. It should also be understood that any of the features shown or described in relation to the above-mentioned figures can be combined in any suitable manner.

[0124] The techniques presented herein and described in the claims refer to and apply to concrete examples of practical applications that certainly improve tangible products and the art, and are therefore not abstract, intangible, or purely theoretical. Furthermore, if any claim appended to the end of this specification contains one or more elements indicated as "means for performing [function]" or "steps for performing [function]," such elements are intended to be construed under Section 112(f) of the United States Patent Act. However, in any claim containing elements indicated in any other form, such elements are not intended to be construed under Section 112(f) of the United States Patent Act.

Claims

1. A method for creating a three-dimensional (3D) digital model of an appendage representing a part of the human body, used in the manufacture of custom-fitted wearable items, Receiving a 3D mesh object representing the appendage, wherein the mesh object includes a plurality of vertices and edges defining the shape and size of the appendage. The mesh objects are oriented with multiple degrees of freedom so that they are aligned in a predetermined orientation, Identifying from the mesh object the value of each of a predetermined set of landscape points specific to the type of appendage, each of which is configured to represent a specific geometric location of the appendage and is defined relative to a predetermined reference point in the mesh object when oriented in the predetermined orientation. Creating a set of parameters representing the mesh object, where each parameter is defined as a predetermined measurement between at least two different landscape points, The set of parameters is stored as the 3D digital model of the accessory organ, Methods that include...

2. The method according to claim 1, wherein the orientation step includes aligning the mesh object with the principal axis of the appendage, the principal axis including the long axis of the appendage.

3. The method according to claim 2, wherein the orientation step includes pitching / rolling the mesh object in the X-Y plane.

4. The aforementioned step of aligning the pitch / roll is, The principal axis of the mesh object is identified by creating bounding bubble spheres around the mesh object, Reducing the size of the bounding bubble sphere by a predetermined percentage, Identifying all points of the mesh object outside the reduced-size bounding bubble sphere, Using the identified points, thereby identifying and using the principal axis of the accessory between the identified points, The method according to claim 3, including the method described in claim 3.

5. The aforementioned step of aligning the pitch / roll is, Creating a plane along the main axis of the aforementioned accessory organ, The method involves using the intersection points of the plane and the mesh object to create and use a two-dimensional (2D) profile of the appendage. Identifying a specific feature of the appendage by measuring the distance from the vertices of the bounding box surrounding the 2D profile to the nearest point in the 2D profile, wherein the identifying step includes identifying another point of the appendage. The use of anchor points, thereby specifying the area of ​​the appendages that should be aligned with the X-Y plane, is also used. The method according to claim 3 or 4, further comprising aligning the mesh object with the X-Y plane containing the anchor point.

6. The method according to any one of claims 2 to 5, wherein the orientation step includes yaw-aligning the mesh object with respect to the Y axis in the X-Y plane.

7. The aforementioned yaw alignment step is, The aforementioned anchor point is defined as the origin of rotation, Converting each of the points of the mesh object and the centroid of the appendage from a 3D location in the mesh object to a 2D location on the X-Y plane, Performing geometric calculations using the aforementioned anchor points and principal axes, thereby defining the center of the accessory organ, Aligning the vectors from the anchor point and the center of the appendage to the Y-axis, thereby aligning the mesh object to the Y-axis, The method according to claim 6, including the method described in claim 6.

8. The method according to any one of claims 1 to 7, wherein the orienting step includes determining the orientation of the mesh object using a plurality of different bounding algorithms, and then selecting the algorithm that is most accurate in providing the determined orientation.

9. The method according to claim 8, wherein the plurality of bounding algorithms are selected from the group of bounding algorithms including Euclidean, Wertzl, bouncing bubble, and minimum bounding box algorithms.

10. The method according to any one of claims 1 to 9, wherein the receiving step further includes receiving a user identifier (ID) together with the mesh object, and the storing step includes storing the user ID together with the 3D digital model of the accessory organ.

11. The method according to claim 10, wherein the storing step includes creating an anonymized data file containing the set of landscape points, their positions in 3D space, and the set of parameters, and storing it in a data store.

12. The method according to any one of claims 1 to 11, further comprising using a plurality of the anonymized data files, and creating and using an average 3D digital mold by calculating the average of the data in the anonymized data files.

13. The method according to claim 12, wherein the step of using the anonymized data files includes filtering, thereby selecting a subset having the characteristics of a predetermined set of features and determining a specific digital type that conforms to those characteristics.

14. The method according to claim 12 or 13, further comprising: obtaining the 3D digital type and the average 3D digital type; calculating the difference between the landscape points of the average 3D digital type and the landscape points of the 3D digital type; calculating a vector using the difference; and morphing the average type into a new 3D digital type adjusted using the vector.

15. The method according to any one of claims 1 to 14, further comprising scanning an appendage to create a 3D mesh object representing the appendage.

16. The method according to any one of claims 1 to 15, wherein the 3D mesh object represents a human foot or hand.

17. A system for creating three-dimensional (3D) digital models of appendages representing parts of the human body, used in the manufacture of custom-fitted wearable items, An input processor configured to receive a 3D mesh object representing the appendage, wherein the mesh object includes a plurality of vertices and edges defining the shape and size of the appendage. An object orientation engine configured to orient the mesh objects with multiple degrees of freedom so that they are aligned in a predetermined orientation, An object landscaper configured to identify the values ​​of each of a predetermined set of landscape points specific to the type of appendage from the mesh object, wherein each of the predetermined landscape points is configured to represent a specific geometric location of the appendage and is defined relative to a predetermined reference point in the mesh object when oriented in the predetermined orientation; A data extractor configured to create a set of parameters representing the mesh object, each parameter defined as a predetermined measurement between at least two different landscape points, A data store configured to store the set of parameters as the 3D digital model of the accessory organ, A system that includes this.

18. A method for creating a three-dimensional (3D) wearable item model used in the manufacture of custom-fit wearable items, The receiving of a 3D digital model of an appendage representing a part of the human body, wherein the 3D digital model includes a plurality of vertices defining the shape and size of the appendage, and has a central point and a principal axis. To provide a mesh cylinder containing a plurality of control points within the 3D digital mold, thereby aligning the center of the mesh cylinder with the center point and orienting the mesh cylinder along the main axis, The method involves generating fixed anchor seams that face each end of the aforementioned 3D digital mold, wherein each fixed anchor seam has a fixing location. The ends of the mesh cylinder are extended to each of the fixed anchor seams, Creating a soft anchor within the 3D digital mold, wherein the soft anchor has limited mobility and defines a set of vertices that can move on a circumferential point located between the two ends of the mesh cylinder. The cylinder mesh is repeatedly warped to minimize the tension between the opposing anchor seams and the soft anchors until the cylinder mesh and the 3D digital mold converge. Outputting the warped cylinder mesh as the 3D wearable item model, Methods that include...

19. The step of generating the fixed anchor seam is: Identifying the normals of all mesh surfaces of the 3D digital model, and selecting the points in the 3D digital model based on the angle of the normals with respect to the Z-axis, Identifying the edges of the 3D digital non-selected mesh surfaces, Assigning the identified edge to the opposing fixed anchor seam, The method according to claim 18, including the method described in claim 18.

20. The step of extending the end of the mesh cylinder is: Each fixed anchor seam is divided by the number of end control points located on the circumference of the end of the mesh cylinder closest to the fixed anchor seam, Calculate the vector between the end control points at each end of the mesh cylinder to the nearest fixed anchor seam, Using the aforementioned vector, move the end control point to the nearest fixed anchor seam, The method according to claim 18 or 19, including the method described in claim 18 or 19.

21. The method according to any one of claims 18 to 20, wherein each of the plurality of control points has a weight, the weight determines the allowable amount of movement of the associated control point, and the step of repeatedly warping the cylinder mesh includes moving each of the plurality of control points according to its weight.

22. The method according to claim 21, wherein the fixed anchor seam has a high weight that hinders movement, the soft anchor has a medium weight that allows limited movement, and the remaining control points of the mesh cylinder have a low weight that allows maximum movement.

23. The method according to any one of claims 18 to 22, further comprising generating parameters that control the manner in which the cylinder mesh repeatedly warps.

24. The method according to claim 23, wherein the step of generating the parameters includes generating pull parameters, the pull parameters determining the vector of each of the control points of the mesh cylinder toward the nearest of the plurality of vertices of the 3D digital model.

25. The method according to claim 23 or 24, wherein the step of generating the parameter comprises generating a vector tension parameter, the vector tension parameter determining the vector tension between the control points of the mesh cylinder necessary to pull all the control points together to ensure that the cylinder mesh maintains its structure.

26. The method according to any one of claims 23 to 25, wherein the step of generating the parameters includes generating spherical parameters, the spherical parameters including the mean vector of a specific control point determined from the value of the vector of the nearest neighbor control point up to the specific control point.

27. The method according to claim 26, dependent on claims 24 and 25, wherein the step of repeatedly warping the cylinder mesh includes generating the pull parameter, the vector tension parameter, and the sphere parameter in parallel.

28. The method according to any one of claims 23 to 27, wherein the step of repeatedly warping the cylinder mesh includes recalculating the parameters after each iteration.

29. The method according to any one of claims 18 to 28, wherein the step of repeatedly warping the cylinder mesh includes setting a convergence threshold and stopping the repeated warping step when the convergence threshold is reached.

30. The method according to any one of claims 18 to 28, wherein the step of repeatedly warping the cylinder mesh includes determining a predetermined number of repetitions and stopping the repeatedly warping step when the number of repetitions is reached.

31. The method according to any one of claims 18 to 30, wherein the 3D wearable article model includes a model of shoes or gloves.

32. A method for creating a three-dimensional (3D) wearable article model for use in manufacturing a custom-fit wearable article, comprising: a method for creating a three-dimensional (3D) digital mold according to any one of claims 1 to 16; and a method for creating a three-dimensional wearable article model for use in manufacturing a custom-fit wearable article according to any one of claims 18 to 31.

33. A system for creating 3D wearable garment models used in the manufacture of custom-fit wearable garments, A receiver for receiving a 3D digital model of an appendage representing a part of the human body, wherein the 3D digital model includes a plurality of vertices defining the shape and size of the appendage, and has a central point and a principal axis, and comprises the receiver. A cylinder generator is provided which a mesh cylinder including a plurality of control points is provided within the 3D digital mold, the center of the mesh cylinder is aligned with the center point, and the mesh cylinder is oriented along the main axis, A fixing anchor generator is configured to generate fixing anchor seams, each having a fixing location opposite to each end of the 3D digital type, and to extend both ends of the mesh cylinder to each of the fixing anchor seams, A soft anchor generator configured to create a soft anchor within the 3D digital mold, wherein the soft anchor has limited mobility and defines a set of vertices that can move on a circumferential point located between the two ends of the mesh cylinder, A physics engine configured to repeatedly warp the cylinder mesh to minimize the tension between the opposing anchor seams and the soft anchors until a convergence threshold is achieved, and to output the warped cylinder mesh as the 3D wearable item model, A system that includes this.

34. A method for creating a custom-fitted wearable item having a textured surface for printing, To provide a planar design environment, which enables the design of the textured surface of the custom-fit article within a planar UV map using UWV coordinate mapping. The application of a surface geometry to the planar UV map, wherein the surface geometry includes a plurality of control points, each having UVW coordinates. By using UVW coordinates, texture elements are specified in the UV map, Receiving a three-dimensional (3D) wearable item model of an appendage representing a part of the human body, Using the corresponding UVW locations on the 3D wearable item model, the texture elements created in the UV map are morphed onto the custom 3D wearable item model. The UV map and the 3D wearable item model are integrated into a unified mesh, Export the aforementioned unified mesh to an output file for printing, Methods that include...

35. A method for creating a custom-fit article according to claim 34, wherein the surface geometry includes a mesh, a Nurbs model, or a planar (polygon) model.

36. A method for creating a custom-fit article according to claim 34 or 35, wherein the texture element includes a region in the W coordinate direction where the thickness of the UV map changes.

37. A method for creating a custom-fit article according to any one of claims 34 to 36, wherein the planar UV map includes the sole of a shoe, and the 3D wearable article model is a model of a shoe.

38. A method for creating a custom-fit article according to any one of claims 34 to 37, wherein the morphing step includes wrapping the planar UV map around the 3D wearable article model so that two opposing edges of the planar UV map are brought together to form a single seam around the 3D wearable article model.

39. A method for creating a custom-fit article according to any one of claims 34 to 38, further comprising manufacturing the 3D wearable article by printing the output file with a 3D printer.

40. A method for creating a custom-fit article according to any one of claims 34 to 39, wherein the receiving step includes receiving a 3D wearable article created by a method for creating a 3D wearable article model according to any one of claims 18 to 32.

41. A method for creating a custom-fit article according to any one of claims 34 to 40, further comprising communicating with a robotic tool system and exporting the unified mesh to the robotic tool system.

42. A method for creating a custom-fit article according to any one of claims 34 to 41, wherein the morphing step includes passing the 3D object model and the planar UV map through voxels or implicit geometry fields to unify separate parts together.

43. A system for creating custom-fitted wearable items having a textured surface for printing, A design engine for providing a flat design environment, wherein the design engine is Using UVW coordinate mapping, the design of the textured surface of the custom-fitted article can be performed within a planar UV map. Applying a surface geometry to the planar UV map, wherein the surface geometry includes a plurality of control points, each having UVW coordinates, and The texture elements in the UV map are specified by using UVW coordinates. A design engine configured to perform the following: It is a projection engine, Receiving a 3D model of a wearable item representing an appendage of a part of the human body, Morphing the texture elements created in the UV map onto the custom 3D wearable item model using the corresponding UVW locations on the 3D wearable item model. Integrating the aforementioned UV map and the aforementioned 3D wearable item model into a unified mesh, Export the unified mesh to an output file for printing. A projection engine configured to perform the following: A system that includes this.

44. A method for generating one or more toolpaths to guide a robotic arm during the manufacturing of a custom-fitted wearable item, Converting the received 3D model of the worn item into a 2D UV coordinate map, Identifying the object boundaries of the wearable item from the aforementioned 2D UV map, To generate at least one boundary offset line offset from the object boundary as a toolpath line, Converting at least one of the toolpath lines into a 3D UV coordinate map, To generate a plurality of points along at least one boundary offset line, wherein the distance between adjacent points represents a step in the toolpath of the robot arm, For each of the aforementioned points, three orientation vectors are created: a first vector aligned in the direction normal to the point, a second vector aligned in the direction of movement between the points, and a third vector aligned toward the center of the toolpath to restrict rotation. In manufacturing the aforementioned custom-fitted wearable items, a code for controlling the movement of the robotic arm is generated from the vectors, A method for generating one or more toolpaths that include [specific elements].

45. Determining the state of the object boundary, If it is determined that the boundary is open, the detected boundary of the object is closed. A method for generating one or more toolpaths according to claim 44, further comprising:

46. A method for generating one or more toolpaths according to claim 44 or 45, comprising generating at least one boundary offset line as a plurality of boundary offset lines from the object boundary as a plurality of toolpaths.

47. A method for generating one or more toolpaths according to claim 46, wherein the step of generating the code includes generating code to move the head of the robot tool from a first toolpath among the plurality of toolpaths to a second adjacent toolpath among the plurality of toolpaths, the first toolpath.

48. A method for generating one or more toolpaths according to any one of claims 44 to 47, wherein the step of generating the code includes generating a code that deposits adhesive onto the wearable article at each point along the toolpath.

49. A method for generating one or more toolpaths according to any one of claims 44 to 48, wherein the step of generating the plurality of points includes determining the length of the at least one offset boundary line and dividing the length of the at least one boundary offset into a predetermined number of equal-length sections, each between adjacent points.

50. A method for generating one or more toolpaths according to any one of claims 44 to 48, wherein the step of generating the plurality of points includes creating the plurality of points along the at least one boundary line, the points being spaced apart by a predetermined distance.

51. A method for generating one or more toolpaths according to any one of claims 44 to 50, ensuring that each point in the at least one toolpath lies on the surface of a 3D UV map.

52. A method for generating one or more toolpaths according to claim 51, wherein the assurance step includes checking that each point in the at least one toolpath is on the surface of the 3D UV map, and pulling each point that is not on the surface of the 3D UV map onto the surface.

53. A method for generating one or more toolpaths according to any one of claims 44 to 52, further comprising assigning different weights to the vectors so as to control the movement of the robot tool head in different directions during use.

54. A method for generating one or more toolpaths according to any one of claims 44 to 53, wherein the step of generating the code includes generating the code in a computer numerical control (CNC) programming language.

55. A method for generating one or more toolpaths according to claim 54, wherein the step of generating the code includes generating G-code.

56. A method for generating one or more toolpaths according to claim 54 or 55, wherein the step of generating the code includes calculating the rotation angle of the robot toolhead based on the vector.

57. A method for generating one or more toolpaths according to any one of claims 44 to 56, wherein the generated code is incorporated into the 3D model of the wearable item.

58. A method for generating one or more toolpaths according to any one of claims 44 to 57, further comprising determining an offset parameter that specifies the size of the offset, and applying the offset parameter to generate the at least one boundary offset line.

59. A system for generating one or more toolpaths to guide a robotic arm during the manufacturing of custom-fit wearable items, A translator that converts a received 3D model of a worn item into a 2D UV map, A boundary generator configured to identify the object boundary of the wearable item from the 2D UV map and generate at least one boundary offset line offset from the object boundary as a toolpath line, The translator is configured to convert the at least one toolpath line into a 3D UV map. The boundary generator is configured to generate a plurality of points along the at least one boundary offset line, and the distance between adjacent points represents a step in the toolpath of the robot arm, A vector creator is configured to create three orientation vectors for each of the aforementioned multiple points: a first vector aligned in the direction normal to the point, a second vector aligned in the direction of movement between the points, and a third vector aligned toward the center of the toolpath to restrict rotation. A code generator configured to generate code from the aforementioned vectors for controlling the movement of the robotic arm when manufacturing the custom-fitted wearable item, A system that includes this.