Systems, methods and file formats for 3D printing of microstructures

The MESO format addresses the challenge of efficiently representing and printing complex microstructures by providing a data structure for 3D printing that allows for high-fidelity representation and parallel processing, enabling efficient design and printing of intricate geometries with reduced material usage and computational load.

JP7796661B2Active Publication Date: 2026-01-09OPT IND INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022557095
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-07-30
Filing Date
2021-03-24
Publication Date
2026-01-09
Estimated Expiration
2041-03-24

AI Technical Summary

Technical Problem

Existing 3D printing technologies struggle to efficiently represent and print complex microstructures such as fur, feathers, or fabrics due to the lack of efficient digital representation of CAD models with fine material structures, leading to computationally expensive and impractical file sizes and processing.

Method used

A new file format, referred to as the MESO format, is introduced to efficiently represent and process 3D microstructures, allowing for high-fidelity representation of intricate geometries by using a data structure that includes node information, wire information, shell information, and functions for blending and repeating geometries, enabling parallel processing and reduced file sizes.

Benefits of technology

The MESO format enables the efficient design and printing of microstructures with high precision, reducing material usage, weight, and allowing for mechanical metamaterials with negative Poisson's ratio, biomimetic designs, and customized surface textures, while maintaining fine detail and reducing computational load.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007796661000014
    Figure 0007796661000014
  • Figure 0007796661000015
    Figure 0007796661000015
  • Figure 0007796661000016
    Figure 0007796661000016
Patent Text Reader

Abstract

A system, method, and new file format for printing 3D microstructures are provided. In some implementations, a new file format is provided that defines 3D objects using wireframe models represented as a collection of wires. Because the wires and their parameters are defined within the new file format, the objects can be more efficiently and quickly processed to support 3D drawing operations. Such methods can be used to print new articles such as eyelashes, bushes, swabs, and other new items.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Related Applications This application is a nonprovisional (35 U.S.C. 119(e)) sequel to U.S. Provisional Patent Application No. 62 / 994,582, entitled "SYSTEMS, METHODS AND FILE FORMAT FOR 3D PRINTING OF MICROSTRUCTURES," filed March 25, 2020, and a nonprovisional (35 U.S.C. 119(e)) sequel to U.S. Provisional Patent Application No. 63 / 058,782, entitled "SYSTEMS, METHODS AND FILE FORMAT FOR 3D PRINTING OF MICROSTRUCTURES," filed July 30, 2020. These applications are incorporated herein by reference in their entireties.

[0002] Notice of copyrighted material Portions of the material in this patent document are subject to copyright protection under the copyright laws of the United States and other countries. The copyright owner has no objection to the copying by anyone of this patent document or the patent disclosure as it appears in publicly available U.S. Patent and Trademark Office files or records, but otherwise reserves all copyright rights whatsoever. The copyright owner hereby does not waive any of its rights (including, without limitation, its rights pursuant to 37 C.F.R. § 1.14) that this patent document be maintained in confidence. [Background technology]

[0003] background There are many different types of 3D printing technologies used to construct three-dimensional objects from digital 3D models. 3D printing processes may use a variety of processes in which material is deposited, bonded, and solidified using computer control to generate the object using plastic, liquid, or powder particles, among other materials. Summary of the Invention

[0004] overview Modern 3D printing techniques can allow for complex geometries that are difficult or impossible to create using traditional manufacturing techniques. In some embodiments, the inventors have realized that high-resolution stereolithography 3D printing (particularly Digital Light Processing (DLP) printing techniques) can be used, allowing for print resolutions of less than 100 μm. High-resolution 3D printing makes it possible to generate intricate structures to reduce object weight, build metamaterials, achieve biomimetic designs, or simply achieve aesthetic surface textures.

[0005] Although the resolution of modern 3D printers has improved, directly printing extremely dense microstructures such as fur, feathers, microlattices, or fabrics can be impractical. This can be primarily due to the lack of efficient digital representation of CAD models with fine material structures. Generally, 3D printers and associated CAD / CAM design software are typically optimized to handle medium- to large-scale solid objects. These objects can be faithfully represented by triangular meshes, which may be transferred between parties as .stl or other mesh-type data formats. These objects are also characterized by their smooth finish, which has become a key feature of modern 3D printers. However, when it comes to representing and processing dense microstructures, such files representing these microstructures can become prohibitively large, and slicing such complex structures for printing can also be computationally expensive.

[0006] Some embodiments described herein provide systems, methods, and novel file formats for printing 3D microstructures. Such microstructures can have high-precision features, e.g., 0.001 to 5 mm. These features can include surface relief textures, three-dimensional woven structures, lattices, fur, or feather-like structures. These small features often require high fidelity to capture nuances of softness, stretch, and tactility. While a precise 3D model of every single strand could theoretically generate a high-fidelity representation of these nuances using traditional CAD methods, such files would be very large and difficult to process and print. For example, a typical fur sample can contain thousands of hairs per square inch, meaning that simple garment designs with millions of triangles can be cumbersome and impractical.

[0007] To address this file conservation versus geometric fidelity dilemma, a new file format used to represent 3D microstructures, referred to herein as the MESO format (.MESO or .meso), is provided to serve as an advanced interface between designers and 3D printers. In some embodiments, this file exchange format establishes an efficient workflow for computational design and data transfer within our printing ecosystem to get from sketch and design to finished print.

[0008] In some embodiments, a .meso file format and slicing process is provided that opens up new space for materials design and engineering. One goal is to assist designers and engineers to model dense microstructures previously considered computationally expensive or impossible. Specifically, such dense structures can be used for a variety of applications, further outlined below. Such embodiments may allow for one or more improvements, including:

[0009] Reduced material usage and weight: Bulk solid structures can be replaced by carefully designed micro-lattice structures. In some embodiments, the geometry of the lattice determines the overall mechanical properties of the design. In this way, manufacturers can reduce the material used for 3D printing and reduce the overall weight of the design.

[0010] Mechanical metamaterials: The incorporation of micro compliant joint or hinge structures provides the ability to design and fabricate mechanical metamaterials that exhibit a negative Poisson's ratio (e.g., hypertrophic structures or materials that become thicker in the direction perpendicular to the applied force and therefore have high energy absorption and fracture resistance). In this way, new mechanical elements can be created that exhibit several structural properties.

[0011] Biomimetic Design: Natural materials can be superior to artificial materials primarily due to their hierarchical structure. Materials such as fur or feathers are difficult to model with traditional CAD software and to precisely replicate with other manufacturing methods. In some embodiments described herein, the modeling complexity is dramatically reduced while maintaining the density and fine detail of such structures for 3D printing.

[0012] Customized Surface Textures: Many physical products used in commerce contain surface textures such as creases, depressions, bumps, reliefs, etc. According to some embodiments, we can design and manufacture such textures with extremely high resolution. Such textures can be easily customized individually rather than mass-produced.

[0013] According to one aspect, a data format for representing a 3D object is provided, the data format comprising a data structure. The format includes node information identifying a plurality of 3D coordinates within a 3D wireframe object, wire information identifying a plurality of nodes within the 3D wireframe object that collectively identify a wire object, and shell information identifying a surface to which the wire object is attached, wherein interpretation of the data structure is used to control a 3D printing operation. In one embodiment, the data structure further includes a populate function that defines repeated replication of the wire object for a plurality of points on the surface. In one embodiment, the data structure further includes a blend function adapted to blend at least two geometries. In one embodiment, the data structure further includes mesh information describing legacy mesh geometry. In one embodiment, the data structure further includes a branch function that describes one or more child objects to be attached to the wire object. In one embodiment, the data structure further includes parameters controlling at least one of the thickness, shape, and / or twist of the wire object. In one embodiment, the data format, when received and interpreted by a computer system, renders a representation of the 3D object. In one embodiment, the data structure is used to generate a 3D swab or applicator. In one embodiment, the data structure is used to generate a blend design of at least two designs.

[0014] According to one aspect, a method for processing a digital representation of a 3D object is provided. The method includes providing a wireframe representation of the 3D object, the wireframe representation defining at least one wire; determining a slice of the 3D object to be processed; determining, for the determined slice, at least one intersection point defining an intersection of the at least one wire of the wireframe representation with the slice of the 3D object; and determining, for the intersection point, a corresponding shape associated with the drawn intersection point. According to one embodiment, the act of determining the corresponding shape associated with the drawn intersection point further includes determining the corresponding shape based on at least one parameter of the at least one wire. According to one embodiment, the at least one parameter includes at least one or more of the group consisting of thickness, shape, and twist of the wire object. According to one embodiment, the act of determining the corresponding shape associated with the drawn intersection point further includes determining the corresponding shape based on an angle of intersection of the slice with the at least one wire. According to one embodiment, the act of determining the corresponding shape associated with the drawn intersection point further includes determining the corresponding shape based on an angle of intersection of the slice with the shape of the at least one wire. According to one embodiment, the method further comprises determining at least one different slice of the 3D object to be processed and processing the slice and the at least one different slice in parallel by various processing entities. According to one embodiment, the various processing entities are provided with information regarding any lines of the wireframe representation that intersect with the relevant slice to be processed. According to one embodiment, the act of slicing is performed as part of a printing process. According to one embodiment, the method further comprises determining a mesh representation for at least a portion of the 3D object and combining a slice of the mesh representation with a corresponding slice of the wireframe representation to form a composite slice. According to one embodiment, the method further comprises using a vector space to calculate, for each slice of the 3D object to be processed, a plurality of lines that intersect with the corresponding slice of the 3D object.According to one embodiment, the method further includes using a linear equation to determine a plurality of lines that intersect with corresponding slices of the 3D object. According to one embodiment, the method further includes an act of determining, for each slice of the 3D object, a set of intersection points that represent lines of the wireframe that intersect with each slice of the 3D object.

[0015] According to one aspect, a method for processing a digital representation of a 3D object is provided. The method includes providing a wireframe representation of the 3D object, segmenting the wireframe representation into a plurality of chunks, assigning each chunk of the plurality of chunks to a corresponding processing entity, and rendering each chunk of the plurality of chunks by the corresponding processing entity in a substantially parallel manner. According to one embodiment, the method further includes an act of segmenting the wireframe representation into a plurality of chunks, and further includes an act of determining, for at least one of the plurality of chunks, a subset of wire objects in the wireframe representation that intersect with at least one of the plurality of chunks. According to one embodiment, the method further includes an act of determining a representation of at least one chunk of the plurality of chunks of the wireframe representation. According to one embodiment, the method further includes an act of providing the representation of at least one chunk of the plurality of chunks of the wireframe representation to the assigned processing entity. According to one embodiment, the method further includes an act of providing, for at least one chunk of the plurality of chunks, line information related to lines that intersect with at least one chunk of the plurality of chunks to the assigned processing entity. In one embodiment, the method further includes merging each of the rendered chunks into a model representing the 3D object. In one embodiment, the method further includes representing wires in the wireframe representation as a series of nodes. In one embodiment, the method further includes representing the wires by a plurality of parameters including at least one of wire thickness, shape, and twist.

[0016] According to one aspect, a 3D printed swab or applicator is provided. The swab or applicator includes a valve with an internal lattice structure that provides structural strength and fluid retention, a reinforcing mesh structure over the internal lattice structure that contributes to the shape of the valve and absorbs fluid, a plurality of bristles protruding from the reinforcing mesh structure, and a handle connected to the valve. According to one embodiment, the handle includes parallel strands of wire that are bundled and reinforced by loops between the strands. According to one embodiment, the handle includes a gridded shaft wall structure and an internal shear reinforcement element. According to one embodiment, the handle includes a break point with a reduced diameter of the parallel strands. According to one embodiment, the bristles are reinforced near their midsection. According to one embodiment, the bristles are arranged in a helical array. According to one embodiment, the internal lattice structure is continuous between the valve and the handle. According to one embodiment, the internal lattice structure is printed with an offset shell from a freeform curve. According to one embodiment, the bristles have a diameter of less than about 100 μm. In one embodiment, a swab is defined by a data structure that includes wire information identifying nodes that collectively identify at least one wire object.

[0017] According to one aspect, a 3D printed swab or applicator is provided. The applicator includes a valve and a stem, the valve including an inner core as an extension of the stem, the inner core connecting the valve to the stem and providing rigidity to the swab or applicator. According to one embodiment, the valve includes a radial array of bristles emanating from the inner core. According to one embodiment, the radial array of bristles is spaced about 50 um to about 200 um apart. According to one embodiment, the valve includes a primary outer mesh structure on its interior, with a bristle structure that contributes to the shape of the valve and absorbs fluid. According to one embodiment, the valve includes a secondary inner mesh structure nested between the outer mesh and the inner core, which provides additional rigidity. According to one embodiment, the valve includes a plurality of bristles protruding from the primary outer mesh structure. According to one embodiment, the stem includes a primary structure consisting of line elements in a diamond-shaped grid pattern in a cylindrical format. According to one embodiment, the stem includes a secondary structure consisting of an inner helical surface attached to the diamond-shaped grid pattern, providing internal shear resistance. According to one embodiment, the shaft includes a textured finish consisting of thin line elements spiraling on the exterior to provide a refined finish.

[0018] According to one aspect, a 3D printed applicator is provided. The 3D printed applicator includes a valve having an internal lattice structure that provides structural strength, a plurality of bristles protruding from the internal lattice structure, a plurality of reinforcing wires connected to the bristles at locations along the length of the bristles, and a handle connected to the valve. According to one embodiment, the locations along the length of the bristles are near the midpoint of the bristles. According to one embodiment, the length of the bristles is constrained so that the bristles are confined within a bounding geometry. According to one embodiment, the diameter of each bristle is individually defined within a mesofile. According to one embodiment, the bristles have a diameter that is less than about 100 μm. According to one embodiment, the 3D printed applicator is defined by a data structure including wire information, the wire information identifying a plurality of nodes that collectively identify at least one wire object.

[0019] According to one aspect, a method for designing a fiber or article for 3D printing is provided. The method includes generating a first design represented by a first file including a plurality of parameters having a first set of values; generating a second design represented by a second file having a second set of values ​​for the parameters; and interpolating values ​​of the parameters between the first and second values ​​to generate a third design that is a blend of the first and second designs, the third design being a fiber or article suitable for 3D printing. According to one embodiment, the first and second designs are not represented by a mesh of triangular elements. According to one embodiment, the first and second designs have similar topographies. According to one embodiment, the fiber is fur, feathers, lattice, or a woven fabric. According to one embodiment, the fiber has a minimum length scale of about 100 μm. According to one embodiment, the fiber has at least 1,000 hairs per square inch. According to one embodiment, the parameter is selected from a fiber diameter, a fiber twist angle, a fiber cross-sectional profile, or any combination thereof. According to one embodiment, the design includes shared vertices stored in a list of shared points. In one embodiment, the act of interpolating further includes determining to apply a weighted average of the first value and the second value to generate a third design. In one embodiment, the method further includes, for the 3D article, adjusting the weighted average across the instances to generate the third design. In one embodiment, the method further includes providing an index associated with the first design; applying a transformation matrix to determine a second design; providing a weighting value indicating at least one weighted portion of at least one of the first geometry or the second geometry; and applying the weighted average by using the weighting value to determine the third design.

[0020] According to one aspect, a method for designing a textile or article for 3D printing is provided. The method includes providing a design characterized by a file including a list of vertices defining a plurality of fibers and a set of parameters defining characteristics of the fibers; and selecting a set of values ​​for the parameters that, when 3D printed, results in desired characteristics of the design. According to one embodiment, the design is repeated or tiled when 3D printed. According to one embodiment, the parameters are fiber diameter, fiber twist angle, fiber cross-sectional profile, or any combination thereof. According to one embodiment, the parameters are bifurcation functions. According to one embodiment, the design has each fiber defined by a separate wireframe and individual values ​​of the parameters. According to one embodiment, the design does not define each fiber by a separate wireframe. According to one embodiment, the fibers are represented as population functions of shell surfaces. According to one embodiment, the data structure further includes a volumetric mapping function. According to one embodiment, the data structure further includes an array of vertices of the wireframe object. According to one embodiment, the method further includes information identifying vertices defining a central polyline spine of the wire object. In one embodiment, the data structure further includes a diameter of the wire object at each of the vertices. In one embodiment, the data structure further includes information identifying a normal direction of the starting face at the starting point. In one embodiment, the data structure further includes rotation information of the wire object along the vertices. In one embodiment, the method further includes acts of segmenting the wireframe representation into a plurality of chunks, assigning each chunk of the plurality of chunks to a corresponding processing entity, and rendering each chunk of the plurality of chunks by the corresponding processing entity in a substantially parallel manner. In one embodiment, the act of segmenting the wireframe representation into a plurality of chunks further includes, for at least one chunk of the plurality of chunks, determining a subset of wire objects of the wireframe representation that intersect with at least one chunk of the plurality of chunks.In one embodiment, the method further includes determining a representation of at least one chunk of the plurality of chunks of the wireframe representation. In one embodiment, the method further includes providing the representation of at least one chunk of the plurality of chunks of the wireframe representation to the assigned processing entity. In one embodiment, the method further includes providing line information relating to at least one chunk of the plurality of chunks and to lines intersecting the at least one chunk of the plurality of chunks to the assigned processing entity. In one embodiment, the method further includes merging each chunk of the rendered plurality of chunks into a model representing the 3D object. In one embodiment, the method further includes representing wires of the wireframe representation as a series of nodes. In one embodiment, the method further includes representing wires by a plurality of parameters including at least one of wire thickness, shape, and twist.

[0021] It should be understood that all combinations of the foregoing concepts and additional concepts discussed in more detail below (provided such concepts are not mutually inconsistent) are contemplated as being part of the inventive subject matter disclosed herein. In particular, all combinations of subject matter within the present disclosure are contemplated as being part of the inventive subject matter disclosed herein. It should also be understood that one or more 3D printing systems may be used to implement one or more systems, methods, and file formats for 3D printing such microstructures. For example, some embodiments may be used in conjunction with one or more systems described in U.S. Patent Application No. 16 / 552,382, filed August 27, 2019, which is incorporated herein by reference in its entirety. However, it should be understood that other printer methods and systems may be used with the embodiments described herein.

[0022] Further aspects, examples, and advantages of these exemplary aspects and examples are discussed in detail below. Furthermore, it should be understood that both the foregoing information and the following detailed description are merely illustrative examples of various aspects and examples and are intended to provide an overview or framework for understanding the nature and features of the claimed aspects and examples. Any example disclosed herein may be combined with any other example in any manner consistent with at least one of the objects, purposes, and needs disclosed herein, and references to "example," "some examples," "alternative examples," "various examples," "one example," "at least one example," "this example and other examples," etc. are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with several examples may be included in at least one example. Appearances of such terms herein do not necessarily all refer to the same example.

[0023] BRIEF DESCRIPTION OF THE DRAWINGS Various aspects of at least one embodiment are discussed herein with reference to the accompanying drawings, which are not intended to be drawn to scale. The accompanying drawings are included and incorporated to provide illustration and further understanding of various aspects and embodiments, and constitute a part of this specification, but are not intended as a definition of the limits of the present invention. Where technical features in the accompanying drawings, detailed description, or any claims are accompanied by reference signs, the reference signs have been included solely for the purpose of increasing the intelligibility of the accompanying drawings, detailed description, and / or claims. Thus, neither a reference sign nor its absence is intended to have any limiting effect on the scope of any claim element. In the accompanying drawings, each similar or nearly similar part illustrated in various figures is represented by a similar reference sign. For purposes of clarity, every part may not be labeled in every figure. [Brief explanation of the drawings]

[0024] [Figure 1]FIG. 1 illustrates a block diagram of a distributed computer system capable of processing wireframe models in accordance with various embodiments. [Figure 2] 1 illustrates a process for manipulating wireframe model information according to various embodiments. [Figure 3] 10 illustrates a process for determining a shape based on the intersection of a cutting plane with a wire according to various embodiments. [Figure 4] 1 illustrates a process for manipulating 3D object representations by multiple processing entities in parallel. [Figure 5A] 1 illustrates an exemplary method for representing wireframe information. [Figure 5B] 1 illustrates various object shapes that can be formed by intersecting a cutting plane with a 3D object. [Figure 6] 1 illustrates an exemplary .MESO format according to various embodiments. [Figure 7] 1 illustrates an exemplary wireframe representation of a simple wire in accordance with various embodiments. [Figure 8] 1 illustrates an exemplary shell representation that can represent a surface. [Figure 9] We show how to blend shapes by using a weighted average. [Figure 10] Shows how to blend shapes along a surface. [Figure 11] 1 illustrates an exemplary wireframe representation of a wire with branch or child wireframes extending from the primary wire. [Figure 12] 1 shows a diagram of many wires populated on a surface. [Figure 13] 1 illustrates an exemplary process for slicing a 3D object in accordance with various embodiments. [Figure 14] 1 illustrates an exemplary process for slicing a wireframe representation in accordance with various embodiments. [Figure 15] 1 illustrates an exemplary process for processing portions of a 3D model in parallel according to various embodiments. [Figure 16A]1 illustrates various embodiments of image post-processing. [Figure 16B] 1 illustrates various embodiments of image post-processing. [Figure 17A] 1 illustrates an exemplary light intensity gradient filtering operation in accordance with various embodiments. [Figure 17B] 1 illustrates an exemplary light intensity hollow gradient filtering operation in accordance with various embodiments. [Figure 18A] 1 illustrates an example starting slice of a 3D object. [Figure 18B] 18B illustrates the example starting slice of FIG. 18A with light intensity hollow gradient filtering applied. [Figure 19] 1 shows the processing of a slice when no filters are applied. [Figure 20] 10 illustrates a slice to which filtering is applied to reduce the intensity of activated neighboring pixels according to various embodiments. [Figure 21A] 1 illustrates an exemplary simple fiber that may be produced by using various embodiments. [Figure 21B] 21B shows an exemplary cross section of the simple fiber of FIG. 21A. [Figure 22] 1 illustrates an exemplary data representation of a simple fiber in accordance with various embodiments. [Figure 23A] 1 illustrates an exemplary noded hair that can be produced using various embodiments. [Figure 23B] 23B illustrates an exemplary cross section of the nodal hair of FIG. 23A. [Figure 24A] 10A-10C illustrate exemplary kinks that can be produced using various embodiments. [Figure 24B] 24B shows an exemplary cross section of the twisted hair of FIG. 24A. [Figure 25] 10 illustrates an example of applying multiple population functions to the same mesh face according to various embodiments. [Figure 26] 1 shows a uniform population function representing hairs applied to a surface. [Figure 27] 1 shows an example feather layout that includes many blended geometries, each with a different weighting. [Figure 28A] Two different parent geometries are shown that are used to generate the feather design layout shown in FIG. [Figure 28B] Two different parent geometries are shown that are used to generate the feather design layout shown in FIG. [Figure 29] 31 illustrates a lattice structure that can be created by using modular units such as those shown in FIG. 30. [Figure 31] 33 illustrates a woven structure that can be produced by using a mapping weaving unit such as that shown in FIG. 32. [Figure 33A] 34A-34B show a number of 3D lattice structures that can be synthesized to create swab structures such as the one shown as an example in FIGS. [Figure 33B] 34A-34B show a number of 3D lattice structures that can be synthesized to create swab structures such as the one shown as an example in FIGS. [Figure 33C] 34A-34B show a number of 3D lattice structures that can be synthesized to create swab structures such as the one shown as an example in FIGS. [Figure 33D] 34A-34B show a number of 3D lattice structures that can be synthesized to create swab structures such as the one shown as an example in FIGS. [Figure 34A] 1 shows an exemplary overall swab structure. [Figure 34B] 1 shows an exemplary overall swab structure. [Figure 35] 1 illustrates an example shaft configuration according to some embodiments. [Figure 36A] 10 shows another embodiment of the swab design. [Figure 36B] 10 shows another embodiment of the swab design. [Figure 36C] 36A-36B show experimental results of the swab design described herein and shown in FIGS. 36A-36B versus conventional flocked swabs. [Figure 36D]36A-36B show experimental results of the swab designs described herein and shown in FIGS. 36A-36B versus conventional flocked swabs and cotton swabs. [Figure 37] 1 illustrates an exemplary makeup applicator design according to various embodiments. [Figure 38] 1 illustrates various cosmetic applicator designs according to various embodiments. [Figure 39A] 10A-10C illustrate various other types of makeup applicators according to some embodiments. [Figure 39B] 10A-10C illustrate various other types of makeup applicators according to some embodiments. [Figure 39C] 10A-10C illustrate various other types of makeup applicators according to some embodiments. [Figure 40] 1 shows an example design of eyelashes using a wireframe representation. [Figure 41] 1 illustrates various eyelash designs according to some embodiments. [Figure 42] 1 illustrates a column support technique using a wireframe representation in accordance with various embodiments. [Figure 43] 10 illustrates a frame support for anchoring overhanging bristles according to some embodiments. [Figure 44] 1 illustrates an exemplary cocoon support strategy in accordance with various embodiments. [Figure 45A] 1 shows an example of a cocoon support and cross section. [Figure 45B] 1 shows an example of a cocoon support and cross section. DETAILED DESCRIPTION OF THE INVENTION

[0025] Detailed Description As discussed above, various embodiments relate to systems, methods, and data structures used to represent 3D objects, particularly 3D objects represented by wireframe models that include one or more wires and / or other object types that are made up of such wires.

[0026] 1 shows a block diagram of a distributed computer system 100 capable of processing wireframe models according to various embodiments. For example, one or more users may utilize a design system (e.g., system 102) or other system capable of processing and / or storing one or more wireframe models 103. Such a system may include, for example, 3D object design software capable of defining one or more wireframe models.

[0027] In some aspects, a processing system 101 is provided that can receive wireframe models and process them according to various embodiments. As discussed above, it may be beneficial to use wireframe models to reduce the weight of some objects rather than representing them as solid elements. Because the system works with wireframe models, a file format is provided that aids in representing wireframe models in an easily processed manner. For example, the processing system 101 may include a slicing engine 104 that can slice one or more wireframe models to determine slices to be drawn and / or printed (e.g., by a 3D printer).

[0028] Additionally, in some embodiments, the processing system 101 may include one or more processing entities 105 that can process various portions of the wireframe model in parallel. This is important because traditional modeling-type processing does not allow for parallel processing of models. The processing system 101 may also include one or more post-processing functions 106 that can be used to generate an output format that can be viewed, printed, or otherwise used by other processing entities in an output stage 107.

[0029] As discussed above, one advantage of working with wireframe information is that elements of wireframe objects can be represented by lines, which can be handled in a simpler manner than traditional types of 3D modeling. Figure 2 shows an example process 200 for manipulating wireframe model information according to various embodiments.

[0030] In particular, process 200 begins at block 201. At block 202, the system receives wireframe information representing a particular 3D object. At block 203, the system determines a slice of the 3D object to be processed. At block 204, the system determines, for each slice, the intersection of the wireframe with the slice to determine one or more intersection points. That is, given a particular cutting plane, one or more wireframe elements of the 3D model will intersect with the cutting plane that defines the points to be rendered in the particular slice. At block 205, the system determines, for each intersection point, the corresponding shape to be rendered. At block 206, process 200 ends.

[0031] As discussed above, a corresponding shape can be determined for each point that intersects with the cutting plane. The shape associated with the point can be drawn at the cutting location according to the information stored in the wireframe model as well as a determination of the cutting angle for the wire that passed through it. Figure 5 shows how the angle affects the shape of the intersection of the cutting plane with various conic sections.

[0032] FIG. 3 illustrates a process 300 for determining a shape based on the intersection of a wire with a cutting plane, according to various embodiments. At block 301, process 300 begins. At block 302, the system determines, for a wire that intersects a particular slice, the angle of intersection of the wire with the slice. As shown in FIG. 5, the shape can vary based on the angle of intersection of the object with the cutting plane. For a simple circular wire object, the angle of intersection can describe a circle, a parabola, an ellipse, or a hyperbola. Additionally, the system can determine relevant parameters of the wire that intersects with the slice. For example, within a wireframe model data file, several parameters can be used to describe a particular wire. For example, one or more parameters can control the thickness, shape, and / or twist of the wire object (at block 303). At block 304, the system determines a corresponding shape to be drawn for the point based on these parameters and / or the determined angle of intersection. This process can be repeated for any number of wire elements that intersect with the cutting plane. For each iteration of the cutting plane, a 2D representation can be calculated that can be rendered at the output (eg, printed on a particular layer).

[0033] Furthermore, as discussed above, 3D objects represented by wireframe representations can be more efficiently processed by multiple processing entities. Figure 4 shows a process 400 for manipulating 3D object representations by several processing entities in parallel.

[0034] At block 401, process 400 begins. At block 402, the system receives wireframe information representing a 3D object. As discussed further below, the wireframe information may be represented and stored in .MESO format. At block 403, the system segments the wireframe representation of the 3D object into chunks. At block 404, the system assigns the chunks to respective processing entities. Each of the processing entities operates in parallel and renders its assigned chunks (e.g., at block 405). At block 406, the system may perform one or more post-rendering operations, such as filtering, smoothing, and / or compositing the rendered chunks. At block 407, process 400 ends.

[0035] As discussed above, calculations for determining slice data can be simplified because the wireframe model can be interpreted as lines. In some embodiments, instead of analyzing a mesh model, the .MESO data is interpreted "directly" as lines. In one embodiment, for 2D lines of the wireframe model located in 3D space, the intersection of the model line with the slice layer is calculated for each slice layer. This intersection point in 3D space can be converted to 2D coordinates of the slice data for each layer (x,y,z) in 3D space (for layer #123, (u,v) of layer #123). In some implementations, for every intersection (for every layer), the shape of the line intersection that needs to be drawn onto the slice is determined by the parameters of the .MESO line (such as diameter, profile shape, twist, and intersection angle). This information is used to calculate the appropriate corresponding parabolic / conical intersection (for a circular mesoline profile shape), as shown in FIG. 5A.

[0036] As shown, depending on the angle of intersection between the slice plane and the object, the shape can be any number of shapes (e.g., parabola, circle, ellipse, hyperbola), as shown by way of example in Figure 5A. The calculated cone intersection is then added to the slice data.

[0037] Because the wireframe model can be interpreted as lines, and for each slice, the intersections of the wireframe model can be calculated in a straightforward manner, processing of the model can be operated in parallel. That is, for some portions of the wireframe model, the line intersection calculations and the cone intersection calculations can be computationally parallelized. This, combined with parallel slicing algorithms, makes the intersection calculations potentially highly scalable for large amounts of data. This slicing style is also enabled by various embodiments of the .MESO file format (e.g., line parameters such as profile shape and line diameter provided directly within the file format). Below are example implementations illustrating various embodiments. It should be understood that various features can be used alone or in combination with other features described herein.

[0038] Example MESO Data Structure In some embodiments, a data structure, referred to herein as a .MESO (or .meso) data structure, is provided that stores line information associated with a wireframe model. In some embodiments, the .MESO structure is an index-based data structure for mesh reconstruction and scan path generation for AM processes. The .MESO structure is specifically designed for 3D printing mesostructures, with a focus on fibrous structures, although the format may be applied to other areas. Such fibrous structures may include, but are not limited to, fibers, feathers, lattices, woven structures, and / or composite structures using a combination of various elements. While other index-based geometry formats (e.g., .obj) have been used, the .MESO data structure may provide support for manipulation and mesoscale geometry.

[0039] Design considerations In some embodiments, the .MESO format may exhibit one or more of the following design considerations: Simplicity: Material is abstracted to wireframes and shells. Node graphs are used to design geometry. Versatility: A wide range of materials can be designed, such as fur, feathers, plaid, fabrics or surface textures. Fidelity: Preserves the subtle features of the design. Scalability: Able to scale to design materials that are meters long. Able to scale to design structures at the nanoscale. Backwards compatible with existing mesh. Future Compatibility: Future Features

[0040] In some embodiments, some implementations of the .meso format may provide reduced file size and / or reduced processing load for printing. In some embodiments, a first size reduction mechanism is used. First, in some embodiments, the .meso file format is an index-based data format, a feature that provides significant file size reduction. In one implementation of this format, the first part of the file contains 3D coordinates (the so-called nodes of the model). One advantage of this is avoiding redundant information being stored multiple times. The second part of the file contains data for connections between previously defined nodes. In .meso, volumes and meshes are generated using previously defined reference coordinates as nodes. Through the introduction of index (node)-based file formatting, much of the redundant information can be replaced by initial node definitions. For example, instead of storing node coordinates multiple times at various points in the file, the vertices of a cube are defined once as nodes, and then only that index is referenced by the mesh.

[0041] Another file size reduction mechanism that can be used in the .meso format is the large amount of implicitly stored information within the data format itself. Figure 5B shows how this is achieved. While standard 3D file formats in 3D printing explicitly store all information within the file, .meso stores a higher level of abstraction of the data within the file. This means that structures as wireframes (line volumes) or shells (surface volumes) are described only by their so-called spines. The file size reduction can be understood by comparing it to the line volume in the center of the figure above. While a standard file format would explicitly and separately store all vertices and meshes (hence 8 vertices and 12 mesh triangles), the .meso format can preserve this structure with only two spine node coordinates and profile and line diameter information. File size reduction is achieved through prior knowledge of the data format from which the wireframe line structure is to be constructed. Only the essential core information of the lines is stored. The reconstruction for meshing or the subsequent pre-manufacturing compilation process also includes sufficient analytical intelligence to handle only the essential core information of the lines. File size reduction is achieved through higher encoding, which means more careful and intelligent analysis of the data.

[0042] There can be a trade-off between the generality of a file format and its usefulness for specific purposes. In this trade-off, the goal of 3D printing at the mesoscale can be prioritized, providing certainty in optimizing the exchange format. Additionally, there are several features of the .meso file structure that are particularly useful in generating a compact file structure, including:

[0043] self-similarity Elements such as fur and lattices are often composed of similar or identical modular units. These units may be repeated in 2D, 3D, or fractal patterns, with small variations in the transformations between units. Thus, this format can describe a set of geometry as a variant of its parent.

[0044] Shape-blending The ability to transform between self-similar units also allows a degree of blending between discrete states of similar topology, which is a common feature in nature (from bone features among various species to feather rates on birds). This means that designers / manufacturers can generate new geometries as a weighted blend of several individual shapes of similar topology.

[0045] Distinct features At the mesoscale, some features of geometry become more pronounced than others. This is especially true for features attributable to mechanical properties. Certain size details become less important as the printer resolution limit is approached. This allows designers to place emphasis on influential geometric parameters (such as cross-sectional profile) that may affect the tactility of the fur. Instead of freeform shapes, designers can describe mesostructures parametrically.

[0046] With this understanding, instead of storing these geometries as volumetric meshes, the .MESO format, according to some embodiments, uses a simplified set of parametric descriptions to store the geometric properties of individual fibers. This technique allows any program using .MESO to quickly reconstruct large amounts of geometry with less information.

[0047] These parameters provide instructions for mesh reconstruction. For example, fiber triangles are reconstructed from polyline curves with parameters such as diameter, twist angle, and cross-sectional profile. This abstract representation of geometry can balance scale and resolution. For example, a small sample of fur may be composed of thousands or millions of individual hairs. On the one hand, each hair should have characteristics and forms that can be individually manipulated, but on the other hand, each hair is a variation of a similar basic shape. In some embodiments, the .MESO format exploits the idiosyncrasies of fine fibers; this exemplary format assumes an underlying organization while allowing more expressive properties of the fur to be determined by the user.

[0048] In addition to reduced file size, some .MESO formats may offer several other benefits compared to other mesh formats. Because each geometry is described parametrically, it is easy to modify these low-level parameters downstream (such as changing the length or scaling the diameter of each fiber). This is particularly useful in collaboration because it preserves the editability of the design. It also provides a simple and organized structure that allows users to easily extract useful information.

[0049] This has led to several features of the file structure that are unique to some embodiments of the exemplary .MESO data structure, including the following:

[0050] High dependency between data OBJ is a commonly used index-based file format. Unlike STL, where each vertex of a triangle is stored as an individual coordinate, in an OBJ file, the vertices of a triangle are taken from a shared list of points. This avoids redundancy in representing shared vertices and preserves mesh topology information, resulting in a compact and consistent mesh.

[0051] In some embodiments, the .MESO format may use the same logic to reduce file size. Due to the high self-similarity between geometries, in some implementations, the .MESO format may allow several geometries to be referenced within a parametric function. This provides an additional level of data efficiency, as instances of detailed geometry are recorded only once and referenced many times. One example includes the reference of child wireframes within sub-D-functions, where one instance of a wireframe and mesh face can spawn any number of children through iteration. Figure 6 shows an exemplary .MESO format in accordance with various embodiments.

[0052] Object Interpolation Shape blending: Deriving a new shape by interpolating several different shapes.

[0053] Data Structure Overview MESO files contain primarily two types of geometric information: 1) geometry and 2) parametric functions.

[0054] Geometries include points (vertices), lines (wireframes) and surfaces (faces). These geometries are represented as connections between nodes with additional information encoded at each node. Parametric Functions First-order geometry to which a parametric function is to be applied.

[0055] Parametric functions are objects that contain parameters, which are instructions for a particular function during reconstruction and slicing. Parametric functions are independent objects within a data structure that may be referenced by a geometry as a way to extend its own description. Most often, these functions are used to generate child geometries from the current geometry.

[0056] In one embodiment, the .MESO format is built on JSON Schema. The .MESO format includes one or more of the following objects, alone or in combination with any other object:

[0057] [Table 1]

[0058] header The .MESO format may include a header containing information for slicing software to process the file. The .MESO format may include, for example, information identifying the material on which the object defined by the file will be printed (e.g., materialID), the type of machine that will print the object (e.g., machineID), and the settings needed to begin the slicing process. The .MESO format also includes ownership and date information. In some embodiments, the file may include slicing settings that control the actual geometry slicing.

[0059] node An array of 3D coordinates representing the vertices of all primary geometry in the file. This array is indexed when the file is imported.

[0060] [Table 2]

[0061] Wire Each wire contains an array of nodes and attributes at each node (allowing for a highly abstract parameterized representation of hairy or lattice structures). A collection of wireframes is indexed. Figure 7 shows an exemplary wireframe representation of a simple wire according to various embodiments.

[0062] [Table 3]

[0063] mesh The mesh provides compatibility with other file formats commonly used in additive manufacturing, such as .STL. This should be a watertight mesh.

[0064] shell Each shell contains an array of faces. Each face contains 3-4 instances of node information. A thickness is assigned to each face, so shells can be closed or open manifold or non-manifold. Figure 8 shows an example shell representation that can represent a surface.

[0065] [Table 4]

[0066] The level flags are used to indicate the settings and behaviors that are applied to this geometry during slicing.

[0067] [Table 5]

[0068] Each volume stores a reference / index for the slicing configuration used for the volume. This means: once all x configurations are stored and identified, only a reference and secure ID per volume is used, preserving file sizes and representing flexible and adaptive formatting.

[0069] Additionally, a mask geometry may be used to generate dark regions. Individual flags may be provided to limit the slicing settings available to the user.

[0070] Blending The blended shape is defined by the weighting of the primary geometries: its node locations and attributes are the weighted average of the primary geometries it references.

[0071] [Table 6]

[0072] Figure 9 shows how shapes can be blended by using a weighted average between two different types of designs. Figure 10 shows how shapes can be blended along a surface, and some designs can be blended multi-dimensionally along a surface. It should be understood that any number of designs can be blended using the blend function.

[0073] Profile The profile contains a set of 2D vectors to expand / thicken each vertex of the wireframe. These vectors are transformed into local orientations that align with the curve normal and front-facing vector at each vertex.

[0074] [Table 7]

[0075] Branch A branch contains parameters for placing a child wireframe onto the primary wire. Figure 11 shows an exemplary wireframe representation of a wire with branches or child wireframes extending from the primary wire.

[0076] [Table 8]

[0077] Populate Populate contains parameters for placing children onto the primary shell surface (e.g., placing hair structures onto the surface). Figure 12 shows a diagram of wires populated onto a surface.

[0078] [Table 9]

[0079] Volumetric Mapping Box mapping contains parameters to transform and distort the primary geometry. The primary geometry is remapped from a unit box at the origin to uvw coordinates in a destination box.

[0080] [Table 10]

[0081] Slicing The term "slicing" in 3D printing is used broadly to describe a procedure that, at the end of the procedure, provides 3D printing manufacturing-ready data. Thus, the input of most slicing software is virtual model data encoded in some data format (such as .stl, .obj, or .meso). After passing through the slicing software, the data is converted into a manufacturing machine-interpretable format to control machine behavior (such as positioning motor control units, laser paths, projected images, etc.).

[0082] In some embodiments, the manufacturing process that may be used is DLP printing, so the slicing software is primarily focused on projecting light sequences as the end result of slicing in combination with other secondary printing settings, such as platform travel speed, etc. Because slicing taxonomies do not encompass a full-featured view of the interdependencies between model data slicing settings, printing settings, and machine settings in an overall manufacturing overview, designers tend to use the term "compiling," as in, compiling to manufacturing data or compiling for printing.

[0083] The current state of the art for DLP and most other commonly used slicing software in the 3D printing industry is 3D mesh slicing. Justified by the widespread use of STL formatting for 3D model data, slicing algorithms reconstruct other data formats back into STL-style meshes to be sliced ​​via standard slicing algorithms. While this procedure ensures high backward compatibility, it can come at the expense of efficiency and ignores significant potential for optimization. Especially with the goal of scaling up 3D printing from prototypes to mass production, factors such as computational complexity and cost in terms of time expenditure are important measures for increasing productivity levels.

[0084] In addition to the already mentioned advantages of the .meso data format, the design language can also be created to be highly efficient when read, interpreted, and compiled into printable manufacturing data. In some embodiments, there can be two core slicing engines that can be used to compile .meso data into printable machine data: Mesh reconstruction slicing engine Direct wireframe slicing engine

[0085] .MESO mesh reconstruction slicing As shown in FIG. 13 , an exemplary process for slicing a 3D object according to various embodiments proceeds with slicing planes that move incrementally in parallel through the 3D object. A first slicing engine (mesh reconstruction slicing) is designed for backward compatibility, capable of processing standard data formats such as .stl and .obj. Additionally, some embodiments provide the ability to combine files with multiple different data formats (e.g., .stl) in addition to .meso and slice the resulting model data. The virtual model is converted into a 2D mesh, which, when closed, forms the volume to be sliced ​​and printed. In some embodiments, one aspect of the algorithm is to generate a cutting plane that continuously moves through the model at discrete step-size increments. For DLP printing, this intersection plane may represent the projection plane of the light projected onto the resin. Thus, the intersection between the cutting plane and the mesh-containing volume is calculated for each plane increment step and saved as grayscale bitmap image data.

[0086] In some embodiments of mesh slicing, a GPU slicing algorithm is selected based on a mesh face culling operation. The contained volume is detected by evaluating the amount of triangle meshes facing into or out of the activity field of an incremental step. For this slicing technique to run on a GPU, one can reconstruct the entire model with a 2D mesh with the determined facing direction. The 2D intersections between the faces and the model volume are saved as image data in bitmap format. Every intersection (also called a layer or slice) is later projected onto the resin.

[0087] The GPU slicing algorithm can be, for example, mesh reconstruction with a mesh face thinning slicing algorithm. This algorithm determines whether the current slicing layer is inside or outside the volume by incrementing and decrementing the amount of inward and outward mesh faces. For example, for a simple cube: outside the cube in the front view, both solid faces face the current view layer. The total amount of inward faces is 2. For an even inward face count increment, the algorithm determines that this area is outside the volume. If the current view layer is placed inside the cube and therefore cuts it, the amount of inward faces is evaluated to be 1, which is odd, and therefore inside the volume. The corresponding pixel in the slice will be evaluated to be filled.

[0088] For example, a direct line slicing algorithm can be used that does not reconstruct the actual mesh of the .meso file before slicing. A GPU slicing algorithm is used to generate line projection kerfs directly onto the slice. Mesh reconstruction generates all implicit information from the explicit information in the .meso as the mesh from the .meso. This data is used for mesh reconstruction facet thinning slicing. For direct line slicing, no mesh reconstruction of all implicit information was previously done. The decoding of this information is done "just in time" during slicing to accurately slice this wireframe line if it intersects with the current slicing layer. In case of intersection of a wireframe line with a slicing layer, explicit wireframe line information such as diameter, twist angle, etc. is used to evaluate the projected kerfs of this line, which are stored as pixels on the slice.

[0089] .meso direct wireframe slicing The second slicing engine (direct wireframe slicing) is optimized for the internal .meso data format. Figure 14 shows an exemplary process for slicing a wireframe representation according to various embodiments. Given that the .meso data format does not incorporate meshes (and therefore surfaces), but is based on a more abstract description of the entire body, it is possible to bypass mesh reconstruction / mesh slicing techniques, as it is currently focused specifically on line-based structures. The direct line slicing engine uses a conceptual representation of the smallest building blocks within the .meso design structure (a one-dimensional mathematical notion of a line).

[0090] Derived from the linear algebraic concept of the placement of one-dimensional lines in three-dimensional space, the engine utilizes this vector space to calculate all line intersections with the slicing plane via linear equations. Again, this slicing plane can be moved in discrete steps, layer by layer, through model space as shown in Figure 14. At each increment, all intersections of the 2D faces with all 1D lines are calculated, yielding intersection points (temporarily). The orientation of those intersection points in 3D space can be described in the local reference coordinate system of the slicing plane (indicated in red).

[0091] The .meso data format mentioned above contains information about each line, such as diameter, profile, twist angle, etc., which is then utilized at this point (compare that used before slicing to reconstruct the model into a mesh for mesh reconstruction slicing). With information about the line intersections, start and end points, as well as additional information such as profile, diameter, etc., projected 2D surfaces can be calculated that may be necessary to generate the desired 3D volume output. For example, the mathematical description of the projection of cylindrical / circular profile lines can be derived from conic section cuts as discussed above.

[0092] In combination with adaptive parallel slicing (e.g., model reduction algorithms), this can enhance the computational efficiency of slicing, especially for large model sizes. Direct line slicing of .meso files, enabled by bypassing the global model mesh reconstruction, allows the slicing algorithm to be run on a local subpartition of the .meso file, and in combination with just-in-time involvement of line parameters in the final algorithm step, the algorithm is arbitrarily scalable and parallelizable for distributed slicing.

[0093] Parallel slicing / distributed model algorithm / model reduction In some embodiments, a model reduction algorithm for parallel slicing is provided, stemming from the possibilities opened up by the direct line slicing approach to parallelize slicing algorithms within a single model. Standard data formats follow a fairly indirect approach to formulating volumes by defining meshes that, if fully closed, may generate the volume. This not only leaves a lot of room for common and very frequent errors (such as unclosed meshes and surfaces, which cause format glitches and non-fail-safe behavior due to global errors), but also fails to pass information about the volume's positioning, start and end points, and their local extent. Figure 15 shows an exemplary process for processing portions of a 3D model in parallel, according to various embodiments.

[0094] In some embodiments, the .meso format provides volume start and end points that are useful for processes to distribute models into local sub-models and to distribute computational tasks into multiple smaller tasks. The model reduction algorithms provided herein can be classified as so-called divide and conquer algorithms. In some embodiments, the inventors have realized that a big data algorithm called "map reduce" can be used to process big 3D data models in a more efficient manner.

[0095] The core idea of ​​the model reduction algorithm is to split a model into several smaller models, as with standard oversized slicing, which can then be processed in parallel in a distributed computer cluster architecture (or simply multiple threads or other processing entities). The key to the decomposition of model data is the spatial dependency of the 3D data, which can be accessed in .meso thanks to the included line start and end points. Unfortunately, this information is not provided in standard formats such as .stl or .obj.

[0096] Based on the spatial positioning of all lines, the entire dataset can be sorted. For example, for parallel slicing, the sorting criterion is the slicing direction (z-axis). According to this ordering, the model can be separated into multiple locally independent submodels, also called chunks. A rule of thumb for accelerated slicing might be to separate the model into a number of chunks (and / or other processing entities, such as virtual processors, threads, or other processing entities) equal to the amount of processing cores available in the cluster. In the fairly common case of models that do not have clear / empty areas to separate them (e.g., lines that start at the global model start and end at the global model end), there are several ways to handle this. One approach is to duplicate those lines and transfer them into every traversed chunk. Another approach is to automatically restructure the dataset by separating excessively large / long lines into multiple smaller lines.

[0097] In some embodiments, each chunk is a fully self-sufficient meso sub-model that has all the properties of the "parent" meso model. Therefore, each chunk can be individually sliced ​​as its own instance. From a single large .meso model that is too large to be efficiently sliced ​​as one of a single processing entity (e.g., GPU memory), the system can distribute the model into multiple meso sub-models whose size is efficient for slicing with respect to the processing entity. Knowledge of the placement and structure of the sub-models within the parent .meso model allows the resulting slices of all the sub-models to be composited / fused / overlaid onto the overall sliced ​​result of the parent meso model.

[0098] By using .meso file format data containing individual and discrete volume objects (see MesoVolume class) in addition to a node-based system, it is possible to process large models in a simple, efficient, and fast manner. In contrast, a traditional single mesh data file cannot be distributed into sub-models and spatial chunks in such a fast manner.

[0099] In one implementation, spatial sorting of sub-models / chunks can be performed by an algorithm that defines chunks in the meso parent model volume space (e.g., equidistant in the slice direction (e.g., within four equal-length chunks in the y dimension)). Then, every node of the meso parent model is internally assigned / labeled to which chunk it belongs, i.e., to which chunk it is spatially located (or, if uncertain, the node is labeled with respect to two chunks). For each chunk, a meso sub-model is generated that lists all meso objects / lines that have nodes within this chunk (plus in-reaching objects / lines that have nodes located within a short distance from the chunk and whose volume radius could potentially reach the chunk). Nodes of all sub-models can be left intact, just like in the parent model. Then, all sub-models can be submitted completely independently to virtually and / or physically separated processing entities (e.g., slicing engine programs / routines running on workstations, GPUs, cloud instances, etc.). After the submodel is fully processed, the resulting slice data is merged into the global parent mesomodel volume space (e.g., simply added in terms of equidistant chunking along the slicing direction).

[0100] The model reduction algorithm may be applied to parallelize 3D slicing algorithms, but is not constrained or limited to this. Other applications in 3D modeling (such as nearest neighbor searches or filtering operations) may similarly benefit from distributed and parallel computing.

[0101] Mesoscale printing should be approached as a multidisciplinary approach, and print quality depends on a variety of interdependent factors. Some of these are related to computational slicing. Other areas, such as machine settings, machine process control, and resin material properties, not only have a decisive impact on print accuracy, but also interact with each other and with slicing. Thus, for example, different slicing intensity filters may have different results for different resins or machine setups in terms of print accuracy and resulting characteristics (this is an academic view of the entire process from virtual model to final product as a compilation). In some cases, many aspects of this compilation process are performed manually by hand and through empirical human experience to adjust settings and parameters for optimal printing.

[0102] DLP printing light intensity filtering The compilation process may also, in some embodiments, include image / bitmap data post-processing after each slicing step. To obtain smoother transitions between individual layers, depth subsampling is applied not only by determining a single intersection between the slicing plane and the 3D model, but also by slicing the model (parameterized by the desired degree of subsampling) multiple times (e.g., in equidistant steps) and then averaging the pixel intensities. Depth subsampling illustrating various embodiments of image post-processing with and without depth subsampling is shown in Figures 16A-16B.

[0103] This results in less sharp and distinct edges caused by slicing and layered manufacturing of the print. Undesirable staircase approximation of slopes and hills in the model geometry is prevented by applying the depth subsampling method described herein. The varying grayscale pixel intensities of the projections produce a generally smoother surface of the print.

[0104] In addition to depth subsampling, anti-aliasing within the slicing plane is performed by multisample anti-aliasing (MSAA). MSAA reduces pixel intensity gradients in slices that have already been subsampled and smooths overly sharp corners and edges in the image data. Bottom-up and top-down subsampling combined with multisampling allows for maintaining the ability to print at the highest pixel resolution, especially for slicing and printing angles that deviate from the standard 90 degrees.

[0105] A light intensity fragment filter is then applied to optimize print quality by adjusting the projected light intensity for optimal resin curing. For example, this can include evaluating light refraction and absorption during the curing process and optimizing for the resin used and the desired geometry. The first option for this post-processing step is the standard default setting, which does not modify any pixel values ​​or manipulate the pixel data after sub-slicing and multi-sample slicing. Two other filter categories (gradient filtering and hollow gradient filtering) are provided in both rectangular and radial alternatives. These filters apply customizable kernels to the grayscale bitmap data after slicing. For example, a squared gradient intensity filter for a single active pixel (e.g., a small hair) would produce the result shown in Figure 17A.

[0106] Gradient filters are applied by computing a kernel of active (non-zero) pixels across the entire image. In addition to the filter range (half the side length for squared filters and radius for radial filters) given in number of pixels, the cutoff intensity and minimum intensity of the filter can be defined. In the example shown in Figure 17B of hollow gradient squared kernel filtering, the minimum intensity is set to 0.1, so that the core of the structure is 0.1 instead of 0.

[0107] The minimum luminance is activated if the filter attempts to set pixel values ​​below this threshold. The minimum luminance threshold is then set instead. Alternatively, the opposite cutoff luminance can be applied (which has the effect of setting all pixel values ​​below the defined cutoff luminance threshold to 0).

[0108] FIG. 18A shows an example of a corner smoothing function for a 3D object, and FIG. 18B shows an example with light intensity hollow gradient filtering applied. In FIG. 18A, an example of a gradient intensity filter with a radial kernel and a filter range of 25 is provided to demonstrate the resulting effect of smoothed intensity corners. Also, FIG. 18B shows hollow gradient filtering applied with a radial kernel and a 25-pixel range. This may be particularly useful for printing hollow structures, or in combination with a higher minimum intensity value applied to print larger solids and surfaces, such as structures without complexity. Fine-tuning intensity filter optimization for some resins and model geometries can be a difficult task due to the many contributing factors. Automation of this process with high-level user input, such as custom material properties, is conceivable.

[0109] A typical application of optimized intensity filtering during slicing in the compilation process is a hollow gradient filter to optimize printing accuracy with respect to light refraction within the resin for a computer-optimized uniform curing process. For example, Figure 19 shows the processing of a slice without any filter applied. As seen in Figure 19, without this filter, light refraction within the resin leads to the originally intended refraction of light and UV light scattering, ultimately scattering of the cured resin within the model. Areas surrounded by other curing areas receive more UV light due to light refraction compared to a single pixel being cured. Next, comparing the effect of the hollow gradient emission filter shown in Figure 20, the effect can be summarized as follows: the more neighboring pixels are activated and the more strongly the neighboring pixels are activated, the dimmer the pixel becomes. The overall result is that pixels surrounded by high-intensity projections already receive UV curing light due to refraction and do not need to be cured as much as a single pixel would. For the optimization situation in this example, the amount of introduced light, consisting of directly projected light and refraction scattering, is uniform.

[0110] Design / construction enabled by this process Simple Fiber The wireframe structure efficiently allows for the creation of a variety of fiber types.

number

[0111] A simple example of a wire structure would be a tapered hair. Figure 21A shows an exemplary simple fiber that can be produced by using various embodiments. Figure 21B shows an exemplary cross section of the simple fiber of Figure 21A.

[0112] Referring to Figures 21A and 21B, the tapered hair is defined by a node and a series of parameters.

[0113] The nodes determine the shape of the spine. Thus, the hair passes through points n1, n2, n3,..., n6, which refer to the coordinates listed under "Nodes." The spine can be modified by referencing the various nodes or by changing the coordinates of each node.

[0114] The parameters determine the detailed shape of the hair. The profile determines the cross-sectional shape of the hair. In this case, "square" is selected as shown in Figure 22. The diameter of the hair gradually progresses from 1.0 mm at node n1 to 0.06 mm at n6. The "start" normal is set to the z-axis so that the base of the hair is flush with the base plane. This hair has no twist, so all values ​​of "twist" are set to zero.

[0115] Other types of structures can be generated, including but not limited to nodal hairs (as shown in Figures 23A and 23B), and can be defined as follows:

number

[0116] A kinky hair (as shown in Figures 24A and 24B) can be defined as follows:

number

[0117] fur Dense fur can be achieved in several ways with the .MESO file format, with varying effects on fidelity and data efficiency. For example, every hair can be represented as a separate wireframe. In this case, each hair would have its own parameters, which would allow for feature control down to the individual hair. Alternatively, the format can represent a group of hairs as a population function of a shell face. In this way, only a small amount of geometric information is needed to describe a larger collection of hairs. Multiple population functions can be assigned to the same mesh face for overlapping effects. Figure 25 shows an example of applying multiple population functions to the same mesh face according to various embodiments. Figure 26 shows a uniform population function representing hairs applied to a surface.

[0118] down As in the fur example above, highly detailed and dense structures can be generated by representing all geometry as wireframes, or by using parametric functions supported by the .MESO format to achieve compact data. In the case of feathers, branching functions can efficiently encode the fractal structure. A simple wireframe can be branched to generate the feathers. If the child wireframe also contains a branching function, this fractal branching can be repeated over several layers.

[0119] The example in Figure 27 shows a feather layout design containing 129 blended geometries, each containing various weightings of the parent geometries. The two parents shown in Figures 28A-28B are wires containing their own branching functions.

[0120] lattice Lattice geometries can be generated by populating a Box Mapping with modular units. The modular units are confined within a one-unit-sized box and then remapped onto a series of boxes mapped by eight nodes in a volumetric mapping function. Figure 29 shows a lattice structure that can be generated using modular units such as those shown in Figure 30.

[0121] fabric A woven structure such as that shown in Figure 31 can be realized by mapping weaving unit modules (e.g., as shown in Figure 32) onto shells with various thicknesses and shell surface sizes. In this case, the entire woven structure may be efficiently represented by six wires and one shell.

[0122] swab Swab designs such as those shown in Figures 34A and 34B can be realized with wire assembly. The valve construction can include 1) an internal 3D lattice structure that provides structural rigidity and assists in fluid retention, as shown in Figure 33A; 2) a mesh structure that defines the overall shape and allows for absorption, as shown in Figure 33B; 3) reinforcing elements in the mesh structure to ensure valve integrity, as shown in Figure 33C; and 4) a helical array of fine bristles that sit on the mesh structure, as shown in Figure 33D. Each bristle array is reinforced in its middle by a thin spine.

[0123] The construction of the swab shaft shown in Figures 34A-34B can be 1) constructed using parallel strands of bonded wire and 2) reinforced with loops and struts between each strand. In the example shown in Figure 35, the shaft features interruptions and was achieved by reducing the diameter of short sections of the parallel strands at the interruptions. An alternative shaft construction consists of 1) a lattice shaft wall structure as the primary structure, 2) internal shear strengthening elements, and 3) a spiral texture curve as a finish on the exterior surface.

[0124] In an alternative construction of the shaft as shown in Figure 36A, the shaft includes 1) a primary structure made up of line elements in a diamond grid pattern in a cylindrical format, 2) a secondary structure made up of an internal spiral surface attached to the diamond grid that provides internal shear resistance, and 3) a textured finish made up of thinner line elements spiraling on the exterior to provide a refined finish. Figure 36B shows a break point that includes a reduced diameter.

[0125] Regarding the construction of the valve, the lattice and hair line elements can be curled in an S-shape to provide elasticity and compliance. The stiffness of the valve can be determined by controlling a combination of the following factors: hair spacing, hair diameter, hair curvature / S-shape, density of the primary and secondary web structures, and the diameter of the web lines. In general, the denser the structure, with elements closely spaced together, the stiffer the valve will be; i.e., the thicker the line elements, the stiffer the valve will be.

[0126] The diameter of exemplary hair or mesh structures can vary (e.g., 50 μm to 300 μm). The apertures of exemplary mesh structures can be altered to control fluid absorption and release. Mesh aperture sizes can vary from 2 mm to 100 μm.

[0127] By modifying the properties of the shaft's structure, different stiffnesses can be achieved. For example, the neck region of the shaft has a smaller overall diameter. A diamond grid is stretched along the length of the shaft. The line elements are thinner and the internal helical surface is narrower. This results in flexible and soft regions of the shaft that can be bent around a narrow radius. Vice versa, a stiff and rigid handle region can be achieved with inverse properties.

[0128] A break point can be introduced anywhere along the axis. A break point is a narrow area of ​​increased weakness. This is achieved by reducing the wire element diameter and by reducing the overall diameter. This creates an hourglass-shaped area where the torsional force also increases. This area is visually highlighted by rings on both ends of the area for easy identification.

[0129] Indicators can be introduced anywhere along the axis. Indicators are enlarged regions of the axis. Additional line elements are added on top of the existing axis instead of modifying the axis structure. This helps maintain uniform stiffness of the axis. The additional line elements, arranged in a diamond grid pattern, form the indicator structure.

[0130] Regarding the design workflow, the shape of the valve can potentially be freely defined by a bounding volume. Together with the lengths and locations of the break points and / or indicators (if any) and the desired diameter of the functional parts, this information is fed into the parametric modeling software, which builds the MESO structure and assigns corresponding values ​​to each line element.

[0131] As shown in Figures 36C-36D, swabs (referred to as InstaSwabs) produced using at least some of the methods described herein can outperform other types of swabs (such as mid-turbinate, anterior, or nasopharyngeal swabs, as well as flocked swabs) used in medical applications, making them suitable for a variety of applications, including home testing kits. Laboratory results indicate that such swabs have higher liquid / solid separation rates than conventional cotton swabs and higher microbial conversion efficiencies than market-leading flocked swabs. Figure 36C shows a bacterial elution test to evaluate how efficiently a swab can collect and release a bacterial sample. A bacterial sample is collected by the swab. The sample is released into a medium and then diluted to a series of concentrations. From each concentration, the number of bacterial units that grow into biological colonies (colony-forming units, or CFUs) is counted. As shown in Figure 36C, each bright spot on the agar plate represents a bacterial colony. A good swab will release so many live bacteria after full dilution that it is still possible to detect them, which is one of the most important criteria for disease diagnosis (finding enough pathogens to test for).

[0132] makeup applicator Cosmetic applicators such as mascara brushes, foam applicators, brushes, etc. can be realized with a group of wires. The .MESO format allows for a high degree of customization of bristle characteristics (including 1) bristle diameter, 2) bristle spacing, 3) product retention features, and 4) overall geometry) that are unique to the cosmetic application.

[0133] This cosmetic applicator, shown in Figure 37, includes 1) a dense lattice core as the primary structure, 2) bristles of various lengths and diameters emerging from the lattice core, 3) reinforcing wires running between the middle portions of the bristles, and 4) a shaft composed of the dense lattice structure.

[0134] Customization of the design is facilitated by the MESO file format, which contains a simplified representation of the wire with base curves. Applicator features are procedurally generated by deriving the geometry through the following steps: 1) The lattice core of the valve and shaft is generated by offsetting a shell around a 3D freeform curve. 2) The wire structures grow from the central core by approximately a specified range of angles around the axis of the central core. 3) Freeform 3D bounding geometry defines the trimming length of each wire structure. 4) The diameter and profile of each wire are individually defined within its MESO data. This allows for a high degree of customization of the overall geometry.

[0135] Customization varies from application to application. For example, in the case of a mascara brush, various parameters can be adjusted to suit the application of mascara. For example, bristle spacing can be adjusted to control deposition of mascara fluid; for example, coarser spacing allows for heavier application, and vice versa. The position and thickness of the reinforcing wire controls fluid retention on the brush. Figure 38 shows various cosmetic applicator designs according to various embodiments with various diameters, spacing profiles, and core shapes. Figures 39A-39C show various other types of cosmetic applicators with various brush shapes according to some embodiments.

[0136] false eyelashes Fabricating false eyelashes is a highly labor-intensive process. However, the inventors realized that the same or better product could be achieved with a group of wires and 3D printed. Wire structures can be used to represent arrays of wires with customizable curvature and thickness. In combination with the RAMP system, eyelash thicknesses of 0.05-0.15 mm can be achieved, approximating existing synthetic monofilament eyelashes.

[0137] In some embodiments, customization can be facilitated by the MESO file format, which has a simplified representation of wires with basic curves. Eyelash features can be procedurally generated by the following steps: 1) 3D freeform wires form basic strips. 2) A series of normalization values ​​and vectors define the basic position and orientation of each eyelash. 3) The 3D freeform wires are moved onto each position and aligned to the corresponding direction. Figure 40 shows an example design of eyelashes using a wireframe representation. Figure 41 shows various eyelash designs according to some embodiments.

[0138] support Support structures are sacrificial structures that provide stability and anchoring points for printed objects. Support structures also provide. These structures are typically removed and discarded. Support structures use the same data structures as other geometry, but are labeled with a unique flag.

[0139] In some embodiments, there are three types of support structures: 1) column supports, 2) frame supports, and 3) tip supports.

[0140] column support The post supports are typically tapered wires that are anchored onto the substrate / convenient location of other printed components and contact the printed components with a minimal footprint.

[0141] The post support is typically perpendicular to the resin level. This minimizes deflection given the slight buoyancy of the cured resin. In some embodiments, the contact point diameter is 0.05-0.1 mm for various adhesion strengths. Small contact points quickly grow into thicker stems. The stem can either be anchored to the substrate with a larger footprint, or rest on another print with a minimal footprint.

[0142] Along the length of a long print, a gradient column support array can be used to account for the curvature of the resin vet. Thinner supports are used toward the front of the print, which will collapse and deform when they reach the curvature at the bottom of the resin vet, while diagonal reinforcement supports that remain stiff are used toward the edges of the print. The gradient in stiffness allows the support structure to collapse continuously in a predictable manner. Figure 42 shows the column support technique using a wireframe representation according to various embodiments.

[0143] Frame support The frame support is a network of wires that provides anchoring points for the overhanging bristles.

[0144] Overhangs refer to portions of a print that do not build on a previously printed layer. Overhangs on continuous surfaces can be addressed with post supports because smooth surfaces usually have few vertices that require support. However, overhanging fine and dense fur cannot be supported by post supports because it would create an evenly dense array of post supports that would be difficult to remove and would fuse into a larger solid using a large amount of resin.

[0145] The frame support reciprocates the tip of each overhanging bristles along with each node of the network. This forms a cocoon around all the overhanging bristles, which are anchored by the tree-like structure. The perforations in the frame support also minimize obstructions to resin flow. Figure 43 shows a frame support for anchoring overhanging bristles according to some embodiments.

[0146] Tip support The tip support is an integrated grid-like structure whose primary purpose is to provide good print anchorage at the beginning of the printing process.

[0147] In most conventional DLP / SLA printing processes, the printing direction is perpendicular to the resin level. The build platform adhesive is typically applied by building some of the skeletal structures vertically from the build platform to the print. This adhesive holds the print in place against gravity and the attractive forces from the newly cured layer. This is also important for prints with irregular shapes that may not sit flush on the build platform. These adhesive skeletal structures also provide anchoring points from which overhanging surfaces can grow.

[0148] Unlike conventional systems, OPT RAMPS uses a roll-to-roll cDLP configuration in which the resin level is at an angle (usually 45 degrees) to the printing direction. The gap between the substrate and the print must also be maintained for optimal printing accuracy. This introduces a unique challenge to the "structure platform adhesion" problem. The angle between the printing direction and the resin level exposes the adhesive skeletal structure to shear forces. The gap also means that most of the print is suspended without direct contact with the substrate.

[0149] The tip supports are a substitute for the print bed mounting structure in traditional vertical printing. The tips provide an anchoring area perpendicular to the printing direction that is elevated further from the substrate. The branched structure allows for abundant resin flow while increasing the support footprint and support density.

[0150] Cocoon Support The quality of printed structures (especially small features and fine hairs) is highly dependent on the printing direction. Structures perpendicular to the resin level provide the best results, but cantilevered structures and overhangs require support structures. Traditionally, these conditions are solved with pillar support structures that provide anchorage for surface growth. However, pillar support does not apply to individually supporting fine hair structures; each hair would create a dense structure that is inefficient. Many applications, such as brushes, have multiple opposingly pointing fine hair structures. This cocoon support strategy can support a large number of fine hair structures with a thin porous mesh that is in turn supported by pillars. Figure 44 shows an exemplary cocoon support strategy according to various embodiments.

[0151] The creation of cocoon supports is uniquely enabled by the MESO file format, as line direction and overhang are easily detected by taking dot generation in the print direction (implying parallelism). Meshes can also be extracted from MESO wire data, where the tips of the hairs form the nodes of a triangular mesh.

[0152] Small support columns can grow from the mesh interfacing the fine hair structures. The tapering of both the support and the hairs creates pinch points at their intersections, providing convenient cutting points and facilitating removal. These small hairs also absorb any irregularities between adjacent hair lengths, resulting in a smoother cocoon mesh.

[0153] The cocoon mesh provides additional protection to all microstructures and facilitates correct shaping. The cocoon acts as a flow shield that regulates resin flow, reducing local turbulence and allowing for smooth, natural recoating. The cocoon also increases local resin temperature and facilitates resin cure.

[0154] The cocoon structure also allows for stacking of objects with microstructures and other objects requiring support structures that may rest on top of each other. The cocoon structure prevents support from the geometry above from resting directly on the microstructure. Instead, supports coming down from above will rest on the cocoon, and loads are transferred along the mesh structure. Figures 45A and 45B show examples of cocoon supports and cross sections, respectively.

[0155] The above-described embodiments may be implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software, or a combination thereof. If implemented in software, the software code may be executed on any suitable processor or collection of processors, whether provided within a single computer or distributed among multiple computers. It should be understood that any component or collection of components performing the functions described above may be generally considered to be one or more controllers that control the functions discussed above. The controller or controllers may be implemented in a myriad of ways (e.g., by dedicated hardware, or by one or more processors programmed using microcode or software to perform the functions).

[0156] In this regard, it should be understood that one implementation of some embodiments of the present invention includes at least one non-transitory computer-readable storage medium (e.g., computer memory, portable memory, compact disc, etc.) encoded with a computer program (i.e., a plurality of instructions) that, when executed on a processor, performs the functions discussed above in embodiments of the present invention. The computer-readable storage medium may be portable such that the program stored thereon can be loaded onto any computer resource to implement the aspects of the present invention discussed herein. In addition, it should be understood that reference to a computer program that, when executed, performs the functions discussed above is not limited to an application program running on a host computer. Rather, the term "computer program" is used herein in a generic sense to refer to any type of computer code (e.g., software or microcode) that can be employed to program a processor to implement the above-described aspects of the present invention.

[0157] Various aspects of the present invention may be used alone, in combination, or in a wide variety of configurations not specifically discussed in the embodiments described above, and therefore are not limited in their application to the details and arrangements of parts hereinabove described or illustrated in the accompanying drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.

[0158] Additionally, embodiments of the invention may be implemented as one or more methods, examples of which are provided. The acts performed as part of the method may be ordered in any suitable manner. Thus, even if an exemplary embodiment shows acts as sequential, embodiments may be constructed in which the acts are performed in a different order than shown, and which may include performing some acts simultaneously.

[0159] The use of ordinal numbers such as "first," "second," "third," etc. in the claims to modify claimed elements does not, by itself, imply any priority or order or chronological order in which method actions are performed of one claimed element relative to other elements. Such terms are merely used as labels to distinguish one claimed element having a certain name from other elements having the same name (without the use of ordinal terms).

[0160] The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of "comprises," "consists," "has," "includes," "involves," and variations thereof is meant to encompass the items listed thereafter and additional items.

[0161] While several embodiments of the present invention have been described in detail, various modifications and improvements will readily occur to those skilled in the art. Such modifications and improvements are intended to be within the spirit and scope of the present invention. Accordingly, the foregoing description is by way of example only and is not intended to be limiting. The present invention is limited only as defined by the following claims and equivalents thereof.

Claims

1. 1. A non-transitory computer readable medium encoded with a computer program for controlling 3D printing, the computer program including computer readable code for representing a data structure of a 3D object, the computer readable code, when interpreted by a computer system, causing the computer system to control a 3D printing operation of the 3D object in part according to the data structure, the data structure comprising: a first data block encoding node information, the node information identifying a plurality of 3D coordinates defining a plurality of nodes within a 3D wireframe object; a second data block encoding wire information, the wire information identifying at least one wire object, the wire information including a plurality of indices corresponding to respective nodes of the plurality of nodes defined in the first data block to represent two or more nodes of the at least one wire object, the wire information encoded in the data structure further identifying one or more attributes including at least a respective diameter associated with each of the two or more nodes of the at least one wire object forming a central spine object including a plurality of lines collectively identifying the at least one wire object within the 3D wireframe object; shell information encoded within the data structure, the shell information identifying a surface to which the at least one wire object is attached; 1. A non-transitory computer-readable medium comprising:

2. The non-transitory computer-readable medium of claim 1 , wherein the data structure further includes a populate function that defines repeated copies of the at least one wire object for a plurality of points on the surface.

3. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises a blend function adapted to blend at least two geometries.

4. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises mesh information that provides compatibility to a mesh geometry.

5. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises a branch function that describes one or more child objects attached to the at least one wire object.

6. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises parameters controlling at least one of a diameter, a shape, and / or a twist of the at least one wire object.

7. The non-transitory computer-readable medium of claim 1 , wherein the data structure encoding the 3D object, when received and interpreted by a computer system, causes the computer system to render a representation of the 3D object.

8. The non-transitory computer-readable medium of claim 1 , wherein the data structure, when received and interpreted by a computer system, causes the computer system to generate a 3D swab or applicator.

9. The non-transitory computer-readable medium of claim 1 , wherein the data structure is configured to cause a computer system to generate a blended design of at least two designs.

10. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises a volumetric mapping function.

11. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises information identifying an array of vertices of the 3D wireframe object.

12. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises information identifying vertices that define a central polyline spine of the at least one wire object.

13. The non-transitory computer-readable medium of claim 12 , wherein the data structure further comprises a diameter of the at least one wire object at each of the vertices.

14. The non-transitory computer-readable medium of claim 12 , wherein the data structure further comprises rotation information of the at least one wire object along its vertices.

15. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises information identifying a normal direction of a starting face at a starting point of the at least one wire object.

16. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises a parameter that controls a diameter of the at least one wire object.

17. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises parameters that control a shape and / or twist of the at least one wire object.

18. The non-transitory computer-readable medium of claim 1 , wherein the data structure further comprises parameters that control twisting of the at least one wire object.

19. The non-transitory computer-readable medium of claim 1 , wherein the one or more attributes associated with each of the two or more nodes of the plurality of nodes further include a respective twist angle.

Citation Information

Patent Citations

  • Treatment unit, blood vessel model, image processing method, program, and molding device

    JP2015219371A

  • Design support system, design support method, and design support program

    JP2020017097A