Method for fabricating an article from a three-dimensional model - Patents.com

JP2025515656A5Pending Publication Date: 2026-05-12GLOBAL APPAREL PARTNERS INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
GLOBAL APPAREL PARTNERS INC
Filing Date
2023-05-03
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Customized article production using computer-controlled machines requires significant manual labor and is labor-intensive, time-consuming, often taking weeks or months, and involves repetitive, poorly documented processes that are difficult to rework.

Method used

A method to convert a 3D mesh associated with a 3D model of an article into instructions for a computer-controlled flatbed knitting machine, utilizing streamlines, isolines, and quantization points to generate a 2D knitting map, which is then edited and converted into machine instructions, incorporating vertex attraction and diffusion for improved 3D shaping.

Benefits of technology

Automates the production of customized knitwear, reducing manual labor and production time, allowing for precise control over article design and fit, and enabling efficient conversion of 3D models into machine-readable instructions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for the fabrication of an article, particularly a knitted article, using a computer-controlled machine. A 3D model (500) of the article is characterized by a 3D polygonal mesh that defines the surface of the 3D model (500). Streamlines (800) are drawn on the 3D model (500) and used to define a set of isolines (900) on the surface represented by the 3D polygonal mesh. The isolines (900) are quantized into equidistant points (1000) along their respective lengths. Paths (1200) are defined by connecting the quantized points (1000) of the isolines (900) based on knitting rules to produce a 2D knitting map (1300, 1400) that includes vertices. Vertex attraction can be performed on a first portion of the 2D knitting map (1300, 1400) by reducing the spatial distance between each of the vertices. The 2D knitting maps (1300, 1400) are then converted into knitting instructions for a computer controlled knitting machine.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Related Applications This application claims priority to U.S. Provisional Application No. 63 / 364,158, filed May 4, 2022.

[0002] The present invention relates to the production of an article using a computer-controlled machine from instructions for such production that are automatically generated from a three-dimensional ("3D") model of said article, and in particular to a method for converting a 3D mesh associated with a 3D model of an article into instructions for a computer-controlled flatbed knitting machine. [Background technology]

[0003] In many industries, customizing an article for manufacture often requires a repetitive, sometimes poorly documented, construction process. For example, manufacturing custom footwear can be a labor-intensive process that involves carefully taking measurements of an individual's foot, creating a pattern and last for each foot, first on a temporary medium such as paper, and then on a more permanent medium such as beechwood, creating one or more prototypes from the last in inexpensive leather or other materials, fitting the prototypes and revising the last based on any necessary changes, and finally, creating the final footwear product from hand-selected leather or other materials based on the finalized last. While some of these steps, such as measuring an individual's foot, have led to the application of modern technology such as laser scanning, others, such as material selection, cutting, and fitting onto the last, still rely on the care and skill of knowledgeable craftsmen deeply influenced by the traditions of their forebears. Many of the steps involved in such manufacturing are minimally documented, if at all, in terms of their procedures. As a result, the entire manufacturing process can take weeks or months (or even longer for some materials) and is exceptionally difficult to rework, which can be somewhat opaque and disappointing for customers requesting customized work.

[0004] Despite the advent and adoption of computer-controlled manufacturing equipment in many industries, there are still cases where the production of customized articles with these machines still requires a significant amount of manual labor. For example, while computer-controlled knitting machines have been available for many years, producing customized knit articles using such machines still requires manual pattern creation, often by highly specialized knitwear engineers, and manual conversion of such patterns into knitting instructions for such machines (e.g., using commercially available software). As a result, producing custom knitwear and other articles can take weeks or months, and the process often requires iterations and rework for modifications to the article, such as using different yarns or production on additional or different target knitting machines.

[0005] GB2596868A to Adam et al. describes a digital representation of a body part on which a compression cuff is to be worn. A desired pressure configuration to be applied by the compression cuff is determined. Tracks around the model are defined. A set of data points for each track are selected. A spline for each set of data points and a circumference value for each spline are calculated. The pressure to be applied by each track is determined, and then the material for knitting and the number of needles per track are determined based on the required track pressure, the loading properties of the material, and the circumference value of the associated spline. The compression cuff is knitted according to the determined pattern.

[0006] U.S. Patent No. 9,681,694(B2) to Ng et al. describes fully fashioned knitwear made by using a method for generation of contour fit three-dimensional (3D) fully fashion knitwear patterns based on an individual's 3D body data. The method includes the steps of digitizing an individual to create a 3D body data cloud, automatically recognizing body landmarks, extracting body measurements, calculating garment pattern blocks of the individual's digitized surface according to the extracted body measurements including geodesic (shortest distance) measurements, converting the garment blocks into a 3D weft knitwear pattern by introducing horizontal and / or vertical darts, and replacing the modified knitwear pattern with a knitting diagram and / or instructions that can then be manually transferred to a knitwear CAD system to control an automatic knitting machine to knit the required knitwear.

[0007] U.S. Patent No. 10,626,530 (B2) to Terai et al. describes storing initial pattern data and gauge data, converting the pattern data to knitting data based on the gauge data, and test knitting a knitted product. The size of the product to be test knitted is compared to the size indicated by the initial pattern data, and the pattern data or knitting data is corrected. The amount of correction to the pattern data or knitting data for two sizes is stored, and an interpolation or extrapolation is performed based on the stored amount of correction to correct the pattern data or knitting data for the other size. Summary of the Invention

[0008] According to one embodiment of the present invention, a 3D model of an article may be characterized by a 3D polygonal mesh that defines a surface of the 3D model. Streamlines may be drawn on the 3D model and used to define a set of isolines on the surface represented by the 3D polygonal mesh. The isolines may be quantized to equidistant points along their respective lengths, and cutlines may be defined that intersect each of the isolines. Courses may be defined by connecting the quantized points of the isolines based on knitting rules to produce a two-dimensional (2D) knitting map that includes vertices.

[0009] In one embodiment, apex attraction may be performed on the first portion of the 2D knitting map by reducing the spatial distance between respective ones of the vertices, causing the vertices to form smoother edges of the 2D knitting map. The weight value received from the user may be used to adjust the amount of apex attraction performed on the first portion of the 2D knitting map.

[0010] In one embodiment, apex diffusion may be performed on a second portion of the 2D knitting map that is separate from the first portion by increasing the spatial distance between respective ones of the vertices in the second portion, causing the vertices to form less smooth edges of the 2D knitting map. A weight value received from a user may be used to adjust the amount of apex diffusion performed on the second portion of the 2D knitting map.

[0011] These and other embodiments of the present invention are described in greater detail in the description that follows.

[0012] The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings. [Brief description of the drawings]

[0013] [Figure 1]FIG. 1 is an illustration of a method for fabricating an article using a computer-controlled machine according to one embodiment of the present invention. [Diagram 2] FIG. 1 is a diagram of a method for producing a knitted article using a computer-controlled knitting machine according to one embodiment of the present invention. [Diagram 3] 3A-3C are diagrams illustrating further details regarding a process for producing a knitted article using the computer-controlled knitting machine illustrated in FIG. 2 according to one embodiment of the present invention. [Figure 4] FIG. 1 is a diagram of an example networked computer system for executing computer-executable instructions for converting a 3D mesh associated with a 3D model of an article into instructions for a computer-controlled machine, including a flatbed knitting machine, according to one embodiment of the present invention. [Diagram 5] FIG. 2 is an example of a 3D model of an article for generating instructions for a computer-controlled flatbed knitting machine, according to one embodiment of the present invention. [Figure 6] FIG. 6 is an example of a UV map for the 3D model of the article shown in FIG. [Figure 7] FIG. 6 is an example of a 3D model of the article shown in FIG. 5 with a texture map applied. [Figure 8] FIG. 6 is an example of a 3D model of the article shown in FIG. 5 with flow lines defined, according to one embodiment of the present invention. [Figure 9] 9 is a plot of contour lines onto the surface of a 3D model of the article shown in FIG. 5 based on the flow lines illustrated in FIG. 8, according to one embodiment of the present invention. [Figure 10] FIG. 2 is a diagram of quantization of isolines with equidistant points along their respective lengths according to one embodiment of the present invention. [Figure 11] FIG. 1 illustrates automatic generation of cut lines according to one embodiment of the present invention. [Figure 12] FIG. 1 is an example of automated path generation for a 2D knitting map, according to one embodiment of the present invention. [Figure 13a]FIG. 6 is an example of a 2D knitting map (with a texture map illustrated within the knitting region) that was automatically generated from the 3D model illustrated in FIG. 5, according to one embodiment of the present invention. [Figure 13b] FIG. 6 is an example of a 2D knitting map (with the rows of the 2D knitting map illustrated within the knitting area) automatically generated from the 3D model illustrated in FIG. 5, according to one embodiment of the present invention. [Figure 14] FIG. 13 is another example of a 2D knitting map, according to one embodiment of the present invention. [Figure 15] FIG. 15 is a diagram of a 3D stitched mesh, a portion of which corresponds to a portion of the 2D knitting map depicted in FIG. 14, in accordance with one embodiment of the present invention. [Figure 16] FIG. 15 is a diagram of a resulting 2D knitting map after a vertex attraction routine has been performed on the 2D knitting map of FIG. 14, in accordance with one embodiment of the present invention. [Figure 17] FIG. 17 is a diagram of a 3D stitched mesh, a portion of which corresponds to a portion of the 2D knitting map of FIG. 16, in accordance with one embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] The present invention addresses challenges such as those described above in the fabrication of articles using computer-controlled machines and provides a method for such fabrication from instructions automatically generated from a 3D model of said article. In one embodiment, the present invention provides a method for converting a 3D mesh associated with a 3D model of an article into instructions for a computer-controlled flatbed knitting machine.

[0015] As will become apparent in the following discussion of embodiments of the invention, the various operations referred to herein are machine operations. Useful machines for performing the operations of the invention include both target fabrication machines that will produce the desired article to be built, and digital computer systems or other similar devices. To some extent, the invention involves generating instructions for operating the target fabrication machines, i.e., for controlling the operation of the target fabrication machines, to produce the desired results. These instructions that will cause the target fabrication machines to produce the desired results are generated in part using one or more programmed digital computer systems, which may in some cases intercommunicate with each other. For example, in one embodiment of the invention, a first computer system, called the "client," is used to build and / or customize a 3D model of the article to be fabricated, which is then passed to a second computer system, called the "server" or "host," where the 3D model is converted into a 2D bitmap or other representation suitable for substitution into instructions for the target fabrication machine. In other cases, a single digital computer system may be used for both aspects of the operation, for example, in a service-as-a-platform based approach where the client computer system is used only as a visualization and instruction instrument to observe, direct, and control the processes running on the server.

[0016] 4 illustrates an example of the architecture just described. In this configuration, computer system 400 is programmed via stored processor-executable instructions to interact with server 492 in generating instructions for operating a target fabrication machine, i.e., for controlling the operation of the target fabrication machine, to produce a desired result according to the present invention. In one embodiment, computer system 400 is programmed to act as a client to server 492, allowing a user to build and / or customize a 3D model of an article to be fabricated, which is then passed to server 492, where the 3D model is converted into a 2D bitmap or other representation suitable for substitution into instructions for the target fabrication machine. In another embodiment, server 492 is used by computer system 400 for both aspects of operation (e.g., as a service-as-a-platform), allowing a user to interact with programs running on server 492 via a web browser or other client application.

[0017] As illustrated, computer system 400 generally includes a communication mechanism, such as a bus 410, for passing information (e.g., data and / or instructions) between various components of the system, including one or more processors 402 for processing the data and instructions. Processor 402 performs operations on data as specified by stored computer programs on computer system 400, such as stored computer programs for running a web browser and / or for building and / or customizing 3D models of articles to be fabricated and visualizing the results of server-based operations to be described in more detail below. The stored computer programs for computer system 400 and server 492 may be written in any convenient computer programming language and then compiled into native instructions for the processors resident on the respective machines.

[0018] The computer system 400 also includes a memory 404, such as a random access memory (RAM) or any other dynamic storage device, coupled to the bus 410. The memory 404 stores information, including processor-executable instructions, data, and temporary results for performing operations described herein. The computer system 400 also includes a read-only memory (ROM) 406 or any other static storage device coupled to the bus 410 for storing static information, including processor-executable instructions, i.e., information that is not changed by the computer system 400 during operation of the computer system 400. A non-volatile (persistent) storage device 408, such as a magnetic disk, optical disk, solid-state disk, or similar device, is also coupled to the bus 410 for storing information, including processor-executable instructions, that persists even when the computer system 400 is turned off. The memory 404, the ROM 406, and the storage device 408 are examples of non-transitory "computer-readable media."

[0019] Computer system 400 may also include human interface elements, such as a keyboard 412, a display 414, and a cursor control device (e.g., a mouse or trackpad) 416, each of which is coupled to bus 410. These elements allow a human user to interact with computer system 400 to control the operation of computer system 400. For example, these human interface elements may be used to control the position of a cursor on display 414 and to issue commands associated with graphical elements presented on display 414. In the illustrated example for computer system 400, special purpose hardware, such as an application specific integrated circuit (ASIC) 420, is coupled to bus 410 and may be configured to perform operations not performed by processor 402; for example, ASIC 420 may be a graphics accelerator unit for generating images for display 414.

[0020] To facilitate communication with external devices, computer system 400 also includes a communication interface 470 coupled to bus 410. Communication interface 470 provides bidirectional communication with remote computer systems, such as server 492 and host 482, via wired or wireless network link 478 communicatively connected to a local network 480 and ultimately to the Internet 490 through an Internet service provider 484. Server 492 is connected to the Internet 490 and hosts processes that provide services in response to information received over the Internet. For example, server 492 may host some or all of the processes that provide a user with the ability to build and / or customize a 3D model of an article to be fabricated, which is then converted into a 2D bitmap or other representation suitable for substitution into instructions for a target fabrication machine, according to an embodiment of the present invention. It is envisioned that the components of the overall system may be deployed in various configurations within one or more computer systems (e.g., computer system 400, host 482, and / or server 492).

[0021] Now referring to FIG. 1, a process 100 for the fabrication of an article using a computer-controlled machine is illustrated at a high level, according to one embodiment of the present invention. In step 102, a user interacts with a computer system to create and customize a 3D model of the article to be fabricated. In the following, an example of an article to be fabricated on a flatbed knitting machine is discussed in detail. In general, the workflow illustrated in FIG. 1 is nevertheless applicable to any article to be manufactured by one or more computer-controlled machines for which computer-implemented instructions can be written. The present invention provides a method for the automatic creation of these instructions from a 3D model created and / or customized by a user. The 3D model may be fully developed by the user, for example, using a conventional 3D modeling application running on a local computer system or on a server accessed by the local computer system. Such modeling programs generally allow the user to develop the model manually, algorithmically, and / or by scanning real-world objects and importing the scan data. The model may also be recalled from a library and customized for a particular session. Regardless of how the model is created, a 3D model represents a physical solid as a collection of points in 3D space connected by various geometric "primitives", such as triangles, quadrilaterals, etc. The primitives define the surface of the solid, and are usually represented by its intersections and edges.

[0022] The surface of the 3D model may also be defined by a texture map, which includes details such as color and texture. Generally, texture maps are 2D structures, such as bitmap images, although procedural textures may be used as well. Often, in the production of custom articles, the user will create custom texture maps or "UV maps" as part of the modeling process that form part of the bespoke nature of the article to be produced. By "UV map" is meant a 2D image of a pattern or other texture that will be projected onto the surface of the 3D model. The "UV" in "UV map" refers to the two-dimensional nature of the process, and by convention, "X", "Y", and "Z" are used to represent the orthogonal axes of a 3D model, so the letters "U" and "V" represent the orthogonal axes of a 2D texture. UV maps allow for the application of designs, logos, patterns, and other features that will be produced as part of the finished article to be built.

[0023] Once the 3D model with its associated texture map is ready, the 3D model is passed to a flattening process (step 104). The flattening process creates a 2D representation of the 3D model with its applied customizations (e.g., textures). The resulting 2D representation is in the form of a bitmap and can serve as a basis for generating machine instructions for the fabrication of the article represented by the 3D model. Nevertheless, before these instructions are generated, the user is given the opportunity to review and edit the 2D bitmap (step 106). Although optional, this step is preferably included in the process 100 since the conversion of the 3D model to a 2D representation of the model can result in artifacts that can be edited / corrected at the individual pixel level. Any corrections made in this way can thus be reviewed in the form of the 2D bitmap and / or in the form of a revised 3D model. That is, the 2D bitmap can be represented as a 3D model in the same way that the original scan of the article can be visualized as such. Alternatively, the 2D bitmap may be applied as a texture map to the original 3D model for viewing. Thus, the above steps 102-106 may essentially be repeated (the "No" branch of step 108), and the user may be given the opportunity to carefully refine his or her design until satisfied.

[0024] If so satisfied ("Yes" branch of step 108), the 2D bitmap is used to generate manufacturing instructions for the target manufacturing machine (step 110). For example, in the case of a machine that operates in a raster-like fashion, the information provided in the 2D bitmap may be replaced with cutting, stitching, knitting, welding, gluing, fastening, binding, folding, or other instructions for the manufacturing machine. Each pixel of the 2D bitmap may represent, for example, cutting, stitching, joining, applying glue or other fasteners, folding, or another operation to be performed by the manufacturing machine. The replacement with machine instructions will depend on the nature of the target manufacturing machine. For example, a single pixel may be replaced with one instruction, or even two or more instructions. If a cutting machine is included, for example, the presence or absence of information in a pixel of the bitmap may determine the creation of a cutting instruction or an instruction not to cut the workpiece at the corresponding location. In another example, the information contained in a pixel may define the nature of the stitch to be made and the color of the weaving or sewing thread to be used. Other target production machines will have their own required instruction set, and the 2D bitmap may be used to allocate instructions from this instruction set to spatial locations in or on the workpiece representing the article to be manufactured.

[0025] FIG. 2 illustrates an example of a process 200 for the production of an article using a computer-controlled machine as highlighted in FIG. 1, as adapted for the production of a knitted article using a computer-controlled knitting machine, according to one embodiment of the present invention. Knitting is a method of constructing an article by intertwining a series of loops of one or more yarns. In step 202, a user can interact with a computer system, such as computer system 400 discussed above, to create and customize a 3D model of the knitted article to be produced. As explained above, the 3D model may be developed by the user manually, algorithmically, and / or by scanning a real-world object and importing the scan data, for example, using a conventional 3D modeling application running on a local computer system or on a server accessed by the local computer system. Alternatively, the 3D model may be imported from a library and, optionally, customized for a particular session. The surface of the 3D model may be defined by a texture map that specifies a design, logo, or other emphasis to be included in the knitted article.

[0026] In step 204, the 3D model with its associated texture map may be passed to a flattening process. The flattening process may create a 2D knitting map for the article to be produced based on the 3D model with its applied customization (e.g., texture). The 2D knitting map serves as a basis for generating knitting machine instructions for the production of the knitted article represented by the 3D model. As discussed above, the user may be given the opportunity to review and edit the 2D knitting map (step 206), and any corrections can then be reviewed in the form of the 2D knitting map and / or in the form of the revised 3D model. Once the user is satisfied (the "Yes" branch of step 208), the 2D knitting map is used to generate knitting instructions for the target knitting machine (step 210). For example, the 2D knitting map may be considered as a checkerboard-like array in which each square (or pixel) represents a loop. The squares may be coded (e.g., by color or other indicia) to provide information about the required machining operations, such as moving a loop, increasing or deactivating a knitting machine needle, which bed of the knitting machine the needle is on, etc. Commercially available knitting machine software that can be executed on a computer system hosting the 2D knitting map is available to convert such 2D knitting maps into g-code for the target knitting machine. For example, KnitPaint, produced by Shima Seiki® of Wakayama, Japan, produces g-code for Shima Seiki® knitting machines from pixel-level knitting maps. Additional parameters, such as tension settings, needle gauge, yarn type (elasticity), etc., may need to be provided for the knitting machine software to fit the 2D knitting map into a g-code to achieve the desired fit of the knitted article.

[0027] Now referring to FIG. 3, an example process 300 for converting a 3D mesh associated with a 3D model of an article into instructions for a computer-controlled flatbed knitting machine is illustrated, according to an embodiment of the present invention. By way of background, a flatbed knitting machine is a flat knitting machine with needles arranged in a straight line on a flat plate called a bed. As mentioned above, knitting involves intertwining a series of loops of one or more yarns, and flat knitting is a form of knitting in which the loops are formed horizontally by adjacent needles. Flatbed knitting machines can have a single bed of needles or two beds facing each other, and are commonly used to produce a variety of articles, such as sweaters, scarves, and even footwear.

[0028] Computer-controlled knitting machines, including flatbed knitting machines, are capable of producing knitted articles of 3D geometry. To create such articles, a knitting pattern is required that represents the article to be knitted as a series of 2D line-by-line instructions. Popescu et al. describe an approach for creating knitting patterns from a 3D mesh. Popescu et al. "Automated generation of knit patterns for non-developable surfaces." Humanizing Digital Reality: Design Modelling Symposium Paris 2017. Springer Singapore, 2018. In short, taking into account the 3D mesh, a user-defined knitting direction is generated, as well as the desired loop parameters, tracks and so-called short rows for the target knitting machine. In knitting, a wale is a row of vertically running loops that correspond to the warp threads of a woven fabric, and a track is a horizontal row of loops that correspond to the weft threads. Short rows, also known as partial or turning rows, are used to shape (e.g., to fit curved areas such as shoulders and to convey design elements such as offset stripes). In Popescu et al.'s method, paths are sampled at defined loop widths for the target machine to create a final topology, which is then turned into a 2D knitting pattern in the form of a square representing the loops per path.

[0029] Narayanan et al. "Automatic machine knitting of 3D meshes." ACM Transactions on Graphics (TOG) 37.3 (2018) described a computational approach to convert 3D meshes created by traditional modeling programs into instructions for a computer-controlled circular knitting machine. The described method requires as input an oriented, manifold 3D triangle mesh with two or more boundaries and a monotonic knitting time function specified by a scalar value at each intersection of the mesh. Knitting machine instructions roughly corresponding to the mesh are developed in three main steps: first, remeshing is performed to create a specially organized knitting graph on the 3D surface; second, tracing creates knitting instructions from the graph; and third, the knitting instructions are scheduled to needle locations on the knitting machine. The approach recognizes that knitted objects have an inherent row-column structure, where rows arise from yarn-wise connections and columns arise from loop-wise connections. The remeshing phase produces a directed graph to derive the row-column structure of the final knitted object, with each node in the graph representing two knit loops in the pattern to be produced.

[0030] The present invention provides an automated method for converting a 3D mesh into instructions for a computer-controlled flatbed knitting machine. In one embodiment of the present invention, pattern customization and flattening are merged into a single workflow, as depicted in FIG. 3. The process 300 begins in step 302 by receiving as input a 3D model of an article (e.g., in a computer system such as computer system 400 described above). As previously described, the 3D model may be retrieved from a library or may be generated by a user manually, algorithmically, or by conversion of scan data obtained through scanning of a physical world article. For example, the 3D model may represent a scanned piece of furniture, or even a scanned individual's body, or parts thereof. FIG. 5 illustrates an example of a 3D model 500 of an article. The model based on the scan data may be supplemented or supplemented through user manipulation of the model to remove artifacts of the scanning process and / or to perform desired customization of shape, appearance, etc.

[0031] Regardless of how the 3D model is created, the 3D model is preferably characterized by a 3D polygonal mesh that defines the surface of the article represented by the 3D model. As mentioned above, this surface may be further defined by texture mapping (step 304). For example, details such as color, pattern, shape, etc. may be applied to customize the 3D model. This texture mapping may be performed using conventional 3D modeling tools, such as a personal computer or workstation running a 3D modeling program that allows the described customization and visualization of the model. For example, in one embodiment of the present invention, a UV map for the model may be provided or created and applied to the surface of the 3D model. Other processes can be used instead of UV mapping to add patterns or textures to the 3D model. Customizing the 3D model through application of surface textures or otherwise allows a user to create custom patterns, designs, logos, etc. FIG. 6 illustrates an example of a UV map 600 specifying a custom pattern for the 3D model 500 shown in FIG. 5, and FIG. 7 shows a textured 3D model 700 obtained by applying the UV map 600 to the 3D model 500.

[0032] Returning to FIG. 3, in step 306, one or more streamlines or curves are defined on the 3D model. In this context, a streamline may be considered to be a line drawn on the surface of the 3D model that loops back on itself. The streamline will serve as an origin for calculating isolines over the surface of the 3D model that will subsequently constrain and guide the resulting knitting direction. FIG. 8 illustrates an example of a streamline 800 drawn on a textured 3D model 700. In general, any line that encircles the circumference of the 3D model may be used as a streamline, but in some embodiments of the present invention, the streamline is chosen such that it is approximately above the center of the article as represented by the 3D model. In other cases, the streamline may be drawn closer to one end of the article represented by the 3D model than another end of the article represented by the 3D model. The streamline may also be drawn horizontally, vertically, or diagonally to the longitudinal or transverse axis of the 3D model. The streamlines do not need to be symmetrical about any axis of rotation of the 3D model, although in some instances the computational speed of various processes involved in the method may be improved if the streamlines are so drawn.

[0033] The same 3D modeling tools used to create and / or customize the 3D model may be used to define (e.g., draw) flow lines on the model, and the resulting computer file representing the customized model may be packaged and provided to a server-based flattening tool (step 308), e.g., as a .glb file. In other cases, the model creation or import and subsequent customization may be performed on a remote (e.g., cloud-based) system accessed by a client computer or workstation over a computer network, or a network of networks. This service-as-a-platform-based approach allows the customization and subsequent flattening to be performed by the same cloud- or network-based system under the direction of a remote client where the user is.

[0034] In step 310, the flattening process, whether performed on a remote server (from the user's perspective) or on a local computer system, receives an input texture-mapped 3D model including streamlines. Using the streamlines as the origin, the flattening approach begins by defining a set of isolines on the surface represented by the 3D mesh (step 312). In this context, isolines are geodesic lines equally spaced from the streamlines and from each other. In some embodiments of the invention, the isolines are determined according to the so-called "Heat Method" for computing geodesic distances, as described by Crane et al., "Geodesics in Heat: A New Approach to Computing Distance Based on Heat Flow," ACM Transactions on Graphics, Vol. 32, No. 5 (Sep. 2013). In other embodiments, other approaches for defining isolines may be used, such as, for example, Sethian's Fast Marching Method, window propagation, etc. FIG. 9 illustrates an example of contour lines 900 defined for the 3D model 500.

[0035] 10, once the contours 900 are defined, quantization points 1000 may be determined along each of the contours (step 314). That is, each of the contours 900 is quantized into equidistant points 1000 along its respective length. These quantization points 1000 are ordered as neighbors.

[0036] Once the quantization points are defined, one or more cut lines can be automatically defined on the surface (step 316). The cut lines, such as the cut lines 1100 shown in FIG. 11, represent stitches in the finished knitted article and will be lines that cross every isoline but only once per isoline for the 3D model (textured or not). In one embodiment, the cut lines are determined by first ordering the isolines and indexing the quantization points into groups that match the isolines, taking into account any nested or branching isolines. Next, the isolines that do not branch (isolines that do not contain other isolines within them) are flagged and one of the isolines that does not branch is selected as the starting point. One of the quantization points that lie along this selected isoline is chosen as the first point in the cutting path. This can be any of the quantization points that lie on the selected isoline and will be defined as the "current point", with each isoline being the "current isoline". Once the current point is selected, for each of the isolines adjacent to the current isoline, the closest quantized point to the current point is determined, and a cut path is drawn to connect the current point to the closest quantized point in the adjacent isoline. This is repeated, treating the adjacent isoline as the new current isoline and the corresponding point of these isolines now connected by the cut path as the current point, until all of the isolines of the 3D model have been crossed. When the drawing operation is completed, the cut path will have an end point at each of the isolines that do not branch. Optionally, the total length of the cut path may be minimized by iteratively pushing the connected points towards any branch points in the path to reduce the total cut path length. In some cases, the minimized length cut path for a given 3D model may result in an optimal cut path.

[0037] Next, in the overall flattening process, paths are generated by connecting the quantized points 1000 of the contour line 900 based on the knitting rules (step 318). FIG. 12 illustrates an example of a path 1200 generated by connecting the quantized points 1000 of the contour line 900. As mentioned above, the knitting rules are to some extent defined by the target knitting machine for which the pattern is being generated. Applying the knitting rules essentially allows for the displacement of the knitting machine's row-by-row actions, guiding the goring (widening) and shaping. A flattened, i.e., 2D, knitting map, which can be considered as a bitmap, is then obtained by defining the respective locations of each stitch (step 320), and the texture pattern applied to the original 3D model (step 322) may be transferred to the 2D bitmap.

[0038] 13a and 13b illustrate an example of a 2D knitting map 1300 produced by the above-described process. As shown in FIG. 13a and 13b, the 2D knitting map 1300 can include a knitting area 1302 and a gusset (or forming) area 1304. The knitting instructions generated from the 2D knitting map 1300 can cause the knitting machine to knit one or more stitches in the knitting area 1302, but not in the gusset area 1304. When knitting is performed, the gusset area 1304 can be collapsed (e.g., vertically) until the knitting areas 1302 bordering the gusset area 1304 contact each other, resulting in partial shaping of the 3D knitted article. Other shaping of the 3D knitted article can occur when corresponding edges of the knitted fabric are secured (e.g., sewn, buttoned, etc.) along one or more cut lines. In FIG. 13 a , the texture pattern from FIG. 7 is depicted within a knitting area 1302 , while in FIG. 13 b , a row 1300 of a 2D knitting map is depicted within the knitting area 1302 .

[0039] 13a, it should be understood that the knitting machine may be programmed to use a yarn having a first property (e.g., color, elasticity, etc.) when knitting stitches in the black region 1306a of the knitting region 1302, and to use a yarn having a second property (e.g., color, elasticity, etc.) when knitting stitches in the plaid region 1306b of the knitting region 1302. It should be understood that the use of black and plaid regions is merely an example, and the same information may be visually represented using two different colors, two different patterns, etc.

[0040] In FIG. 13b, rows 1308a, 1308b of the 2D knitting map 1300 may correspond to tracks of the knitted article. Due to the close logical correspondence between the rows of the 2D knitting map 1300 and the tracks of the knitted article, the rows 1308a, 1308b of the 2D knitting map 1300 may be referred to as "tracks" of the 2D knitting map 1300. For ease of depiction, adjacent tracks 1308a, 1308b of the 2D knitting map 1300 are depicted in alternating grayscale tones. The track 1308a depicted in one of the grayscale tones (e.g., black) may represent a track knitted in a first direction (e.g., right), and the track 1308b depicted in the other grayscale tones (e.g., white) may represent a track knitted in a second direction opposite to the first direction (e.g., left). It should be understood that the use of grayscale gradations to represent adjacent rows / paths in the 2D knitting map 1300 is merely an example, and the same information may be visually represented using two different colors, two different patterns, etc.

[0041] This flattening process involves constructing quads / triangles between isolines by setting the locations of the vertices of the quads / triangles at the locations defined by the iso-distance points on the isolines. Isolines require fast geodesic distance calculations that can typically only be performed quickly from intersection to intersection. Since this is only intersection to intersection, triangulating the original mesh again - to include (as new intersections) all intersections where the input path creates existing edges and intersections - allows for accurate calculation of distances from the path.

[0042] Liu et al., “Knitting 4D Garments with Elasticity Controlled for Body Motion,” ACM Transactions on Graphics, Vol. 40, No. 4 (Aug. 2021) describes an approach for converting a 3D model into a flattened bitmap by assigning corresponding ridge and track indices to each quad / triangle of the 3D mesh. The process envisions each quad as a stitch, and the stitches are mapped to be “joined” to each other, thereby defining the ridges and tracks. The present invention takes a slightly different approach. Unlike Liu et al., embodiments of the present invention employ two bed jerseys with elastic connections. This allows for a framework with minimal stretch and distortion. Furthermore, while Liu et al. suggest that vertex diffusion improves 3D shaping, the inventors have determined that this is true only in areas of relatively constant (i.e., Gaussian) curvature. Flat regions of an object should not have any diffused vertices. Each spread vertex results in a small amount of gusseting that results in a 3D convexity in the final knitted article. To accommodate these demands, the present invention employs vertex pulling, which pulls the vertices together into a relatively smooth gusset edge that, when relief lines are added, results in no holes and is nicely pulled up by the knitting machine. Relief lines may be added automatically or manually. This is used in conjunction with vertex spreading.

[0043] In one embodiment, both vertex diffusion and vertex attraction to handle areas of constant curvature are then employed within the same mesh and even within the same ridge. The vertex diffusion and vertex attraction functions with weights allow the user to adjust how much diffusion some areas will receive and how much attraction other areas will receive. This provides improved 3D shaping over 3D processed tessellation to the initial output of ridges and tracks. Additionally, embodiments of the present invention can add point relaxation, which may also provide a better knit by tessellating more square shaped stitch mesh elements instead of parallelogram shaped elements.

[0044] Optionally, a new 3D mesh may be generated from the 2D knitting map (step 324). Providing the new 3D mesh allows for iteration by the user; that is, the new 3D mesh can be passed back to the original 3D modeling program (e.g., which may be running on the user's local computer or on a server as a service-as-a-platform model) (step 326), where it can be visualized (step 328), reviewed, and, if necessary, edited (step 330), and, if necessary, further edited ("No" branch of step 332). Visualization may be performed using a shader application or another visualization routine. For example, the shader may receive the new 3D mesh and texture defined by the 2D context (fill map) and user-specified colors to indicate which areas of the 3D mesh should display which knit structure / yarn colors. At the pixel / texel level, the shader can determine what the current structure should be (the knit structure may be obtained from a library and / or user specified) and then draw the diffuse and normal maps using the determined current structure. The knit structure may be defined using a quadratic Bézier curve and, as an optimization, Cardano's root finding method may be used to derive the underlying curve structure. After defining the underlying curve structure, the shader can induce a signed distance field and induce a gradient from the midpoint of the line to give the curve an adjustable / variable thickness. Using the gradient strength at any point on the line, the curvature / slope value of the knit thread can then be induced as a direction from any point on the gradient to the midpoint of the curve (e.g., by evaluating the root value returned from the findRoots process). This allows for the curvature value induced in the previous step to be directed. With the available current curve or the curvature and orientation of the current point on the knit thread, the curvature weights in the x and y directions may be calculated and these values ​​are used to assign colors.Finally, depth can be derived from the gradient magnitude.

[0045] As part of the visualization and editing process, the user can perform pixel-level (stitch-level) edits of the 2D knitting map (step 330). This edit may result in a new customization of the article for production, and the entire procedure may be repeated ("No" branch of step 334) until the user is satisfied with the result. Once so satisfied ("Yes" branch of step 334), the final version of the 2D knitting map is converted into machine instructions (step 336) and sent for execution on the target knitting machine (step 338).

[0046] FIG. 14 illustrates an example 2D knitting map 1400, and FIG. 15 illustrates an example 3D stitch map 1500, where portion 10 of 2D knitting map 1400 corresponds to portion 50 of 3D stitch map 1500. Conceptually, 3D stitch map 1500 simulates a 3D representation of a knitted article, where each pixel of the 3D stitch map (represented as a triangle, rectangle, or other shape) corresponds to a stitch (or loop) in the knitted article, and further, the X, Y, and Z location of each pixel in the 3D stitch map attempts to closely match the X, Y, and Z location of the corresponding stitch (or loop) in the knitted article.

[0047] If the reader inspects 3D stitch map 1500 closely, it will be seen that the pixels of 3D stitch map 1500 are not arranged along straight lines due to the 3D shape of the knitted article and the use of so-called "short rows" to effect the shaping of the knitted article. This means that there are curves or bends in the tracks (or ridges) of the knitted article. Conceptually, to convert 3D stitch map 1500 to 2D knitting map 1400, one would stretch all of the tracks into straight rows and then orient the stretched tracks into rows that are parallel to each other. In this example, the tracks are stretched into straight rows, but in another example (not depicted), the ridges may be stretched into straight columns. The three-dimensional feel of 3D stitch map 1500 is still not lost in 2D knitting map 1400, as it is captured in the relative spacing between adjacent tracks of 3D stitch map 1500 that are converted into non-adjacent tracks of 2D knitting map 1400. For example, portions of paths 15i and 15j in the 3D stitch map 1500 are adjacent to one another, while corresponding paths 13i and 13j in the 2D knitting map 1400 are not adjacent to one another (i.e., are separated from one another by gusset region 12).

[0048] The "rows" of the 2D knitting map 1400 may also be referred to as the "paths" of the 2D knitting map 1400, as these rows map to paths of the knitted article. Importantly, the paths of the 2D knitting map extend along straight lines that are arranged parallel to one another, as shown in Figure 14. In other words, there are no bends or bends along the paths of the 2D knitting map.

[0049] To more fully illustrate FIG. 14, 2D knitting map 1400 is actually an enlarged portion of a larger 2D knitting map (not depicted). Thus, paths 13g, 13h, 13l, 13m, and the path between 13g and 13h do not actually end at the right boundary of 2D knitting map 1400, but continue in a rightward direction (as conceptually represented by the oval). Additionally, many paths between paths 13k and 13l (as indicated by dotted area 11) have been omitted in order to more clearly depict the remaining paths at a larger size.

[0050] If the reader closely inspects the 2D knitting map 1400, it will be seen that the tracks are arranged in pairs of tracks (also referred to as "track pairs"). For clarity, each track pair is depicted as two adjacent rows, a row of light grayscale color and a row of darker grayscale color. For example, the light row can indicate stitches (or loops) knitted to the right, while the darker row can indicate stitches (or loops) knitted to the left. Each track pair can have two ends. For ease of discussion, these ends may be referred to as the "left end" and "right end" of the track pair. In this example, many of the track pairs have a right end terminated by a vertex (e.g., 14a, 14b, 14c, 14d, 14e, and 14f). In the 2D knitting map 1400, the vertices are indicated by two (or more) vertically aligned and contiguous white squares. It is noted that for ease of illustration, only some of the vertices in the 2D knitting map 1400 are labeled. It is also noted that four consecutive paths are terminated at the left edge by vertex 14h. It should therefore be clear that a vertex can be present on both the left and right edges of the 2D knitting map. In most cases, nevertheless, when vertex attraction is applied to a region of the 2D knitting map, the region will contain vertices from only one of the edges of the 2D knitting map (the right edge or the left edge).

[0051] For paths 13a-13f in the 2D knitting map 1400, corresponding paths 15a-15f are labeled in the 3D stitch map 1500, with path 13a corresponding to path 15a, path 13b corresponding to path 15b, and so on. For vertices 14a-14h in the 2D knitting map 1400, corresponding vertices 16a-16h are labeled in the 3D stitch map 1500, with vertex 14a corresponding to vertex 16a, vertex 14b corresponding to vertex 16b, and so on. In the context of paths, a vertex may be understood as a transition from a path knitted in the right (or left) direction to an immediately adjacent path knitted in the left (or right) direction, respectively. A vertex appears as a "pointy" structure in the knitted article, hence the name "vertex". Typically, a vertex resides within the interior surface of the knitted article, as opposed to the stitches or edges of the knitted article. In the context of furrows, an apex may be understood as the end point of two or more furrows, or two or more furrows that have been combined into a single furrow.

[0052] The vertices of some adjacent track pairs are separated by a small distance in the 2D knitting map 1400 (e.g., between vertices 14a and 14b, or between vertices 14c and 14d), while the vertices of other adjacent track pairs are separated by a larger distance (e.g., between vertices 14e and 14f, or between vertices 14f and 14g). In vertex attraction, the results of which are depicted below in Figures 16 and 17, the goal is to reduce the distance between the vertices of each of the adjacent track pairs through rearrangement of the track pairs.

[0053] The area between non-adjacent pairs of paths in the 2D knitting map 1400 may be referred to as a "gusset region" 12 because it contributes to the gusseting (or shaping) of the knitted article. Conceptually, when the 2D knitting map is converted to a 3D stitch map (or when the knitted article is knitted according to the instructions generated by the 2D knitting map), the gusset region is not collapsed into any area. For example, paths 13i and 13j are separated by gusset region 12 in the 2D knitting map 1400, but a corresponding gusset region does not exist in the stitch map 1500. Rather, the gusset region 12 is completely collapsed in the 3D stitch map 1500 such that the portion of path 15i (corresponding to path 13i) is in direct contact with the portion of path 15j (corresponding to path 13j) in the 3D stitch map 1500. In other words, the individual stitches of paths 13i and 13j that face each other across gusset region 12 in 2D knitting map 1400 are in direct contact with each other in 3D stitch map 1500.

[0054] FIG. 16 illustrates a resulting 2D knitting map 1600 after the vertex attraction routine has been performed on portion 10 of the 2D knitting map 1400 illustrated in FIG. 14. FIG. 17 illustrates a 3D stitched mesh 1700, portion 50 of which corresponds to portion 10 of the 2D knitting map 1600. As illustrated in FIG. 16, the distance separating the vertices of each of adjacent path pairs in the 2D knitting map 1600 has been minimized through rearrangement of the path pairs within portion 10 of the 2D knitting map 1400. When comparing the 2D knitting map of FIG. 14 with the 2D knitting map of FIG. 16, it will be noted that after application of the vertex attraction routine, in FIG. 14, the vertices (along the right edge) are arranged in a more pointed manner, while in FIG. 16, the vertices (along the right edge) are arranged in a more smoothly arranged manner.

[0055] As depicted in FIG. 17, the vertices in the 3D stitch map 1700 are now aligned along distinct "gusset" lines (or gusset curves) 20 in the 3D stitch map 1700, as compared to being more diffusely arranged in the 3D stitch map 1500 depicted in FIG. 15. Many advantageous attributes are provided by distinct gusset lines, one of which is for creating a desirable decorative feature of the 3D knitted article. Distinct gusset lines can also have an effect on how the knitted article stretches, and therefore affect how the knitted article feels to the wearer when worn on or against the wearer's body. Not only does this affect the fit and feel of the garment, distinct gusset lines can also be important for medical devices (e.g., compression garments), where the gusset needs to be properly positioned to have a specific stretch effect to support tissues and muscles (e.g., after surgical applications, in rehabilitation procedures, etc.). Clear gusset lines can also be important in athletic garments to improve the aerodynamic properties of the athletic garment. In the example of Figure 17, the clear gusset lines appear somewhat sharp, but in other cases, the clear gusset lines may appear straighter or smoother.

[0056] Nevertheless, it is noted that a pronounced gusset line is not always a desired feature. For example, in forming a knitted hat (e.g., a knitted beanie), it may be more desirable for the vertices to be arranged in a diffuse manner, without any appearance of gusset lines. As mentioned above, techniques for performing vertex spreading on 2D knitting maps are described in Liu et al.

[0057] Thus, a method has been described for such production of an article using a computer-controlled machine from production instructions automatically generated from a 3D model of said article, and in particular a method for converting a 3D mesh associated with the 3D model of the article into instructions for a computer-controlled flatbed knitting machine.

Claims

1. Step (306) of defining streamlines (800) on a 3D model (500) defined in 3D space and characterized by a 3D polygonal mesh defining the surface of the 3D model (500), wherein the streamlines (800) are lines drawn on the surface of the 3D model (500) that form loops and return themselves; Step (312) of defining a set of contour lines (900) on the surface defined by the 3D polygonal mesh, using the streamline (800) as the origin, For each of the contour lines (900), the step (314) is to quantize the contour line (900) to a quantization point (1000) that is equidistant along the length of the contour line (900), Step (318) to generate a two-dimensional (2D) knitting map (1300, 1400, 1600) including vertices (14a-14h) that terminate the ends of each pair of paths (1200, 1308a, 1308b, 13a-13m), wherein the 2D knitting map (1300, 1400, 1600) specifies the locations of stitches for a knitted article, and all of the paths (1200, 1308a, 1308b, 13a-13m) of the 2D knitting map (1400) extend along straight lines arranged parallel to each other, A step of reducing the spatial distance between each of the vertices (14a to 14h) within a first portion (10) of the 2D knitting map (1300, 1400, 1600), wherein the amount of the reduced spatial distance between each of the vertices (14a to 14h) within the first portion (10) of the 2D knitting map (1300, 1400, 1600) is based on a first weight value received from the user. The steps include: (336) converting the aforementioned 2D knitting maps (1300, 1400, 1600) into knitting commands for a computer-controlled flatbed knitting machine; Step (338) of transmitting the knitting command to the computer-controlled flatbed knitting machine in order to produce the knitted article in accordance with the knitting command. Methods that include...

2. The method according to claim 1, wherein, as a result of reducing the spatial distance between each of the vertices (14a to 14h) within the first portion (10) of the 2D knitting map (1300, 1400, 1600), the vertices (14a to 14h) within the first portion (10) form a smooth edge of the 2D knitting map (1300, 1400, 1600).

3. The method according to claim 1, further comprising the step of increasing the spatial distance between each of the vertices in the second portion of the 2D knitting map (1300, 1400, 1600), which is separate from the first portion (10).

4. The method according to claim 3, wherein the amount of the increased spatial distance between each of the vertices of the second portion of the 2D knitting map (1300, 1400, 1600) is based on a second weight value received from the user.

5. Before converting the 2D knitting maps (1300, 1400, 1600) into knitting commands, the user is presented with the 2D knitting maps (1300, 1400, 1600) for review and editing; The steps include updating the 2D knitting maps (1300, 1400, 1600) according to the revisions made by the user, and The method according to claim 1, further comprising:

6. The method of claim 5, further comprising the steps of defining updated 3D models (330, 332) based on updated knitting maps that reflect the revisions made by the user, before converting the 2D knitting maps (1300, 1400, 1600) into knitting instructions; defining the streamlines (800); defining the set of contour lines (900); quantizing the contour lines (900); generating paths (1200, 1308a, 1308b, 13a-13m); reducing the spatial distance between each of the vertices of the vertices (14a-14h) in the first portion (10) of the 2D knitting maps (1300, 1400, 1600); and repeating the steps of generating further updated knitting maps using the updated 3D models.

7. Before converting the 2D knitting maps (1300, 1400, 1600) into knitting commands, the process includes the step (334) of defining an updated 3D model based on the 2D knitting maps (1300, 1400, 1600), The steps include updating the 2D knitting maps (1300, 1400, 1600) using the updated 3D model, and The method according to claim 1, further comprising:

8. The method according to claim 1, wherein the 3D model (500) is one of those selected from a library, generated from imaging of a physical object, algorithmically generated by the user, or manually generated by the user.

9. The method according to claim 1, wherein the contour lines (900) are determined according to a heat method for calculating geodesic distance.

10. The method according to claim 1, further comprising the step (316) of defining a cutting line (1100) on the surface, wherein the cutting line (1100) represents a seam to be sewn in the knitted article knitted by the computer-controlled flatbed knitting machine, and crosses each of the contour lines (900) only once for each contour line (900).

11. The aforementioned cutting line (1100) The steps include arranging the contour lines (900) and indexing the quantization points (1000) to the groups that match the contour lines (900), The steps include selecting an unbranched contour line (900) from among the contour lines (900) as the starting point of the current contour line, and selecting one of the quantization points (1000) that exist along the current contour line as the current point in the cutting path, The steps include: determining the nearest quantization point in the adjacent contour line for each contour line adjacent to the current point, and updating the cutting path by drawing the cutting path so that the current point is connected to the nearest quantization point in the adjacent contour line; The process of updating the cutting path to connect the next nearest point of the adjacent contour lines is repeated until all contour lines (900) of the 3D model (500) are traversed, treating the immediately preceding adjacent contour line as the new current contour line, and the nearest quantization point immediately preceding the contour line now connected by the cutting path as the current point. The method according to claim 10, as determined by...

12. A step of receiving a texture map representing a design, logo, pattern, or other feature that will be produced as part of the finished knitted article knitted by the computer-controlled flatbed knitting machine, wherein the texture map specifies one or more of the surface textures or colors of the 3D model (500); The steps include applying the texture map to the 3D model (500), Immediately after the creation of the 2D knitting maps (1300, 1400, 1600), the process involves transferring the information represented by the texture map from the 3D model (500) to the 2D knitting maps (1300, 1400, 1600). The method according to claim 1, further comprising: