Method and device for restricting shape deformation of 3D objects
Constraint template modeling addresses the challenges of customizing complex 3D objects by applying zone definitions and topological constraints, ensuring precise alignment and manufacturability while respecting branding and engineering tolerances.
Patent Information
- Application Number
- JP2022573284
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-05-25
- Filing Date
- 2021-05-25
- Publication Date
- 2025-11-05
- Estimated Expiration
- 2041-05-25
AI Technical Summary
Existing 3D modeling techniques struggle with customizing complex objects, as they require extensive development, testing, and are prone to algorithmic failures, especially when conforming 3D objects to target surfaces while maintaining detailed model proportions and mechanical functionality.
A method called 'constraint template modeling' (CTM) is employed, which involves receiving a 3D object and target object, applying zone definitions and constraints, and using topological graphs to generate a deformed 3D object that meets specific constraints, ensuring compliance with product function, form, and engineering tolerances.
CTM enables customizable 3D object deformation that respects branding, styling, and engineering constraints, facilitating complex product adaptation and ensuring printability/manufacturability, while maintaining precise geometric and functional alignment.
Smart Images

Figure 0007764403000001 
Figure 0007764403000002 
Figure 0007764403000003
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application is a Patent Cooperation Treaty application claiming the benefit of 35 U.S.C. § 119 based on priority to U.S. Provisional Patent Application No. 63 / 029,640, filed May 25, 2020, which is incorporated herein by reference in its entirety.
[0002] Generally, various embodiments of a device for constraining shape deformation of a 3D object, as well as methods of use thereof, are described herein. [Background technology]
[0003] The following paragraphs are provided as background to the present disclosure, but they are not an admission that anything discussed therein is prior art or part of the knowledge of those skilled in the art.
[0004] The recent emergence of additive manufacturing, colloquially known as 3D printing, has paved the way for easily customizing various objects to fit user requirements. This can include changing the shape and size, as well as providing specific elements that may not have been part of the original object. To perform additive manufacturing, an object is typically sliced into thin layers, and the resulting layers serve as the basis for instructions to "print" the object in different materials.
[0005] Traditionally, the customization process for a given object begins by generatively building geometry over a scan of the individual, a process called parametric modeling. The more complex the product, the more difficult it is to customize it, as more features mean more development, more testing, and more opportunities for algorithmic failure.
[0006] In 3D modeling, animation, effects, manufacturing, and rendering applications, it may be desirable to customize one 3D object or part onto another target object. For example, a knee brace company's products may be customized or fitted onto a 3D scan of the knee of the person for whom the knee brace is intended. In another example, complex padding may be wrapped around a spherical surface, such as a 3D scan of a head. In such an example, the knee and head are both referred to as the 3D target object, and the knee brace and the complex padding are both referred to as the 3D object. In such applications / effects, it may be desirable for the 3D object to conform to the surface of the 3D target object while retaining its detailed model proportions. In another example, it may be desirable for a zone of the 3D object to conform to the surface of the 3D target object, with other zones of the 3D object capable of precise rotational and translation to mechanically function, and yet other zones of the 3D object may be referred to as acting as smooth transitions between other zones.
[0007] What is needed is a system and method for providing a modified 3D object of a product or 3D object that meets certain constraints that address the above-mentioned problems and / or shortcomings. Summary of the Invention [Problem to be solved by the invention]
[0008] Various embodiments of systems and methods, and computer products for use therewith, for providing a modified model of a product or object that satisfies predetermined constraints are provided in accordance with the teachings herein. [Means for solving the problem]
[0009] According to one aspect of the present invention, a method for constrainedly deforming a 3D object on a 3D target object is disclosed, the method including receiving a 3D object and the 3D target object; applying zone definitions and constrained zone selections to the 3D object to generate a 3D model having a plurality of zones; applying constraints to the 3D model via zone processing applied to the plurality of zones to generate the deformed 3D object; and outputting the deformed 3D object for use in digitally fabricating the deformed 3D object.
[0010] In another aspect, a method for transferring one or more bounded regions using a topological graph of a first 3D object to a second 3D object of similar topology includes receiving the first 3D object and the second 3D object; receiving one or more bounded regions for one or more branches of the first 3D object; analyzing the first 3D object to obtain a first topological graph; creating a first parameterization using the first topological graph, the first parameterization including a first set of scalar functions for the first 3D object corresponding to one or more branches of the first 3D object; and analyzing the second 3D object to obtain the second topological graph. and creating a second parameterization using a second topological graph, the second parameterization including a second set of scalar functions for the first 3D object corresponding to one or more branches of the first 3D object; generating one or more scalar values corresponding to a bounded region on the first 3D object using the first set of scalar functions; constructing a location of the bounded region on a second 3D object using the one or more scalar values and the second set of scalar functions; and outputting the bounded region on the second 3D object for use in digitally fabricating the bounded region on the second 3D object.
[0011] In another aspect, a method for transferring a first set of scalar fields to a second 3D object of similar topology using a topological graph of a first 3D object includes receiving the first 3D object and the second 3D object; receiving, for one or more branches of the first 3D object, a first set of scalar fields in a space adjacent to the first 3D object; analyzing the first 3D object to obtain a first topological graph; and using the first topological graph to generate a first parameterization including a first set of scalar functions of the first 3D object corresponding to the one or more branches of the first 3D object. analyzing the second 3D object to obtain a second topological graph and using the second topological graph to create a second parameterization including a second set of scalar functions for the second 3D object corresponding to one or more branches of the first 3D object; constructing a second set of scalar fields to be applied to the second 3D object using the first parameterization, the second parameterization, and the first set of scalar fields; and outputting the second set of scalar fields for use in digitally fabricating the second 3D object.
[0012] In another aspect, a method is disclosed for creating one or more bounded regions on a 3D object according to a topology of the 3D object, the method including: receiving a 3D object having one or more branches; receiving one or more scalar values for one or more branches of the 3D object for use in creating the one or more bounded regions on the 3D object; analyzing the 3D object to obtain a topological graph, the topological graph having one or more segments corresponding to the one or more branches, using the topological graph to create a parameterization, the parameterization including one or more scalar functions for the 3D object corresponding to the one or more branches; creating one or more bounded regions each for each of the one or more branches of the 3D object using the one or more scalar values and the one or more scalar functions; and outputting the bounded regions of the 3D object for use in digitally fabricating the 3D object.
[0013] In another aspect, a method is disclosed for simplifying the topology of a 3D object while preserving its geometry, the method including receiving a 3D object and target topology characteristics; performing a morphological dilation operation on the 3D object until the target topology characteristics are achieved, thereby generating an augmented surface; calculating an optimal trajectory using a field calculated from the characteristics of the 3D object to displace each point of the augmented surface towards the 3D object; displacing the augmented surface according to the optimal trajectory until a stopping criterion is reached for each individual point of the augmented surface, thereby generating a modified 3D object with simplified topology; and outputting the modified 3D object for use in digitally fabricating the modified 3D object.
[0014] In another aspect, a method is disclosed for constraining a boundary curve of a first surface of a first 3D object onto a second surface of a second 3D object, the method including: receiving a first 3D object having a first surface, the first surface having one or more boundary curves; calculating an initial solution of the one or more boundary curves of the first surface onto the second surface; reducing distortion of the initial solution onto the second surface using an energy calculation and optimization of displacements of points of the optimized solution compared to the boundary curve of the source surface, thereby creating an optimized solution; and outputting the optimized solution boundary curve for use in digitally fabricating the optimized solution boundary curve.
[0015] In another aspect, a method is disclosed for deforming a 3D object in a constrained manner, the method including receiving the 3D object, applying partial processing of the 3D object via a topological rig, thereby generating a plurality of branches into which the 3D object is separated, applying zone definitions and constrained zone selections to the plurality of branches, thereby generating a 3D model having a plurality of zones, applying constraints to the 3D model via zone processing applied to the plurality of zones, thereby generating a deformed 3D object, and outputting the deformed 3D object for use in digitally fabricating the deformed 3D object.
[0016] Other features and advantages of the present application will become apparent from the following detailed description taken in conjunction with the accompanying drawings. It should be understood, however, that the detailed description and specific examples, while indicating preferred embodiments of the present application, are given by way of illustration only, since various changes and modifications within the spirit and scope of the present application will become apparent to those skilled in the art from this detailed description. [Brief explanation of the drawings]
[0017] For a better understanding of the various embodiments described herein, and to show more clearly how these may be put into practice, reference is made to the accompanying drawings, which show, by way of example, at least one exemplary embodiment and which are now described, and which are not intended to limit the scope of the teachings described herein. [Figure 1] FIG. 1 shows a block diagram of an exemplary embodiment of an automated system for constraining shape deformation of a 3D object. [Figure 2] FIG. 2 shows an exemplary embodiment of a 3D object and a 3D target object. [Figure 3] FIG. 3 illustrates an exemplary embodiment of a 3D object divided into branches. [Figure 4] FIG. 4 illustrates an exemplary embodiment of the 3D object of FIG. 3 with a centerline and a discontinuity. [Figure 5] FIG. 5 illustrates an exemplary embodiment of the 3D object of FIG. 1 separated into different interior and exterior zones, thereby resulting in a 3D model. [Figure 6] FIG. 6 illustrates an exemplary embodiment of an external rigid element of a 3D model positioned relative to a 3D target object. [Figure 7] FIG. 7 illustrates an exemplary embodiment of an external non-rigid element of a 3D model fitted onto a 3D target object. [Figure 8] FIG. 8 illustrates an exemplary embodiment of internal non-rigid elements of a 3D model arranged according to the external rigid and non-rigid elements of FIGS. [Figure 9] FIG. 9 illustrates an exemplary embodiment of an internal non-rigid element with an embedded internal rigid element that undergoes deformation. [Figure 10] FIG. 10 shows a flowchart of an exemplary embodiment of a method for fitting a 3D object to a 3D target object. [Figure 11] FIG. 11 shows a flowchart of an exemplary embodiment of a method for deforming a 3D object in a constrained manner. [Figure 12] FIG. 12 shows a flowchart of an exemplary embodiment of a method for using a topological graph of a first 3D object to transfer a bounded region to a second 3D object of similar topology. [Figure 13] FIG. 13 shows a flowchart of an example embodiment of a method for using a topological graph of a first 3D object to transfer a first set of scalar fields to a second 3D object of similar topology. [Figure 14] FIG. 14 shows a flowchart of an example embodiment of a method for creating one or more bounded areas on a 3D object according to the topology of the 3D object. [Figure 15] FIG. 15 shows a flowchart of an exemplary embodiment of a method for simplifying the topology of a 3D object while maintaining similar geometry. [Figure 16] FIG. 16 shows a flowchart of an exemplary embodiment of a method for constraining boundary curves of a surface of a first 3D object onto a surface of a second 3D object. [Figure 17] FIG. 17 shows a flowchart of an exemplary embodiment of a method for constrainedly deforming a 3D object into a deformed 3D object.
[0018] Further aspects and features of the exemplary embodiments described herein will become apparent from the following description taken in conjunction with the accompanying drawings. DETAILED DESCRIPTION OF THE INVENTION
[0019] Various embodiments according to the teachings herein are described below to provide an example of at least one embodiment of the claimed subject matter. The embodiments described herein do not limit the claimed subject matter. The claimed subject matter is not limited to devices, systems, or methods having all of the features of any one of the devices, systems, or methods described below, or to features common to more than one or all of the devices, systems, or methods described herein. It is possible that there may be devices, systems, or methods that are not embodiments of the subject matter described and claimed herein. Any subject matter described herein that is not claimed in this document may be the subject of another means of protection, for example, a continuing patent application, and the applicant, inventor, or owner does not intend to abandon, disclaim, or dedicate to the public any such subject matter by its disclosure in this document.
[0020] It will be understood that for simplicity and clarity of description, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. Additionally, numerous specific details are set forth in order to provide a thorough understanding of the embodiments described herein. However, it will be understood by those skilled in the art that the embodiments described herein may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the embodiments described herein. Additionally, the description should not be considered as limiting the scope of the embodiments described herein.
[0021] It should also be noted that the terms "coupled" or "couple" as used herein can have several different meanings depending on the context in which the terms are used. For example, the terms coupled or couple can have mechanical or electrical connotations. For example, as used herein, the terms coupled or couple can indicate that two elements or devices may be directly connected to each other, or may be connected to each other through one or more intermediate elements or devices, via electrical signals, electrical connections, or mechanical elements, depending on the particular context.
[0022] It should also be noted that, as used herein, the term "and / or" is intended to represent an inclusive "or." That is, "X and / or Y" is intended to mean, for example, X or Y, or both. As a further example, "X, Y, and / or Z" is intended to mean X or Y or Z, or any combination thereof.
[0023] It should be noted that terms of degree, such as "substantially," "about," and "approximately," as used herein, refer to a reasonable amount of deviation from the modified term that does not significantly alter the end result. These terms of degree may also be interpreted as including deviations from the modified term, such as, for example, 1%, 2%, 5%, or 10%, if such deviations do not negate the meaning of the term they modify.
[0024] Additionally, the recitation herein of numerical ranges by endpoints includes all numbers and fractions subsumed within that range (e.g., 1 to 5 includes 1, 1.5, 2, 2.75, 3, 3.90, 4, and 5). It should also be understood that all numbers and fractions thereof are presumed to be modified by the term "about," which means a variance of the referenced number by a certain amount, e.g., 1%, 2%, 5%, or 10%, etc., where the end result would not be significantly altered.
[0025] It should also be noted that use of the term "window" in conjunction with describing the operation of any system or method described herein is meant to be understood as describing a user interface for performing initialization, configuration, or other user actions.
[0026] Exemplary embodiments of devices, systems, or methods described in accordance with the teachings herein may be implemented as a combination of hardware and software. For example, the embodiments described herein may be implemented, at least in part, by using one or more computer programs running on one or more programmable devices comprising at least one processing element and at least one storage element (i.e., at least one volatile memory element and at least one non-volatile memory element). The hardware may include input devices including at least one of a touchscreen, a keyboard, a mouse, buttons, keys, sliders, etc., as well as one or more of a display, a printer, etc., depending on the hardware implementation.
[0027] It should also be noted that there may be some elements used to implement at least some of the embodiments described herein that may be implemented via software written in a high-level procedural language, such as object-oriented programming. The program code may be written in C++, C#, JavaScript, Python, or any other suitable programming language, and may comprise modules or classes, as known to those skilled in the art of object-oriented programming. Alternatively, or in addition, some of these elements that are implemented via software may be written in assembly language, machine language, or firmware, as appropriate. In either case, the language may be a compiled or interpreted language.
[0028] At least some of these software programs may be stored on a computer-readable medium, such as, but not limited to, a ROM, magnetic disk, optical disk, USB key, etc., readable by a device having a processor, an operating system, and associated hardware and software necessary to implement the functionality of at least one of the embodiments described herein. When read by the device, the software program code configures the device to operate in a new, specific, predefined manner (e.g., as a special-purpose computer) to perform at least one of the methods described herein.
[0029] At least some of the programs associated with the device, system, and method embodiments described herein may be capable of being distributed in a computer program product comprising a computer-readable medium carrying computer-usable instructions, such as program code, for one or more processing units. The medium may be provided in various forms, including, but not limited to, one or more diskettes, compact discs, tapes, chips, and non-transitory forms such as magnetic and electronic storage devices. In alternative embodiments, the medium may be transitory in nature, such as, but not limited to, wireline transmissions, satellite transmissions, Internet transmissions (e.g., downloads), media, digital and analog signals, etc. The computer-usable instructions may also be in various formats, including compiled and non-compiled code.
[0030] In accordance with the teachings herein, various embodiments are provided for methods and devices for constraining shape deformation of a 3D object, and computer products for use therewith.
[0031] A new modeling paradigm called "constraint template modeling" (CTM), in which a template references a 3D object, achieves the goal of individualizing complex products with complex requirements (such as internal compliance of thickness). The inputs of this modeling technique are a 3D object, which is the product itself (e.g., a knee brace), and a 3D target object, which is a 3D scan (e.g., of an individual). The product 3D object, or simply the 3D object, may be generated by any commercially available computer-aided design (CAD) software capable of exporting standard CAD exchange files such as STEP or IGES. The output is a deformed 3D object that meets the given constraints.
[0032] Various embodiments of the systems and methods employing CTM described herein provide one or more of the following advantages over traditional parametric modeling: (1) enable product customization while respecting complex product branding and styling; (2) enable complex product adaptation, thereby achieving high performance products; (3) respect the engineering tolerances required for product certification; (4) easily integrate a wide variety of styles / branding into a product; and (5) enable customization of Non-Uniform Rational B-Spline Curves (NURBS) and mesh representation while ensuring printability / manufacturability of the shipped product. A description of the preferred embodiments is detailed herein.
[0033] Given a three-dimensional model, at least one embodiment provides a method for creating copies of the 3D object through transformations (e.g., morphing, transforming) that respect a set of external and internal constraints to ensure compliance with product function, form, fit, manufacturability, aesthetics, and / or engineering constraints. Different zones of the 3D object can be identified and treated as rigid elements that allow only a limited number of transformations, and non-rigid elements that allow a greater number of transformations, according to environmental constraints (external), such as maintaining aesthetics or meeting engineering constraints, or constraints internal to the complex model (internal).
[0034] In one or more embodiments, the method is applied to fit a 3D object to another object (a 3D target object), such as, but not limited to, a body part.
[0035] Additional embodiments provide and enable a user interface that allows selection of different zones within a 3D object according to any combination of the following constraint zones: Extrinsic Non-Rigid (XNR) that allows matching a subset surface of the 3D object with the surface of the 3D target object. External rigid bodies (XR) that allow respecting external constraints on the functionality of the product (3D object). Inner Rigid Body (IR) that allows respecting the internal structure of the 3D object. · Internal Non-Rigid (INR) that allows for the fusion of other constraint zones with respect to engineering and aesthetic constraints.
[0036] The user interface also provides the ability to place various Boolean operations (before, between, and / or after different phases) that identify elements such as, but not limited to, bores, carvings, and lattice structures to be fitted onto the 3D object.
[0037] 1 , a block diagram of an example embodiment of an automated system 100 for constraining shape deformation of a 3D object is shown. System 100 includes at least one user device 110 and / or at least one server 120. User device 110 and server 120 can communicate, for example, wirelessly or via the Internet. System 100 can include a digital fabrication unit 160 (such as a 3D printer, a CNC milling machine, a machining center, a laser cutter, a water jet cutter, or a CNC lathe).
[0038] The user device 110 may be a computing device operated by a user. The user device 110 may be, for example, a smartphone, a smartwatch, a tablet computer, a laptop, a virtual reality (VR) device, or an augmented reality (AR) device. The user device 110 may also be a combination of computing devices operating together, such as, for example, a smartphone and a sensor. The user device 110 may also be a device operated separately by a user, such as, for example, a drone, a robot, or a remote control device. In such cases, the user device 110 may be operated by the user via, for example, a personal computing device (such as a smartphone). The user device 110 may be configured to run applications (e.g., mobile apps) that communicate with other parts of the system 100, such as the server 120.
[0039] Server 120 may run on a single computer that includes a processor unit 124, a display 126, a user interface 128, an interface unit 130, input / output (I / O) hardware 132, a network unit 134, a power supply unit 136, and a memory unit (also called a "data store") 138. In other embodiments, server 120 may have more or fewer components but generally function similarly. For example, server 120 may be implemented using two or more computing devices.
[0040] The processor unit 124 may include a standard processor, such as an Intel Xeon processor. Alternatively, there may be multiple processors used by the processor unit 124, which may function in parallel to perform certain functions. The display 126 may be, but is not limited to, a computer monitor or an LCD display, such as one for a tablet device. The user interface 128 may be an application programming interface (API) or web-based application accessible via the network unit 134. The network unit 134 may be a standard network adapter, such as an Ethernet or 802.11x adapter.
[0041] The processor unit 124 may also execute a graphical user interface (GUI) engine 154 that is used to generate various GUIs. The GUI engine 154 provides data according to a specific layout for each user interface and also receives data or control input from the user. The GUI then uses the input from the user to change the data shown on the current user interface or to change the operation of the server 120, which may include presenting a different user interface.
[0042] Memory unit 138 may store program instructions for operating system 140, program code 142 for other applications, input module 144, output module 146, and database 148. Database 150 may be, for example, a local database, an external database, a database on the cloud, multiple databases, or a combination thereof.
[0043] Programs 142 include program code that, when executed, configures processor unit 124 to operate in a particular manner to implement various functions and tools for system 100 .
[0044] The term "polyharmonic," as in polyharmonic function, is used as a generalization of the term to include, but not be limited to, "harmonic," "biharmonic," and "triharmonic" boundary value problems. Such polyharmonic functions can be thought of as solutions to polyharmonic bounded value problems.
[0045] The term "radial basis function transformation" is used as a generalization of the term "thin plate spline transformation," which includes, but is not limited to, "thin plate spline transformation."
[0046] 2, there is shown an example embodiment 200 of a 3D object 210 and a 3D target object 220. A method for constraining the shape deformation of a 3D object (e.g., a method for fitting the 3D object 210 to the 3D target object 220) includes some or all of the following stages: (1) partial processing, (2) zone identification, (3) zone processing, and (4) additional processing. (Phase 1: Parts processing)
[0047] In the first stage, part processing, the first step of the method is to provide input consisting of a 3D object 210 that has been pre-designed using computer-aided design (CAD) software (or alternatively, obtained through a 3D scan of the object). In one or more embodiments, this 3D object 210 may be topologically simplified by an algorithm (to create a topologically simplified 3D object) before further processing is applied. The simplification process is described in detail herein.
[0048] Defining N parts: In the method, a user may provide an input consisting of the number of parts (N) that should define the 3D object 210. If N differs from the automatically detected number of parts that form the 3D object 210, the parts are topologically simplified by a topological simplification algorithm that will be described in detail in the following steps. Referring to Figure 3, the 3D object 310 is divided into parts 320 and 330 when using N = 2.
[0049] In one embodiment, if the number of parts N is the same as the number of parts found by the method for 3D object 210 (or 3D object 310), the topological simplification may be bypassed. Topological Simplification
[0050] For each of the N portions of the 3D object, the simplification process may be performed based on a user-defined number of topological branches, which may be selected according to the number of branches that can be manipulated independently.
[0051] This topological simplification process may be performed to automate the selection of different constraint zones, providing correspondence between similar 3D objects (or products) and enabling easy and automated integration of various 3D objects. This correspondence can be used so that when a first 3D object (using a cut) is cut into different constraint zones (becoming a 3D model), a second 3D object (if topologically similar) can inherit the cut, i.e., equivalent positioning of the constraint zones. Additionally, two 3D objects (first and second 3D objects) defined by corresponding part and branch numbers may have interchangeable parameterizations that enable mapping of delimited regions and scalar fields between the two 3D objects. [Topological simplification algorithm]
[0052] Topological simplification algorithms compute an extended surface of a 3D object, generally preserving the initial geometry while having a simplified topology.
[0053] The algorithm performs a series of steps to achieve topological simplification. The input of the algorithm may be a 3D object 210 and a number of branches to be identified on the 3D object 210. The surface of the 3D object 210 is converted into an implicit representation of the surface, for example using voxelization or creating a volumetric mesh. An iterative process is performed that includes the following substeps: *A morphological operation known as "dilation" is performed on the implicit representation of the surface, using a radius as an input parameter. The radius is initially set to 0 and may be increased at each iteration by an amount that may be defined in the search parameters. * The extended implicit representation of the surface is converted back to a surface, the extended surface. The extended surface can be used as a seed for streamlines employed by the vacuum wrap algorithm, so it can be kept in physical memory. * The two most distant points on the extended surface (e.g., as far apart as possible in the geodesic distance sense) are evaluated. * The multi-harmonic boundary value problem is solved using the two most distant pairs of points to generate two scalar functions on the extended surface. * One of two scalar functions is selected (e.g., using specific criteria, or arbitrarily). * A Reeb graph of the selected scalar function is computed, for example using the C++ Topology ToolKit (TTK) library, and the Reeb graph has one or more segments. The iterative process is carried out until a stopping criterion is reached, which may be defined by, but is not limited to, a correspondence between the number of segments in the Reeb graph calculated using the C++ TTK library and a predetermined number of segments corresponding to the desired number of branches.
[0054] The output object of the algorithm is an augmented surface with the desired topology and which may be further processed. [Vacuum Wrap Algorithm]
[0055] If the extended surface does not correspond geometrically to the 3D object, a vacuum wrap algorithm may be performed to calculate a topologically simplified 3D object (output) that has both a substantially similar geometry to the 3D object and a topology resulting from the topological simplification algorithm.
[0056] The vacuum wrap algorithm may be provided with an extended surface as input and performs a series of steps as detailed herein. Any combination of one or more intermediate points on one or more segments of the Reeb graph and one or more equivalent intermediate cuts on the branches of the topologically simplified 3D object is evaluated for each segment of the Reeb graph identified in the topological simplification algorithm. The combination of midpoints and midcuts is projected onto the surface of the 3D object. Multiharmonic boundary value problems on the surface of a 3D object are solved using the points forming the mid-cut and the pair of most distant points as boundaries. The solution, consisting of one or more scalar functions on one or more branches, may be stored in physical memory as a surface guide scalar. Surface guide scalars placed on the surface of a 3D object's surface mesh are extrapolated to all neighboring spaces of the object. A spatial polyharmonic extrapolation is exemplified here to compute the extrapolated guide scalar, also called the matching field. * The space adjacent to the 3D object is generated, for example, by an Oriented Bounding Box (OBB). The OBB may be evaluated from the original surface, and the OBB volume may be extended by a margin. * A volume mesh, which may be composed of volume elements such as tetrahedral elements, hexahedral elements, and voxels, is calculated using the space adjacent to the 3D object and the points of the surface mesh of the 3D object. Other volume elements may optionally be considered in the calculation of the volume mesh. * For each point on the mesh surface of the 3D object, a multiharmonic boundary value problem on the volume mesh is solved. * The solution of the polyharmonic equations represents the weights of the points of the 3D object over a specified region of the volume mesh. For each point of the volume mesh, a calculation is performed involving guide scalar values and their respective weights. This step is repeated for each of one or more scalar functions on the surface mesh of the 3D object. * The signed distance field is computed using the volume mesh and the 3D object. Now we can calculate the gradient of the signed distance field (Gdist) and the gradient of the matching field (Gmatch). The guiding scalar field (Gguid) is defined according to the following formula: Gguid=Gdist-ProjGmatch Gdist This expression is interpreted as the projection of Gdist onto Gmatch subtracted by Gdist. The extended surface of the topological simplification algorithm is used as a seed for evolving streamlines in the guide scalar field. Iteratively: *Streamlines are computed iteratively using a stopping criterion which may be defined by any one of the following, but is not limited to this definition: a "velocity" value for the streamline, and a value indicating that the last point of the streamline has reached the surface of the 3D object. * When all streamlines meet the stopping criteria, the augmented surface point coordinates are updated using the last positions of the points on each streamline, resulting in an updated augmented surface. * All areas of the updated extended surface that are in contact with the surface of the 3D object are left untouched, and for all points and cells that form areas that do not reach the surface of the 3D object, where the cell consists of a triangle defined by three points or other suitable surface cell (e.g., any other polygon), the updated extended surface is re-meshed and thereby re-updated to adjust the density of triangles in those areas. * All points of the updated augmented surface that do not reach the surface of the 3D object are used as seeds for new streamlines.
[0057] This process can be repeated until one specified termination criterion is reached. The termination criterion may consist of any one of the following: an indication that all points of the updated augmented surface are located on the surface of the object; an iteration limit; and an indication that new iterations do not provide useful results. The output of the algorithm is the final updated augmented surface, a topologically simplified 3D object. (Phase 2: Zone determination) [Topology Rig Algorithm]
[0058] A branch can be separated into multiple zones, called constraint zones, which can have independent constraints and movements. The topology rigging algorithm may be provided with a topologically simplified 3D object, or may use the 3D object directly as input if it has the required topological characteristics, and perform a series of steps detailed here. For each of the N parts of the 3D object, the two most distant points are evaluated, e.g., representing the two most distant points on that part geodesically. The pair of most distant points of the topologically simplified 3D object is used as a boundary in the solution of a multi-harmonic boundary value problem, the solution of which is two scalar functions on the vacuum lap surface. One of the scalar functions is selected and its Reeb graph is computed, for example using the C++ TTK library. · Midpoints on the Reeb graph and midcuts computed from the midpoints are evaluated for each segment identified on the Reeb graph. Boundary value problems on topologically simplified 3D objects (e.g., multiharmonic boundary value problems) are solved using intermediate cuts and / or pairs of most distant points as boundaries in solving the boundary value problem. The solution, in the form of one or more scalar functions for one or more branches, is stored in physical memory as one or more scalar functions, also called parameterizations. For each scalar function, several equivalued slices (the slices may be equidistant in terms of values on the scalar field) are calculated. A centerline is defined for each segment using one of a variety of techniques, including, for example, using the center of mass of the equivalued slices and using the largest inscribed circle or sphere. The centerline of each segment of the Reeb graph can be calculated. In one or more embodiments, it is possible to manually add cuts to the centerline and to the equivalent cuts on the 3D object or topologically simplified 3D object. In one or more embodiments, an algorithm can be used to add cuts to the centerline and to equivalent locations on the 3D object or topologically simplified 3D object, which allow for the selection of constraint zones on the 3D object, thereby creating a 3D model.
[0059] The output objects of the topology rig algorithm may be stored in physical memory and may be used in the calculation of the interior non-rigid zones.
[0060] Referring to Figure 4, an example embodiment 400 of the topologically simplified 3D object 310 of Figure 3 is shown. The topological simplification may be the output of, for example, a toposimp and / or vacuum wrap process. The 3D object, having centerlines 420 and 430 for each portion 320 and 330, is cut into multiple zones (and / or constraint zones) using cuts 410.
[0061] Referring to Figure 5, an example embodiment 500 of the topologically simplified 3D object 310 of Figure 3 is shown. The topologically simplified 3D object 310 has two distinct centerlines 420 and 430. The 3D object 310 is divided into eight distinct zones (or constraint zones) 510, 520, 530, 540, 550, 560, 570, and 580 using cuts. [Zone Selection]
[0062] Using the most distant pair of points and user-defined (or algorithmically-defined) cuts as zone boundaries, constraint zones can now be added to form a 3D model (the 3D model is a 3D object divided into constraint zones). In at least one implementation, the zones are selected from a list consisting of outer rigid zones (XRZ), outer non-rigid zones (XNRZ), inner rigid zones (IRZ), and inner non-rigid zones (INRZ). Each zone includes a specific set of parameters, constraints, and modes of interaction. Several zone selection methods may be available, allowing for a quick way to identify zones and also facilitating correspondence and compatibility between 3D objects. A non-exhaustive list of selection methods is detailed herein.
[0063] In other embodiments, constraint zones may be added directly from the 3D object, rather than from a topologically simplified 3D object, if the 3D object already has the desired topology. Element-by-element method
[0064] This selection mode is direct element selection. Elements are defined by several types of structures, including, but not limited to, points, wires (edges), patches (surfaces), and other structures known to those skilled in the 3D literature. Elements can be selected according to different methods, including, but not limited to, selecting a list of identifications (IDs), manually selecting and picking in the 3D view, finding N elements of a specific type according to coordinates, finding N elements greater than some points, and selecting a specific surface area or volume. The user may also be able to select surfaces that meet certain defined criteria, including, but not limited to, surfaces whose dot product of normals and vectors is less than a defined value. In one or more embodiments, it may also be possible to select surfaces using ray tracing and frustrum techniques. Parameterization Method (subset of elements or set of elements)
[0065] This selection mode allows for interval selection according to a coordinate range: on thread or surface elements, selection can be made according to a range of conformal coordinates. [Element Method + Diffusion + Threshold + Selection]
[0066] After a number of elements are selected according to other selection methods, the elements can be used as seeds for a diffusion process on the surface of the 3D object. The diffusion process can consist of, but is not limited to, any of the following: geodesic distance calculations and Poisson equation decomposition. Then, for N elements, streamlines can be generated that connect one element to N-1 other elements. The streamlines may be filtered by any characteristic, including, but not limited to, total length and maximum deviation. Using a defined threshold, cells and points that are traversed or touched by matching streamlines can be added to the selection. [Indicator Glyph]
[0067] The method can provide a tool for adding information to a 3D object in the form of a reference glyph, which can be, but is not limited to, a 3D shape, that can be recognized by the method and further processed to contribute to the linking process between the 3D object and the rig file. [Topological Rigging Algorithm]
[0068] The topological rig algorithm allows element and coordinate selection based on topological analysis. [Constrained Zone Selection]
[0069] Constrained surfaces, which may be defined as surface points of a 3D object that are correlated with fewer than a certain number of other points, are automatically added to adjacent exterior zones and are automatically selected following the selection of adjacent zones. (Phase 3: Zone Processing)
[0070] In one or more embodiments, the zones may be manually defined by a user. In other embodiments, the zone definition may be automated using the algorithms and methods defined in Phase 2. External Rigid Zone (XR Zone)
[0071] The external rigid zone can be positioned in space according to the rig file of the 3D target object (or target 3D scan), which is a markup language definition file that forms a coordinate system in the form of joints and elements. Alternatively, the external rigid zone can be positioned (e.g., by a user) using manual transformations. The rig file can also be constructed with parameterized joints and parent-child dependencies between joints and elements, allowing for parameter-controlled positioning of the external rigid zone. The rig file can also be used to control the location of constraints for the external non-rigid zone.
[0072] A rig file may undergo a step called "scaling" to better fit the geometry of a target object. Scaling is constrained by the presence of points called markers (or landmarks). The location of the markers may be guided by the user, the topological rig, post-processing on the topological rig, AI, or geometric analysis of the 3D object and its centerline. For example, a rig for a child's knee can be scaled to anatomically fit an adult's knee. Scaling may also transform and find the parameters of the rig to fit the target object. Scaling may be implemented, for example, using the Scale tool provided in the OpenSIM library.
[0073] 6, an exemplary embodiment 600 of a target model with disposed external rigid elements is shown. A device 610 includes a 3D target object 220 with disposed external rigid elements 630. These external rigid elements 630 are aligned with an axis 620 of the 3D target object 220. [Positive model rectification]
[0074] The positive model of the 3D target object 220 can undergo a series of changes called modifications. For example, it may be desirable to ensure that no pressure is applied to the bones of the human body. Positive model modifications include modifying the surface to ensure that no pressure is applied to certain locations prior to customization.
[0075] The positive model of the residual limb can be modified to improve pressure distribution. Judicious addition or removal of material reduces bony prominences and tender areas while increasing pressure to more tolerant areas such as soft tissue and wider expanses of bone or tendon.
[0076] For example, in a transtibial (below-knee) prosthesis, pressure is increased by removing material in the following areas: the patellar tendon, the tibialis anterior, the tibial flare, the popliteal region, and the calf musculature. Conversely, pressure is reduced by adding material to the following areas: the tibial crest, the distal portion of the tibia, the fibular head, the hamstring tendons, and the patella. External Non-Rigid Zone (XNR Zone)
[0077] The external non-rigid zone can be used to ensure a fit between the surface of a 3D object and the surface of a 3D target object by defining inter-surface constraints. It can also bring the 3D information conformal of the 3D object onto the 3D target object. The inter-surface constraint algorithm implemented to construct the XNR zone is detailed herein. [Face-to-face constraint algorithm]
[0078] A user can use any one of the element selection methods described above to define a subset of surfaces on a first 3D object, thereby defining a first surface (e.g., a surface on a 3D object) to be treated as an XNR zone. The following process may be performed for one boundary curve, or may be repeated one or more times for a first surface having one or more boundary curves.
[0079] The inter-face constraint algorithm includes the following steps: Constraint points are placed manually or parametrically on the boundary curve. A subset of a second 3D object, a second surface onto which the first surface will be projected (e.g., a surface of a 3D target object) is identified (e.g., by a user), and corresponding constraint points may be positioned automatically or manually on the second surface. The initial solution for surface-to-surface registration (initial projection of the boundary curve onto the second surface) can be generated, for example, by one of the following methods: i. If no constraint points are defined, the positioning of the first surface on the second surface can be guided by the user's mouse. The algorithm can identify the mouse location as the center of mass of the initial solution. The user can repeat the selection of the centers of mass of multiple boundary curves multiple times. The algorithm can generate a circle projected onto the second surface around the location, or create a contour on the second surface that is equidistant (e.g., Euler distance, geodesic distance) from the center of mass. Alternatively or additionally, the user can control the rotation of the initial solution using parameter inputs. ii. If constraint points are defined on the second surface, the algorithm draws geodesic curves connecting the constraint points to form an initial solution. iii. The algorithm may also use UV parameterization of the first and second surfaces. An input curve can also be used as the initial solution. This input can be any method, such as closest point projection, iterative closest point projection, cylindrical projection, or spherical projection. The boundary curve is discretized into N points. The initial solution is discretized to correspond to the boundary curve of the first surface subset discretization. Repeat: * An energy calculation is computed. This calculation quantifies the energy of the error in bending and stretching of the initial or optimized solution on the second surface compared to the first surface. Additional constraints may be added to the calculation as energy terms. * Using an iterative optimization process, based on a numerical optimization method such as Newton's method, the algorithm moves each point of the initial or optimized solution and calculates the direction and length (and therefore the vector) that minimizes the energy of the solution compared to the first surface boundary curve. * Direction and length propagation can be calculated by multiple methods, one method being, but not limited to, using heat propagation for each updated vector on the surface and using streamlines to find the correct position for the updated point. Alternatively or additionally, propagation methods include using approximate geodesic displacements consisting of vectors in Euclidean space that are rotated (or projected) to be embedded onto the surface. Large displacements can be discretized into smaller Euclidean vectors that are rotated (or projected) onto the surface one by one to better approximate the surface. The curve is updated until a termination criterion is reached, which may include, but is not limited to, reaching a specific energy value, reaching a number of iterations, and reaching a value of energy variation between iterations. The optimized solution for the boundary curve of the first surface is then precisely positioned on the second surface of the second 3D object. The surface information of the first surface of the 3D object can then be placed on the second surface. A closest point algorithm can be performed to move all points of the first surface so that they are parameterized on the boundary curve to construct an initial solution of the first surface on the second surface. A morphing algorithm such as a radial basis function transformation, more specifically a thin plate spline transformation, or any other algorithm that accepts a set of target and source landmarks to guide the transformation can be used instead of the closest point algorithm. The angle and area of each triangle of the first surface of the 3D object is quantified as energy, and the energy calculation is performed iteratively to find an optimal solution for the location of the projected first surface points that are optimized onto the second surface while keeping the boundary curve points intact (leaving the optimized solution of the boundary curve intact). In at least one implementation, energies such as as-rigid-as-possible (ARAP) energy and as-mobius-as-possible (AMAP) energy may be included. An extrusion based on the local normals of the first surface subset is calculated. Alternatively or additionally, the extrusion may be based on a given vector of the surface, or a combination of the local normals and a given vector of the surface. This extrusion, known as a "cage," allows for the encoding of thickness information of the part within the external non-rigid zone. This encoding is performed using any one or any combination of three methods: using a radial basis function transformation for all points, using polyharmonic coordinates for all points within the extrusion volume, and using mean value coordinates (MVC) for all points outside the extrusion volume. In some embodiments, MVC may be used to encode all points within the extrusion volume. Other morphing techniques and coordinate transformations (e.g., quadrilateral coordinates and generalized barycentric coordinates) may also be substituted for the above method. An ARAP transformation may also be used when a cage is not required, and the model is deformed only based on the first and second surfaces. Another way to encode 3D information on the first surface is by creating a field emanating from the first surface (i.e., a distance field within the volume), as follows: * Every point of the 3D object follows the field gradient (i.e., a streamline) in the direction of the first surface. The length of the streamline and the UV coordinates of the triangle where the streamline intersects the first surface are stored for every point in an array: (streamline length, triangle U, V, ID). The first surface may be projected onto the second surface, and then the reverse process may be done. A distance field can be calculated for each point. The streamlines emanating from the UV coordinates of the triangle ID stored in the array follow the gradient out of the surface until the length L is filled. A factor can be applied locally to the length to control the thickness locally. Here, the first surface extrusion and the second surface extrusion have corresponding thicknesses, and the model incorporating the XNR deformation is adaptive. The user may optionally generate a set of extrusion layers (e.g., cage layers) that are constant or depend on local values. The first surface onto the second surface may likewise be offset (e.g., locally variable offset, equal offset) so as to follow the second surface but have control over the interference or gap with it. The first surface subset included in the external non-rigid zone may now be positioned relative to the second surface, taking into account the ply constraints.
[0080] 7, an exemplary embodiment 700 of a 3D model (or "first 3D object") is shown in which an external rigid element is fitted onto a 3D target object (or "second 3D object"). The device 710 comprises a 3D target object 220 to which an external non-rigid element 720 (corresponding to cutting zones 510 and 580 in FIG. 5) is attached. Internal Non-Rigid Zone (INR Zone)
[0081] The interior non-rigid zones create a smooth transition between the exterior rigid and non-rigid zones while maintaining engineering constraints such as the thickness of the 3D object, ensuring surface continuity, and attempting to prohibit any self-interference. The method includes weighting the interior non-rigid zones as described herein. Using all control points from the XR and XNR zones, spatial polyharmonic weights for each point in the volume are calculated, allowing for deformation that is essentially self-interference free and considers surface continuity. In some embodiments, other algorithms may be substituted for the spatial polyharmonic weight calculation, including but not limited to radial basis function (RBF) deformation and generalized barycentric coordinates. The steps are as follows: i. The space adjacent to the 3D object is generated, for example, by an oriented bounding box (OBB), where the OBB is evaluated from the 3D object surface and the OBB size is extended by a margin. In at least one implementation, an extended surface topology simplification algorithm can be used, which can reduce volume, accelerate weight calculation, and prohibit local interference. ii. Using all control points from the XR and XNR zones and the space adjacent to the 3D object as constraints, a volumetric mesh composed of volumetric elements such as tetrahedral elements, hexahedral elements, and voxels is calculated. A meshing algorithm may be used that favors a large number of small tetrahedral elements near the surface of the 3D object and a smaller number of larger elements further from the surface. iii. For each control point in the XR and XNR zones, the polyharmonic equations in the volume mesh are calculated and the solutions are interpolated to the 3D object to provide spatial polyharmonic weights. iv. If one or more points in the internal zone are underconstrained, it is added to the nearest XNR or XR zone and the polyharmonic weights are calculated again. To preserve the thickness of the 3D object surface, a spatially polyharmonic extrapolation of the normal vector of the XNR control surface is calculated and stored in physical memory. An interpolation of the output values of the extrapolation may be calculated on the vacuum lap surface, and the result is, for example, a thickness field. The volume of a topologically simplified 3D object may be meshed with volume elements such as tetrahedral elements, hexahedral elements, and voxels in an acceptable initial manner, such that thickness field information is added to the vacuum wrap volumetric mesh. More generally, the 3D object may be used directly, and vacuum wrap is generally an optimization for using the 3D object directly. In at least one embodiment, the volume of the vacuum wrap surface is meshed as soon as the vacuum wrap is created. The volume element count can be a useful parameter, since too many elements can hinder performance while providing only a small advantage in accuracy. The meshing is performed in an acceptable manner according to any of a number of quality metrics, which may include, but are not limited to, edge ratio, aspect beta, aspect gamma, aspect, Frobenius, aspect ratio decay ratio, condition, distortion, Jacobian, minimum dihedral angle, radius ratio, relative size squared, scale Jacobian, shape, shape and size, and volume, with each volume element storing the thickness direction that needs to be preserved, as given by the in-thickness field. The result is a vacuum-wrapped volumetric mesh. The vacuum wrapped volumetric mesh can be used to calculate another set of multiharmonic weights (e.g., generalized barycentric weights, local barycentric weights), which can be identified as solid multiharmonic weights. These weights connect the topologically simplified 3D object with the 3D object, allowing the transformation to be applied back to the 3D object when the optimal transformation (considering all criteria) for the topologically simplified 3D object has been identified. This can be done only once after the topologically simplified 3D object has been created and volumetrically meshed. One of two methods, consisting of a multiharmonic surface transformation and a deformation using spatial multiharmonic weights (the multiharmonic weights may be scalar functions calculated using a multiharmonic boundary value problem), may be used to create a continuous surface across the output surface of the vacuum wrap algorithm, providing a surface that respects the boundary settings (and zone selection) imposed on the zones of the topological rig algorithm while still having a continuous surface. For example, a displacement vector can be calculated on each point in the XR and XNR zones (i.e., between the 3D object and the deformed 3D object). The calculated weights can then be used to calculate the displacement vectors for all points within the INR zone. A transformation can then be applied. A divergence-free shape interpolation algorithm with the topologically simplified 3D object (or, more generally, the 3D object) and the surfaces calculated in the preceding steps as input provides a divergence-free transformation. The thickness field vectors can be precisely rotated and extrapolated to the remaining points within the volume of the vacuum wrap, ensuring that further optimizations, such as optimizations based on finite element analysis (FEA), can be performed. One of two implementations of the divergence-free transformation may be performed: i. The divergence-free transformation is not constrained to consider the branches of the topologically simplified 3D object encompassing XR and XNR (i.e., the output of the divergence-free shape interpolation is taken as is), increasing the likelihood of preserving the original thickness and surface continuity of the 3D object. ii. The divergence-free transformation is constrained to consider topologically simplified surface branches encompassing XR and XNR, compromising the ability to maintain surface continuity, conformality, and thickness of the transformed 3D object. In other words, after performing divergence-free shape interpolation, the relevant segments of the vacuum wrap encompassing XR and XNR are forced back to their locations. Optimization of the positions of the points of the vacuum wrap volume mesh is performed iteratively: i. Using finite element analysis, the energy function may be calculated depending on, but not limited to, the following: a) Surface continuity error. b) The thickness that the solid tetrahedron element should have in the direction of the thickness magnetic field. c) The volume error, defined as the difference between the initial or optimized volume and the 3D object volume, and the conformality error for solid tetrahedral elements. d) Surface ARAP (or Smooth Rotation Enhanced ARAP) - e.g., performed only on topologically simplified 3D objects. e) Volumetric ARAP (or smooth rotation enhanced ARAP). ii. Weights are applied to each factor of the energy function and a numerical optimization is performed to iteratively find the optimal location of each point in the vacuum wrap volume mesh. · Using solid polyharmonic weighting for the contents of the vacuum lap surface, a segment encompassing the INR zone is placed within the volume of the vacuum lap surface.
[0082] Referring to Figure 8, an exemplary embodiment 800 of a target model having internal non-rigid elements arranged according to the external rigid and non-rigid elements of Figures 6 and 7 is shown. Apparatus 810 includes 3D target object 220 on which external rigid element 630 is arranged, external non-rigid element 720 is conformally arranged, and internal non-rigid element 820 is deformed and conformed to connect external rigid element 630 and external non-rigid element 720. Internal Rigid Zone (IR Zone)
[0083] Once the INR, XNR, and XR zones are positioned, the IR rigid zone can be forced back into their rigid configuration using a rigid transformation orientation that best averages the INR deformations. Evaluation of such orientation can be performed using various algorithms, including, but not limited to, least-squares fit, average of all transformations, and iterative nearest neighbor (ICP). The perimeter is finally re-transformed according to the INR deformations, now considering the IR zone as an external rigid zone constraint. In at least one implementation, a first INR is performed using XR and XNR as inputs, and a second INR is performed using XR, IR, and XNR as inputs.
[0084] 9, an exemplary embodiment 900 of an internal non-rigid element with embedded internal rigid elements that undergo deformation is shown. Device 910 includes an internal non-rigid element whose sub-elements are identified as internal rigid zones 930. When device 910 is deformed into device 920 according to the XR and XNR zone constraints, internal rigid elements 930 are re-deformed to assume the shape they should have within device 910. (Phase 4: Additional processing)
[0085] In one or more embodiments of the invention, once the 3D object has been transformed according to the previous phases, the output object generated by transforming the 3D object can be further processed, which may include Boolean operations, NURBS transformations, and lattice generation. Boolean
[0086] In one or more embodiments of the present invention, the IR zones may be replaced or supplemented by accurate rotationally transformed Boolean operations (either mesh-based or NURBS-based) between the geometry and the part itself, allowing for the addition of various element geometries, including but not limited to fasteners, screw holes, straps, and inserts.
[0087] In one or more embodiments of the invention, Boolean operations, or more generally CAD operations, can be used to modify the 3D object of the part prior to the morphing process in Phase 3, allowing it to be modified parametrically.
[0088] In one or more embodiments of the invention, Boolean operations can be used after or before the transformation to add various elements, including but not limited to alphanumeric characters, bar codes, QR codes, and any pictograms that identify the part. [NURBS Deformation]
[0089] In one or more embodiments of the present invention, a correspondence can be created between an ensemble of NURBS and a mesh representation of the surfaced defined NURBS.
[0090] When a mesh representation is deformed according to the embodiments detailed above, the ensemble of NURBS may be correspondingly deformed to accurately represent the deformed mesh representation, creating a deformed NURBS ensemble. [Lattice generation]
[0091] In one or more embodiments of the present invention, a closed volume (defined either through a closed mesh surface or a closed NURBS ensemble of surfaces) may be created and deformed to indicate where the algorithm can generate a lattice structure according to parameters including, but not limited to, density, orientation, and the lattice geometry itself.
[0092] Referring to FIG. 10 , a flowchart of an example embodiment of a method 1000 for fitting a 3D object to a 3D target object is shown. In the method 1000, the system 100 applies one or more of the algorithms described herein to fit the 3D object to the 3D target object. The method 1000 illustrates various steps in which an input 1002, such as a 3D object, is processed through the following: topological simplification in phase 1 1010; division of the 3D object into zones in phase 2 1020; and assignment of the zones to different zone types and deformation of the 3D object according to the different zone types in phase 3 1030. The output 1004 of the method is a 3D object that has been deformed to fit the 3D target object.
[0093] In Phase 1 1010, the system 100 receives an input 1002. The system 100 may process the input 1002 using N-part detection. The system 100 may apply topological simplification. The topological simplification may include a vacuum wrap algorithm. The output of the topological simplification is passed to Phase 2 1020.
[0094] In Phase 2 1020, the system 100 receives the output of Phase 1 1010. The system 100 can apply a topological rigging algorithm. The system 100 applies zone selection. Zone selection can include one or more techniques such as element-by-element, parametric, element+diffusion&threshold, directed glyph, topological rigging, and constrained zones. The output of the zone selection is passed to Phase 3 1030.
[0095] In Phase 3 1030, system 100 receives the output of Phase 2 1020. System 100 applies external rigid zone positioning, external non-rigid zone positioning, internal non-rigid zone integration, and internal rigid zone processing. The output of Phase 3 1030 may be output 1004 displayed by system 100 or may be sent to digital fabrication unit 160 to be digitally fabricated.
[0096] In other embodiments, the output 1004 may be further processed in phase 4 1040 where post-processing functions may be performed.
[0097] In optional Phase 4 1040, the system receives the output of Phase 3 1030. The system 100 applies one or more post-processing functions, such as Boolean addition, NURBS transformation, and lattice generation. The output of Phase 4 1040 may be the output displayed by the system 100.
[0098] In other embodiments, any of phases 1010, 1020, and 1030 may be applied on the 3D target object in parallel with the 3D object. For example, the algorithms of phase 1 1010 may be applied to the target to simplify its topology, and the algorithms of phase 2 1020 and phase 3 1030 may be applied to deform and modify the target before processing the 3D object deformation on the 3D target object.
[0099] Referring to FIG. 11, a flowchart of an exemplary embodiment of a method 1100 for deforming a 3D object in a constrained manner is shown.
[0100] At 1110, the system 100 receives a 3D object.
[0101] At 1120, the system 100 optionally applies processing to the 3D object to create a topologically equivalent graph (e.g., a Reeb graph, centerlines for each segment topology rig) to parameterize the zone definitions.
[0102] At 1130, the system 100 applies the zone definitions and constrained zone selections to the 3D object, thereby generating a 3D model having one or more zones.
[0103] Constraint zone selection can include selecting a constraint zone type from a list consisting of an outer rigid (XR) zone, an outer non-rigid (XNR) zone, an inner rigid (IR) zone, and an inner non-rigid (INR) zone.
[0104] The constraint zone selection may be a parameterization method based on the coordinate range of the 3D model.
[0105] At 1140, the system 100 applies constraints to the 3D model through zonal processing applied to multiple zones, thereby generating a deformed 3D object. The zonal processing may be performed by processing at least one of the zones to ensure a fit of the 3D model onto the 3D target object (e.g., using surf-to-surf or XNR zones).
[0106] A 3D object may have a closed volume (defined either through a closed mesh surface or a closed NURBS ensemble of surfaces), which indicates where the algorithm can generate a lattice structure according to parameters including, but not limited to, density, orientation, and the lattice geometry itself.
[0107] The constraints can be based on constraint zone selection.
[0108] The zone processing may include one or more of: (a) placing an XR zone in the plurality of zones, placing an XNR zone in the plurality of zones, placing an INR zone between the XR and XNR zones, or applying an IR zone (e.g., where deformation of the 3D model is avoided according to the internal properties of the 3D object).
[0109] Zone processing may include positioning the XR zone using at least one of a rig file of a 3D target object or a rig file of a 3D object, where the rig file is a markup language definition file that forms a coordinate system in the form of joints and elements.
[0110] Zone processing may include processing the XNR zones to ensure a fit of the 3D model onto the 3D object.
[0111] The zone processing can include processing the multiple zones using a surface-to-surface (STS) algorithm that processes the surface of a 3D object, including multiple boundary curves, onto the surface of the 3D object.
[0112] The zone processing can include processing the INR zone using weight calculations to create a smooth transition between the XR and XNR zones.
[0113] The zone processing may include one or more of the following steps: (a) placing an IR zone on the 3D model; (b) determining that one of the IR zones is located in one of the XNR zones or one of the INR zones; (c) applying an inverse transform to one of the IR zones to return one of the IR zones to a shape consistent with the 3D object; and (d) re-transforming the INR zone using one of the IR zones consistent with the 3D object as one of the IR zones.
[0114] The system 100 can output the deformed 3D object for use in digitally manufacturing the deformed 3D object.
[0115] 12, a flowchart of an example embodiment of a method 1200 for using the topological graph of a first 3D object to transfer a bounded region to a second 3D object of similar topology is shown. This may be referred to in brief as using a topological graph to propagate parameterization.
[0116] At 1210, the system 100 receives a first 3D object and a second 3D object (eg, a 3D target object).
[0117] At 1220, the system 100 receives one or more delimited regions for one or more branches of the first 3D object.
[0118] At 1230, the system 100 analyzes the first 3D object to obtain a topological graph (e.g., a Reeb graph) and uses the topological graph to create a first parameterization, the first parameterization including a first set of scalar functions (the set including one or more scalar functions) for the first 3D object corresponding to one or more branches of the first 3D object.
[0119] At 1240, the system 100 analyzes the second 3D object to obtain a topological graph (e.g., a Reeb graph) and uses the topological graph to create a second parameterization, the second parameterization including a second set of scalar functions (the set including one or more scalar functions) of the second 3D object corresponding to one or more branches of the second 3D object.
[0120] At 1250, the system 100 generates one or more scalar values corresponding to a bounded area (e.g., an isovalue cut, a slice, a zone, a constraint zone, a zone bound, a boundary curve) on the first 3D object using a first set of scalar functions.
[0121] At 1260, the system 100 transfers the delimited region from the first 3D object to the second 3D object using the first parameterization, the second parameterization, and the one or more scalar values.
[0122] At 1270, the system 100 constructs the location of the bounded region on the second 3D object using a second set of one or more scalar values and scalar functions.
[0123] The system 100 can output the second 3D object for use in digitally manufacturing the second 3D object.
[0124] Referring to FIG. 13, a flowchart of an example embodiment of a method 1300 for transferring a first set of scalar fields to a second 3D object of similar topology using a topological graph of the first 3D object is shown.
[0125] At 1310, the system 100 receives a first 3D object and a second 3D object.
[0126] At 1320, the system 100 receives a first set of scalar fields in a space adjacent to the first 3D object for one or more branches of the first 3D object.
[0127] At 1330, the system 100 analyzes the first 3D object to obtain a topological graph (e.g., a Reeb graph) and uses the topological graph to create a first parameterization, the first parameterization including a first set of scalar functions of the first 3D object corresponding to one or more branches of the first 3D object.
[0128] At 1340, the system 100 analyzes the second 3D object to obtain a topological graph (e.g., a Reeb graph) and uses the topological graph to create a second parameterization, where the second parameterization includes a second set of scalar functions of the second 3D object that correspond to one or more branches of the second 3D object.
[0129] At 1350, the system 100 constructs a second set of scalar fields attached to a second 3D object using the first parameterization, the second parameterization, and the first set of scalar fields.
[0130] The system 100 can output a second set of scalar fields for use in digitally fabricating a second 3D object.
[0131] 14, there is shown a flowchart of an example embodiment of a method 1400 for creating one or more bounded regions on a 3D object according to the topology (topological structure) of the 3D object, which may be referred to as using TOPORIGS for short.
[0132] At 1410, the system 100 receives a 3D object, the 3D object having one or more branches.
[0133] At 1420, the system 100 receives one or more scalar values for one or more branches of the 3D object for use in creating a delimited region of the 3D object.
[0134] At 1430, the system 100 analyzes the 3D object to obtain a topological graph (e.g., using a Reeb graph). The topological graph has one or more segments corresponding to branches. The system 100 uses the topological graph to create a parameterization, which includes one or more scalar functions (e.g., polyharmonic equations) for the 3D object corresponding to the branches.
[0135] To obtain the topological graph, the system 100 can calculate a scalar function using one or more subsets of the middle cuts of the 3D object as control points. The scalar function provides a representation of a segment of the 3D object in the topological graph. The scalar function may be a real-valued smooth function. The calculation of the scalar function may be compatible with Morse theory.
[0136] At 1440, the system 100 creates each of the bounded areas for each of the branches of the 3D object using scalar values and scalar functions.
[0137] At 1450, the system 100 optionally applies one or more calculations, trims, or cuts (or similar operations). These may include: Use an isovalue contour (or isovalue slice) on a scalar function to calculate the centerline of each segment corresponding to a branch (for example, using the center of mass of the slice or the largest inscribed sphere). Use an isovalue contour (or isovalue slice) on a scalar function to calculate the centerline of each segment corresponding to a branch (for example, using the center of mass of the slice, or the largest inscribed sphere), as well as the slice value passed to the centerline. · Create a mapping between the graph of the centerline and a scalar function to calculate the value of 1 for the isovalue contour passed to one centerline. Trim centerlines based on their proximity (or existence or intersection) with another centerline. Trim centerlines based on their proximity (or existence or intersection) with another centerline and merge them to obtain a graph of centerlines that has the same topology as the 3D object (e.g., approximating the center of each branch better than a Reeb graph segment). · Parametrically create delimited regions of a 3D object using scalar values and functions (e.g., to parametrically control the location of cuts) and use each centerline (or first and second centerlines) or a graph of centerlines to create one or more scalar functions corresponding to the branches. Transfer parametric cuts between two models of a 3D object. Use cuts to define zones on a model of a 3D object that should be further processed by other methods.
[0138] The system 100 can output a delimited region of a 3D object for use in digitally fabricating the 3D object.
[0139] 15, a flowchart of an example embodiment of a method 1500 for simplifying the topology of a 3D object (e.g., removing genera) while maintaining similar geometry is shown, which may be referred to as using toposimpl and vacuum wrap for short.
[0140] At 1510, the system 100 receives a 3D object and a target topology property (e.g., genus, number of branches, graph).
[0141] At 1520, the system 100 performs morphological dilation operations on the 3D object until the target topological property is obtained. The output is a dilated surface of the appropriate topology.
[0142] At 1530, system 100 calculates optimal trajectories (or streamlines) for displacing each point of the augmented surface toward the 3D object using fields calculated from the properties (e.g., geometry, topology) of the 3D object. Here, system 100 can use a guide scalar field constructed by (a) using a scalar function (e.g., a surface guide scalar) over the 3D object and extrapolating that scalar function onto a space adjacent to the 3D object (e.g., an extrapolated guide scalar field), (b) generating a signed distance field emanating from the 3D object onto a space adjacent to the 3D object, and (c) performing calculations using the signed distance field and the extrapolated guide scalar field to create the guide scalar field.
[0143] At 1540, the system 100 displaces the augmented surface according to an optimal trajectory, with or without intermediate steps, for each individual point of the augmented surface until a stopping criterion is reached. The method 100 may repeat 1520, 1530, and 1540 until a stopping criterion is reached for all individual points of the surface. The system 100 generates a topologically simplified 3D object.
[0144] At 1550, the system 100 optionally refines the surface resolution using intermediate steps when certain stopping criteria are reached.
[0145] The system 100 can output a topologically simplified 3D object for use in digitally manufacturing the topologically simplified 3D object.
[0146] Referring to FIG. 16 , a flowchart of an example embodiment of a method 1600 for constraining a boundary curve of a surface of a first 3D object (first surface) onto a surface of a second 3D object (second surface) is shown.
[0147] At 1610, the system 100 receives a first surface having one or more boundary curves.
[0148] At 1620, the system 100 calculates an initial solution of the first surface projected onto the second surface. This calculation may include an algorithm that is robust with respect to the topology of the first and second surfaces. This calculation may include one or more of the following: applying constraint points on the second surface, calculating a plurality of curves on the second surface using the constraint points on the second surface, and merging the curves to create the boundary curve that serves as the initial solution; Transforming the boundary of the first surface onto the second surface using an iterative closest point (ICP) algorithm using a radial basis function transformation; Applying constraint points on a second surface that have equivalents on a first surface, together having a matching set of constraint points, and using a radial basis function deformation of the first surface (and possibly a projection onto the second surface) induced by the matching set of constraint points; using points on the second surface to calculate a contour equidistant from the points; Calculating the intersection points between rays coming from the boundary curve of the first surface onto the second surface in the direction of a vector; · Moving points of the boundary curve of the first surface to the nearest associated points on the second surface.
[0149] The system 100 can apply constraint points on a second surface that have equivalents on a first surface. The system 100 can create geodesic curves using those constraint points on the second surface (e.g., if the geodesic curves are in the same topology as the source surface). An initial solution may be derived from (a) the constraint points, (b) ICP and thin-plate spline transformations, (c) thin-plate spline transformations guided by a matching set of constraint points and performing a projection, or (d) points on the second surface that serve to calculate contours that are equidistant from the points (e.g., Euler or geodesic distances).
[0150] At 1630, the system 100 reduces distortion of the boundary curve of the initial or optimized solution onto the second surface using energy calculations and optimizations for the displacement of points of the initial or optimized solution of the boundary curve of the first surface projected onto the second surface (e.g., at a particular iteration) compared to the boundary curve of the source surface. The system 100 can use the constraint points as additional energy in the optimization.
[0151] The system 100 can use the optimized boundary curve (optimized solution) of the source surface on the target surface to guide the positioning of the remaining portion (eg, the entire area) of the source surface.
[0152] At 1640, the system 100 optionally applies one or more operations for positioning, further distortion reduction, guide deformation, etc. These operations may include: applying constraint points on the second surface that have equivalents on the first surface, and using the constraint points on the second surface to act as constraints and guide positioning of the first surface boundary curve onto the second surface, the constraint points enabling the calculation of additional energy terms to control positioning of the optimized or initial solution onto the second surface; using the optimized solution to control the positioning of the first surface onto the second surface; optimizing the first surface onto the second surface to reduce distortion compared to the first surface (e.g., using ARAP or AMAP) and using the optimized solution to control the positioning of the first surface onto the second surface; using the first surface and the projected first surface onto the target surface to guide the deformation of the 3D source object; using the first surface and the projected first surface onto a target surface to guide the deformation of a 3D source object using at least one of MVC, Polyharmonic, Radial Basis Function Transform, TPS, Quad Ray Coordinates, or any other method for overlaying 3D information onto a target surface.
[0153] The system 100 can use one or more operations to obtain a solution that is independent of the topology of the target surface, for example, when the initial solution is independent of the presence of holes in the target surface.
[0154] During method 1600, the cage constructed on the first surface and the first surface projected onto the target may be composed of multiple layers of cages with locally varying thicknesses. The cage or cage layering may be constructed using the normal to the first surface or any combination of the first surface and vector. The first surface on the target surface may be offset locally or globally to create a controlled gap or interference with the target surface.
[0155] The system 100 can output the first surface projected onto the target surface for use in digitally manufacturing the first surface projected onto the target surface.
[0156] Referring to FIG. 17, a flowchart of an example embodiment of a method 1700 for deforming a 3D object into a deformed 3D object in a constrained manner is shown.
[0157] At 1710, the system 100 receives a 3D object and a 3D target object.
[0158] At 1720, the system 100 applies partial processing of the 3D object, for example, via a topological rig, so that the system 100 generates multiple branches into which the 3D object is divided.
[0159] Sub-processing the 3D object may further include dividing the branches into zones.
[0160] The topological simplification may include iterative steps to obtain a desired number of branches, including (a) performing an augmentation operation on an implicit representation of the 3D object, (b) converting the implicit representation back to an augmented surface, and (c) computing a Reeb graph based on the augmented surface.
[0161] The part processing can further include applying a vacuum lap algorithm to the augmented surface, thereby generating a vacuum lap surface having a simplified topology and geometry substantially similar to the 3D object.
[0162] At 1730, the system 100 applies the zone definitions and constrained zone selections to the multiple branches, resulting in the system 100 generating a 3D model having multiple zones.
[0163] Constraint zone selection can include selecting a constraint zone type from a list consisting of an outer rigid (XR) zone, an outer non-rigid (XNR) zone, an inner rigid (IR) zone, and an inner non-rigid (INR) zone.
[0164] The zone definition and constraint zone selection may further include running a topology rigging algorithm on the vacuum lap surface (or the 3D object if the 3D object already has the desired topology) to divide each of the multiple branches into multiple zones. The topology rigging algorithm may include (a) calculating midpoints of a Reeb graph based on the vacuum lap surface, (b) calculating middlecuts from the midpoints, and (c) calculating multiple functions corresponding to the multiple zones. The topology rigging algorithm may determine centerlines of the multiple zones.
[0165] Constraint zone selection may be an element-by-element method that allows for the application of constraint zone types to identified zones of a 3D object based on multiple types of structures (e.g., including points, edges, and patches).
[0166] The constraint zone selection may be a parameterization method based on the coordinate range of the 3D object.
[0167] At 1740, the system 100 applies constraints to the 3D model through zonal processing applied to multiple zones, resulting in the system 100 generating a deformed 3D object.
[0168] The constraints can be based on constraint zone selection.
[0169] The zone processing may include one or more of positioning XR zones in multiple zones (e.g., to ensure the integrity and functionality of the deformed 3D object), positioning XNR zones in multiple zones (e.g., to custom-fit the deformed 3D object onto the 3D target object), positioning INR zones between the XR and XNR zones (e.g., to provide a smooth transition between the XR and XNR zones), and applying IR zones where deformation of the 3D object is avoided according to the internal properties of the 3D object (e.g., to ensure no deformation around assembly points).
[0170] Zone processing may include positioning the XR zone using a rig file of the 3D object and / or a rig file of the 3D target object, where the rig file is a markup language definition file that forms a coordinate system in the form of joints and elements.
[0171] The zone processing can include processing the XNR zones to ensure a fit of the 3D model, thus ensuring that the deformed 3D object fits the 3D target object.
[0172] The zone processing can include processing the multiple zones using a surface-to-surface (STS) algorithm that processes the surface of a 3D object, including multiple boundary curves, onto the surface of a 3D target object.
[0173] The zone processing can include processing the INR zone using weight calculations to create a smooth transition between the XR and XNR zones.
[0174] Zone processing may include one or more of the following operations: positioning IR zones of the 3D model; determining that one of the IR zones is positioned in one of the XNR zones or one of the INR zones; applying an inverse transform to one of the IR zones to return it to a shape consistent with the 3D object; and re-transforming one of the INR zones in IR as one of the XR zones.
[0175] The system 100 can output the deformed 3D object for use in digitally manufacturing the deformed 3D object.
[0176] In at least one embodiment, one or more of methods 1100, 1200, 1300, 1400, 1500, 1600, and / or 1700 (e.g., TopoLig, TopoSymp, TopoSymp+VacuumWrap) are used in an environment where a specialist is accessing a patient's case regarding vascular health, lung and airway health, or nervous system health. The blood vessels, lungs, airways, and nervous system all involve complex networks of tubular features, and one or more of these methods may be used to process 3D objects for the purposes of accessing the patient's health or planning treatment.
[0177] In at least one embodiment, one or more of methods 1100, 1200, 1300, 1400, 1500, 1600, and / or 1700 (e.g., TopoLug, TopoSymp, TopoSymp+VacuumWrap, Surface-to-Surface, Constraint Deform) are used in an environment where a video game professional performs a series of operations on a 3D object for the purpose of creating a video game.
[0178] In at least one embodiment, one or more of methods 1100, 1200, 1300, 1400, 1500, 1600, and / or 1700 (e.g., TopoLug, TopoSymp, TopoSymp+VacuumWrap, Surface-to-Surface, Constraint Deform) are used in an environment where a video game professional performs a series of operations on a 3D object for the purpose of creating animation or video.
[0179] In at least one embodiment, one or more of methods 1100, 1200, 1300, 1400, 1500, 1600, and / or 1700 (e.g., TopoLig, TopoSymp, TopoSymp+VacuumWrap) are used in an environment where an FEA simulation specialist performs a series of processes on a 3D object to create a 3D volumetric mesh of the 3D object and perform FEA analysis on the 3D object.
[0180] While applicants' teachings described herein are connected with various embodiments for illustrative purposes, it is not intended that applicants' teachings be limited to such embodiments, as the embodiments described herein are intended to be examples. On the contrary, applicants' teachings as described and illustrated herein encompass various alternatives, modifications, and equivalents without departing from the embodiments described herein, the general scope of which is defined in the appended claims.
Claims
1. 1. A method for constrainedly transforming a 3D object onto a 3D target object, comprising: On the computer, receiving the 3D object and the 3D target object; applying the zone definitions and constraint zone selections to the 3D object, thereby generating a 3D model having multiple zones; applying constraints to the 3D model through zonal processing applied to the plurality of zones to generate a deformed 3D object; outputting the transformed 3D object for use in digitally manufacturing the transformed 3D object; [0033] The method, wherein the constraint zone selection includes selecting a constraint zone type from a list consisting of an outer rigid (XR) zone, an outer non-rigid (XNR) zone, an inner rigid (IR) zone, and an inner non-rigid (INR) zone.
2. The method of claim 1 , wherein the zonal processing comprises processing at least one of the plurality of zones to ensure a fit of the 3D model onto the 3D target object.
3. The method of claim 1 , further comprising applying a process to the 3D object by a computer to create a topologically equivalent graph to parameterize the zone definitions of the 3D model.
4. 10. The method of claim 1, wherein the 3D object includes one or more closed volumes, and applying constraints to the 3D model produces the deformed 3D object having one or more closed volumes that indicate locations where lattice structures may be generated.
5. The method of claim 1 , wherein the constraint is based on the constraint zone selection.
6. The method of claim 1 , wherein the zonal processing includes positioning the outer rigid (XR) zone in the plurality of zones.
7. The method of claim 1 , wherein the zonal processing includes locating the outer non-rigid (XNR) zones in the plurality of zones.
8. The method of claim 1 , wherein the zonal processing includes disposing the internal non-rigid (INR) zone between the external rigid (XR) zone and the external non-rigid (XNR) zone.
9. The method of claim 1 , wherein the zone processing comprises applying an intrinsic rigid body (IR) zone in which deformation of the 3D model should be avoided according to an intrinsic property of the 3D object.
10. The method of claim 1 , wherein the constraint zone selection is an element-by-element method that enables application of constraint zone types to zones of the 3D model based on multiple types of structure.
11. The method of claim 1 , wherein the constraint zone selection is a parameterization method based on coordinate ranges of the 3D model.
12. 2. The method of claim 1, wherein the zone processing includes positioning the XR zone using at least one of a rig file of the 3D target object or a rig file of the 3D object, the rig file being a file defined in a markup language that forms a coordinate system in the form of joints and elements.
13. The method of claim 1 , wherein the zone processing comprises processing the XNR zone to ensure a fit of the 3D model onto the 3D object.
14. 2. The method of claim 1, wherein the zone processing comprises processing the plurality of zones using a surface-to-surface (STS) algorithm that processes a surface of the 3D object, including a plurality of boundary curves, onto a surface of the 3D object.
15. The method of claim 1 , wherein the zone processing includes processing the INR zone using a weight calculation to create a smooth transition between the XR zone and the XNR zone.
16. The zone treatment comprises: - Placing the IR zone on the 3D model; determining that one of the IR zones is located within one of the XNR zones or one of the INR zones; applying an inverse transform to the one of the IR zones to return the one of the IR zones to a shape consistent with the 3D object; - re-transforming the INR zone using the one of the IR zones that coincides with the 3D object as one of the IR zones; 10. The method of claim 1, comprising:
Citation Information
Patent Citations
Method for execution of boolean operation regarding geometric graphic object in CAD system
JP1995306888A
Apparatus for designing product shape
JP2004348172A
System, method and program for supporting mask shape determination
JP2010131091A
Custom-made orthotic devices, casts, and equipment having openings, limited flexibility, and modular configurations, as well as methods for their design and manufacture.
JP2013530757A
3D modeling systems and methods
US20180147062A1