Patent ID: 12204828

The Figures depict preferred embodiments for purposes of illustration only. Alternative embodiments of the systems and methods illustrated herein may be employed without departing from the principles of the invention described herein.

DETAILED DESCRIPTION

FIG.1illustrates an example three-dimensional (3D) modeling system100or platform configured to automatically generate photorealistic, virtual 3D package and product models from 3D and two-dimensional (2D) imaging assets, in accordance with various embodiments disclosed herein. In the example embodiment ofFIG.1, 3D modeling system100includes server(s)102, which may be referred to herein as “modeling server(s),” and which may comprise one or more computer servers. In various embodiments, server(s)102comprise multiple servers, which may comprise multiple, redundant, or replicated servers as part of a server farm. In still further embodiments, server(s)102may be implemented as cloud-based servers. For example, server(s)102may be a cloud-based platform such as MICROSOFT AZURE, AMAZON AWS, GOOGLE CLOUD platform, or the like.

Server(s)102may include one or more processor(s)104as well as one or more computer memories106. Memories106may include one or more forms of volatile and/or non-volatile, fixed and/or removable memory, such as read-only memory (ROM), electronic programmable read-only memory (EPROM), random access memory (RAM), erasable electronic programmable read-only memory (EEPROM), and/or other hard drives, flash memory, MicroSD cards, and others. Memorie(s)106may store an operating system (OS) (e.g., Microsoft Windows, Linux, Unix, etc.) capable of facilitating the functionalities, apps, methods, or other software as discussed herein. Memorie(s)106may also store machine readable instructions, including any of one or more application(s), one or more software component(s), and/or one or more application programming interfaces (APIs), which may be implemented to facilitate or perform the features, functions, or other disclosure described herein, such as any methods, processes, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and/or other disclosure herein. For example, at least some of the software, instructions, scripts, applications, software components, or APIs may include, otherwise be part of, an automatic imaging asset assembly script, machine learning component, and/or other such software, where each are configured to facilitate their various functionalities as described herein. It should be appreciated that one or more other applications or scripts, such as those described herein, may be envisioned and that are executed by processor(s)104. In addition, whileFIG.1shows implementation of the systems and methods on server(s)102, it should be appreciated that the systems and methods herein may be implemented by a non-server computing system that includes one or more processors.

Processor(s)104may be connected to memories106via a computer bus responsible for transmitting electronic data, data packets, or otherwise electronic signals to and from processor(s)104and memories106in order to implement or perform the machine readable instructions, methods, processes, scripts, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and/or other disclosure herein.

Processor(s)104may interface with memory106via the computer bus to execute the operating system (OS). Processor(s)104may also interface with computer memory106via the computer bus to create, read, update, delete, or otherwise access or interact with the data stored in memory, including in memories106and/or the database105(e.g., a relational database, such as Oracle, DB2, MySQL, or a NoSQL based database, such as MongoDB). The data stored in memories106and/or the database105may include all or part of any of the scripts, data or information described herein, including, for example the automatic imaging asset assembly script, and/or the 2D imaging assets and 3D imaging assets as accessible by the automatic imaging asset assembly script.

As described herein a “memory” may refer to either memory106and/or database105. Such memory may be configured to store 2D imaging assets and 3D imaging assets accessible by processor(s)104, scripts, application, or other software, e.g., including an automatic imaging asset assembly script described herein.

In some embodiments, database105may be a product lifecycle management (PLM) database or system. Generally, a PLM database or system is implemented as an information management system that can integrate data, processes, and other business systems within an enterprise or platform, such as the platform depicted for 3D modeling system100. A PLM database or system generally includes software for managing information (e.g., 3D imaging assets and 2D imaging assets) throughout an entire lifecycle of a product/package in an efficient and cost-effectivities manner. The lifecycle may include lifecycle stages from ideation, design and manufacture, through service and disposal. In some embodiments, database105may store digital PLM objects (e.g., digital 3D imaging assets and/or 2D imaging assets as described herein). Such digital objects or assets can represent a real-world physical parts, assemblies(s), or documents, customer requirements or supplier parts, a change process, and/or other data types relating to a lifecycle management and development of a product and/or package. For example, digital objects or assets can include computer-aided design (CAD) file(s) that depict or describe (e.g., via measurements, sizes, etc.) parts, components, or complete (or partially complete) models or designs of products and/or packages. Generally, non-CAD files can also be included database105. Such non-CAD files can include text or data files describing or defining parts, components, and/or product or package specifications, vendor datasheets, or emails relating to a design. For example, a PLM database or system can index and access text contents of a file, which can include metadata or other information regarding a product or package for design purposes.

In addition, PLM objects or assets, and/or corresponding data records, such as those that may be stored in database105, can contain properties regarding an object's or an asset's parameters or aspects of its design lifecycle. For example, PLM database or systems can generally store different classes of objects or assets (primarily parts (e.g., as CAD files), documents, and change forms) with distinct properties and behaviors. Such properties can include metrics or metadata such as part/document number, item category, revision, title, unit of measure, bill of materials, cost, mass, regulatory compliance details, file attachments, and other such information regarding product(s), and/or package(s) of a company. In addition, such PLM objects or assets may be linked, e.g., within database105(e.g., as a relational database), to other objects or assets within database105for the association of or otherwise generation or construction of a product structure. In this way, a PLM database can be flexibly used to identify objects and assets, create and define relationships among such objects and assets. Such flexibility provides a basis for the creation, customization, revision, and/or reuse of virtual models (e.g., virtual 3D models) as described herein, and also the 3D and 2D imaging assets on which they are based.

For example, in some embodiments, processor(s)104may store virtual 3D model(s) in memory106and/or database105such that virtual 3D model(s) are accessible to an automatic imaging asset assembly script or a visualization editor. In this way, an automatic imaging asset assembly script or the visualization editor, in a new or next iteration of a product lifecycle or introduction of new product lifecycle, may generate one or more new or additional virtual 3D models corresponding to one or more new or additional real-world products or product packages.

In various embodiments described herein, database105, implemented as a PLM database or system, can support CAD files for components or parts of existing or future (i.e., to be designed) products and/or packages. Such a PLM database or system can be implemented, for example, via third party software such as ALTIUM DESIGNER, ORCAD component information system (CIS), or the like

While a PLM based database and system are described in various embodiments herein, it is to be understood that other database or memory management systems (e.g., standard relational databases, NoSQL databases, etc.) may likewise be used in accordance with the disclosure of the 3D modeling systems and methods herein. As a non-limiting example, a PLM based database and/or system may comprise a “data lake” or the like, where a data lake or similar such database can comprise a system or repository of data stored in its natural/raw format, for example, as object blobs, raw bytes, and/or data files.

Further with respect toFIG.1, server(s)102may further include a communication component configured to communicate (e.g., send and receive) data via one or more external/network port(s) to one or more networks or local terminals, such as computer network120and/or terminal109(for rendering or visualizing) as described herein. In some embodiments, server(s)102may include a client-server platform technology such as ASP.NET, Java J2EE, Ruby on Rails, Node.js, Flask, or other web service or online API, responsive for receiving and responding to electronic requests. The server(s)102may implement the client-server platform technology that may interact, via the computer bus, with memories(s)106(including the applications(s), component(s), API(s), data, etc. stored therein) and/or database105to implement or perform the machine readable instructions, methods, processes, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and/or other disclosure herein. According to some embodiments, the server(s)102may include, or interact with, one or more transceivers (e.g., WWAN, WLAN, and/or WPAN transceivers) functioning in accordance with IEEE standards, 3GPP standards, or other standards, and that may be used in receipt and transmission of data via external/network ports connected to computer network120.

Server(s)102, via processor(s)104, may further include, implement, or launch a visualization editor, or otherwise operator interface, to render models or photorealistic images, present information to a user, and/or receive inputs or selections from the user. As shown inFIG.1, the user interface may provide a display screen or graphic display (e.g., via terminal109).

Server(s)102may also provide I/O components (e.g., ports, capacitive or resistive touch sensitive input panels, keys, buttons, lights, LEDs), which may be directly accessible via or attached to server(s)102or may be indirectly accessible via or attached to terminal109. According to some embodiments, a user may access the server102via terminal109to render models or photorealistic images (e.g., via a visualization editor), review information, make changes, input data, and/or perform other functions.

As described above herein, in some embodiments, server(s)102may perform the functionalities as discussed herein as part of a “cloud” network or may otherwise communicate with other hardware or software components within the cloud to send, retrieve, or otherwise analyze data or information (e.g., virtual 3D model(s)) as described herein.

In various embodiments herein, a computer program, script, code, or application, (e.g., an automatic imaging asset assembly script) may comprise computer-readable program code or computer instructions, in accordance with embodiments herein, and may be stored on a computer usable storage medium, or tangible, non-transitory computer-readable medium (e.g., standard random access memory (RAM), an optical disc, a universal serial bus (USB) drive, or the like). Such comprise computer-readable program code or computer instructions may be installed on or otherwise adapted to be executed by processor(s)104(e.g., working in connection with the respective operating system in memories106) to facilitate, implement, or perform the machine readable instructions, methods, processes, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and/or other disclosure herein. In this regard, the program code or scripts may be implemented in any desired program language, and may be implemented as machine code, assembly code, byte code, and/or interpretable source code or the like (e.g., via Golang, Python, C, C++, C#, Objective-C, Java, Scala, ActionScript, JavaScript, HTML, CSS, XML, etc.). For example, as described herein, server(s)102, implementing processor(s)104, may execute one or more automatic imaging asset assembly scripts to assemble or otherwise manipulate or generate parametric-based CAD models or other models described herein.

In the example embodiment ofFIG.1, modeling server(s)102are communicatively connected, via computer network120. Computer network120may comprise a packet based network operable to transmit computer data packets among the various devices and servers described herein. For example, computer network120may consist of any one or more of Ethernet based network, a private network, a local area network (LAN), and/or a wide area network (WAN), such as the Internet.

For example, as shown forFIG.1, computer network120connects and extends 3D modeling system100, where virtual 3D model(s) may be transmitted to third-party server(s)150of third-parties (e.g., such as retailers or customers) at remote locations152for creation or review of real-world product(s) and/or product packages as described herein. In such embodiments, server(s)102and/or processor(s)104may be configured to initiate creation of at least a portion of a real-world product or product package based on a virtual 3D model, as described herein. For example, in some embodiments, a virtual 3D model may be transmitted to a 3D printer for creation of at least a portion of the real-world product or product package. For example, either local 3D printer107or remote 3D printer157(e.g., via computer network120) may receive a virtual 3D model for printing of a corresponding real-world product and/or product package (or portion thereof). In such embodiments, a 3D printer may load, or otherwise analyze, a virtual 3D model as described herein, causing the 3D printer to print or produce the corresponding real-world product or product package (or portion thereof).

Still further, computer network120may connect and extend 3D modeling system100, where virtual 3D model(s) may be transmitted to factory server(s)160of a factory or process plant162for creation or review of real-world product(s) and/or product packages. In such embodiments, server(s)102may transmit, via computer network120, a virtual 3D model to factory or process plant162for creation, processing, production, and/or manufacture of at least a portion of a real-world product or product package. In some embodiments, receipt of the virtual 3D model may queue a real-world product or product package (or portion thereof) for production or creation by the factory or process plant162. For example, the virtual 3D model may be used to generate a mold or part (e.g., mold162m). The mold (e.g., mold162m) may then be used to manufacture or make, e.g., at the process plant (e.g., process plant162) a physical item (e.g., a rigid and/or plastic bottle) and/or portions or parts thereof. Additionally, or alternatively, the mold may be created a remote location to the process plant (e.g., at a designers location) and then physically transferred (e.g., shipped) to the process plant for manufacture or make of the physical item (e.g., a rigid and/or plastic bottle) and/or portions or parts thereof.

In some embodiments, modeling server(s)102may be downloaded or retrieved 2D imaging assets and/or 3D imaging assets over computer network120. For example, 2D imaging assets and/or 3D imaging assets may be downloaded, by modeling server(s)102, from remote server(s)140which may store 2D imaging assets and/or 3D imaging assets. Remote server(s)140may be those of a third-party or of the company designing or developing product(s) and/or product package(s) as described herein. In some embodiments, a portion or subset of 2D imaging assets or 3D imaging assets required to design product(s) and/or product package(s) may be retrieved from the remote server(s)140.

FIG.2illustrates a flow diagram200depicting a memory (e.g., PLM database system210) configured to store the 2D imaging asset(s) and the 3D imaging asset(s) (e.g., assets201-208), or links or references to such assets, as described for the 3D modeling system ofFIG.1, in accordance with various embodiments disclosed herein. In the embodiment ofFIG.2, PLM database system210corresponds to database105and/or memory106, and related disclosure, as described forFIG.1.

In the embodiment ofFIG.2, a predefined design shape corresponding to a real-world product or product package (e.g., a shampoo bottle with a label or package of toilet paper with a wrapper) is selected for submission and search of PLM database system210. As shown in the embodiment ofFIG.2, a user may select the predefined design shape from a user interface209. In other embodiments, one or more predefined design shape(s) may be loaded into a script for submission to the PLM database system210without user selection. Various types of shapes may be selected or used as the predefined design shape 3D. This includes shapes corresponding to products and/or packages of, or corresponding to, bottles, cartons, canisters, wrappers, boxes, bags, and the like.

With respect to the embodiment ofFIG.2, the predefined design shape is associated with various 2D imaging asset(s), the 3D imaging asset(s), and/or information, including links or references, to such assets, which are stored in and accessible via PLM database system210. Selection or submission of the predefined design shape causes a search of PLM database system210to identify the corresponding 2D imaging asset(s), the 3D imaging asset(s), and/or information, including links or references, to such assets. The search returns a parts list220, which may contain new or additional 2D imaging asset(s), the 3D imaging asset(s), and/or information relating to parts, components, products, or packages that match or otherwise correspond to, within a given threshold, the predefined design shape.

As shown in the embodiment ofFIG.2, PLM database system210can store, and can be searched or queried for, imaging asset(s) including 3D imaging asset(s), FFP information201, global trade item numbers (GTIN) identifiers202for identifying part and component information (e.g., CAD files for parts or components of products and/or packages), brands203associated with products and/or packages related to the GTIN values, image(s)204of products and/or packages corresponding to the GTIN values and/or packages, size information206of products and/or packages corresponding to the GTIN values and/or packages, and region208where such products and/or packages are typically sold.

FIG.3Aillustrates a flow diagram300of an example automatic imaging asset assembly script302for assembling the 2D imaging asset(s) and/or the 3D imaging asset(s) as described forFIGS.1and2, in accordance with various embodiments disclosed herein. As used to herein, in some embodiments, CAD components may be 3D imaging assets, such as STP (Standard for the Exchange of Product) files, which may be rotated and/or viewed from various different angles within 3D space as rendered in a visualization editor. Additionally, or alternatively, CAD components may be 2D imaging assets, such as DWF (Design Web Format), DWG (Drawing) files, or DXF (Drawing exchange format), which may show one or more views, angles, or perspectives in a visualization editor rendered in 2D space. It is to be understood that additional and/or other file types, formats, or extensions may be used or accessed by automatic imaging asset assembly scripts as described herein.

In the embodiment ofFIG.3A, automatic imaging asset assembly script302may access (or be provided) parts list220, as described forFIG.2, from PLM database system210. Automatic imaging asset assembly script302may then assemble parts or components by analyzing the GTIN identifiers202in parts list220. For example, GTIN identifiers202may be used to look up product and/or package information in a database (e.g., database105and/or memory106). Such information may include CAD components (e.g., a CAD part311, a CAD part312, and a CAD part313) or other information (e.g., label position316, physical and/or color-material-finishes (CMF) data or libraries (e.g., including chromatic/color, tactile and decorative identity of a design of a product/package), referred to herein as physical materials/CMF318, weights/measurements319, or other information as described herein, of products and/or packages, or parts thereof) that will be used to construct virtual 3D models, or other models or assets, as described herein. Physical materials/CMF318may also include meta data such as formula(s) and/or ingredients corresponding to physical characteristics of, or the making and/or manufacturing of, products and/or packages, or parts thereof as described herein. In some embodiments, automatic imaging asset assembly script302may be implemented or executed by a CAD or computer-aided manufacturing (CAM) platform or software modeling tool301, such as the CATIA software modeling tool as provided by Dassault Systèmes, or the like.

In the embodiment ofFIG.3A, processor(s)104are configured to load, into a memory (e.g., memory106and/or database105), one or more CAD components (e.g., a CAD part311, a CAD part312, and a CAD part313) as selected from one or more of the 2D imaging assets or the 3D imaging assets. In this way, the one or more CAD components (e.g., CAD parts311-313) are loaded in memory based on the predefined design shape corresponding to the real-world product or product package as described forFIG.2. In some embodiments, an activation, identification, or otherwise selection of the predefined design shape may cause processor(s)104to select and execute automatic imaging asset assembly script302. Additionally, or alternatively, automatic imaging asset assembly script302may be selected based on a classification of the predefined design shape as identified or otherwise selected. For example, database105and/or memory106may store a plurality of automatic imaging asset assembly scripts (e.g., 100s or 1000s of scripts) corresponding to various different shapes or product and/or packaging types, such as any of those as described herein. Each of these automatic imaging asset assembly scripts are configured to assemble specific 3D and/or 2D imaging assets for the development of virtual 3D models as described herein. For example,FIGS.3A-3Cillustrate an embodiment of an automatic imaging asset assembly script (e.g., automatic imaging asset assembly script302) for assembling a virtual 3D model of a shampoo bottle with a label. In some embodiments, the automatic imaging asset assembly scripts may be accessed or looked-up in a lookup table (e.g., a digital dictionary or relational table) based on the classification (e.g., bottle type shape) of the predefined design shape (e.g., where the predefined design shape is used as a “key” or index for the lookup).

Additionally, or alternatively, a machine learning or artificial intelligence algorithm may be used to detect automatic imaging asset assembly script to execute or use. In such embodiments, for example, parts list220may be used as feature data that may be input in a script detection AI model. The script detection AI model may be previously trained on parts list information (e.g., assets201-208). When the parts list220is input, the script detection AI model may classify the parts list220as a bottle type shape. The script detection AI model may then return a list of automatic imaging asset assembly scripts that correlate to bottle type shapes. A script (e.g., automatic imaging asset assembly script302) with the highest probability of matching the given parts list220is then be selected by processor(s)104for assembling CAD components, etc., as described herein.

With respect toFIG.3A, processor(s)104of 3D modeling system100may be configured to assemble, with automatic imaging asset assembly script302, the one or more CAD components (e.g., CAD parts311to313) to create a parametric-based CAD model. The parametric-based CAD model may be corresponding to a design for a real-world product or product package (e.g., a shampoo bottle with a label).

For example,FIG.3Billustrates a visualization or rendering of CAD components (CAD parts311to313) as selected from 2D or 3D imaging asset(s) as described forFIG.3A, and in accordance with various embodiments disclosed herein. In the embodiment ofFIG.3B, each of CAD parts311to313is depicted separately such that a parametric-based CAD model310(as described forFIG.3Cherein) is shown in an exploded view. As shown, CAD part311is a cap of a shampoo bottle; CAD part312is a body of the shampoo bottle; and CAD part313is a label of the shampoo bottle. Each of these components is shown as rendered as a virtual or 3D component. In addition, in various embodiments, each of these components, includes parametric information. Parametric information may include information regarding curves, equations, and relational data defining the shape of each of the components, i.e., CAD parts311to313. In various embodiments, herein, such parametric information, or variables related to each of the components, can be manipulated or edited, e.g., by processor(s)104, to alter, update, or otherwise modify or change the shape, appearance, volume, or otherwise dimensions or more of the components (e.g., CAD parts311to313), in order to make the parts fit together or otherwise form a complete or wholly formed virtual product and/or product package.

For example,FIG.3Cillustrates a visualization or rendering of a parametric-based CAD model310as created from the CAD components (CAD parts311to313) ofFIG.3B, in accordance with various embodiments disclosed herein. Parametric-based CAD model310comprises each of the CAD parts311to313(fromFIG.3B), but is a complete or wholly formed virtual product and/or product package (e.g., of a shampoo bottle). As illustrated byFIG.3A, automatic imaging asset assembly script302assembles CAD parts311to313, e.g., by closing (314) the lid/cap (CAD part311) and orients the label (CAD part313) to the body (CAD part312) to form the virtual shampoo bottle (i.e., the parametric-based CAD model310). The closing and attaching are performed in 3D space based on the parametric information and relation of such data among each of the CAD components (CAD parts311to313). In this way, automatic imaging asset assembly script302assembles the appropriate CAD components, corresponding with the predefined design shape, by performing automatic imaging mapping, positioning, or otherwise correlation by closing the cap/lid, fixing orientation of the various CAD components with respect to one another, which includes, assembling the bottle, cap, and label. This may include by using die-line(s) on surface(s) of the components.

Automatic imaging asset assembly script302also assembles (320) each of the other 2D or 3D imaging assets, including the label position316, physical materials/CMF318, and/or weights/measurements319to prepare the parametric-based CAD model310for conversion, or allow the generation, of polygonal models as described herein.

As shown byFIG.3A, parametric-based CAD model310, together with its CAD components (CAD parts311to313), may be exported to an STP file340(or other 3D asset file). In various embodiments, STP file340includes importing or saving (e.g., into STP file340or, more generally, into memory106or database105) purpose formatted layers, referred to herein as imaging layers330, for automation later in the process. The imaging layers330may define sections (such as separations) of the CAD parts311to313for manipulation parts or components. In some embodiments, imaging layers330are used to map a virtual label (e.g., CAD part313) to a polygonal model of a real-world product and/or package, for example, as described herein forFIGS.6A and6B.

In addition, parametric data and/or meta-data, which may include physical and/or color-material-finishes (CMF) data or libraries (e.g., including chromatic/color, tactile and decorative identity of a design of a product/package), weights, measures, or configurations corresponding to parametric-based CAD model310(which may correspond to physical materials/CMF318and/or weights/measurements319), may be stored in a meta-data file to be used with conversion of the parametric-based CAD model310, or allow the generation, of polygonal models as described herein. The meta-data file may be an extensible markup language (XML) file, e.g., CAD XML file350.

In various embodiments, STP file340and/or CAD XML file350may be stored and correlated or referenced together in a database (e.g., database105). The STP file340and/or CAD XML may be identified with a GTIN identifier so as to be recalled or reused to create the shampoo bottle depicted by parametric-based CAD model310or for future use to create new or different versions of bottle based products and/or packages in future projects or iterations.

FIG.4Aillustrates a flow diagram400for generating a polygonal model410of a real-world product or product package based on parametric-based CAD model310ofFIG.3C, in accordance with various embodiments disclosed herein. Generally, a polygonal model is a 3D graphic or virtual model that represents or approximates surfaces of real world objects using polygon meshes (e.g., a series connected planar shapes, e.g., triangles or quads, defined in 3D space). Polygonal models may be rendered via, e.g., physically based ray-tracer rendering. Additionally, or alternatively, the polygon models, as described herein, may be generated via various 3D imaging techniques, including via non-uniform rational basis spline (NURBS) surfaces, subdivision surfaces, and equation-based surface representations as used in ray traced graphics.

In some embodiments, flow diagram400is implemented as a fully automated algorithm or script executed or implemented by processor(s)104. Additionally, or alternatively, flow diagram400may be implemented or augmented by a visualization editor, or its underlying software, packages, and/or APIs, including through software or scripts provided by the visualization editor and/or through interaction by a user of the visualization editor. For example, in the embodiment ofFIG.4A, the 2D imaging assets and 3D imaging assets as described forFIGS.3A-3C(e.g., assets311to319) may be loaded (402) into a visualization editor. Visualization editors, software, packages, and/or APIs that may be used with flow diagram600include those software packages, tools, and/or visualization editors as executable by MODO and COLORWAY as provided by Foundry Visionmongers Ltd., MAYA as provided by Autodesk, Inc., CINEMA 4D as provided by MAXON computer GmbH, or the like.

Once loaded into the visualization editor, the 2D and/or 3D imaging assets may be used by the visualization editor to generate a polygonal model. For example, a polygonal generation script (e.g., polygonal model generation script502, as described forFIG.5A) may invoke the visualization editor, and/or its 3D software, to manipulate, orient, or otherwise check the 2D and/or 3D imaging assets for quality and accuracy. For example, the polygonal orientation script may check each of CAD parts311to313for accurate sizing and/or positioning with respect to one another so that each of CAD parts311to313form a complete or whole (and accurately scaled) version of a real-world product or product package (e.g., the shampoo bottle as described forFIGS.3A-3C).

FIG.4Billustrates a visualization or rendering of the polygonal model410of the real-world product or product package ofFIG.4A, in accordance with various embodiments disclosed herein. In the embodiment ofFIG.4B, each of CAD parts311to313is depicted oriented and aligned such polygonal model410is shown as a complete or whole (and accurately scaled) version of a real-world product or product package (e.g., the shampoo bottle as described forFIGS.3A-3C). Similar to parametric-based CAD model310, from which polygonal model410was generated, polygonal model410includes or represents CAD part311as a cap of a shampoo bottle; CAD part312as a body of the shampoo bottle; and CAD part313as a label of the shampoo bottle. Each of these components is shown as a virtual or 3D component that is part of the polygonal model410.

In some embodiments, a visualization editor (e.g., MODO) may be launched or otherwise executed with processor(s)104, where the visualization editor is configured to load, on a graphical display (e.g., terminal109), any one or more of the one or more CAD components (e.g., CAD parts311to313), parametric information associated with polygonal model410, the parametric-based CAD model410itself, a polygonal model (e.g., a polygonal model410), or other visualizable or renderable images or assets, including a UV coordinate mapping, a virtual product label, or a virtual 3D model, as described herein. Each of these imaging assets or models may be manipulated or changed in the visualization editor and applied the polygonal model410to create new, different, or updated designs or changes. Such changes may include, by way of non-limiting example, changes or manipulations to scale, size, color, texture, position, orientation, etc.

FIG.5Aillustrates a flow diagram500for generating high resolution and low resolution polygonal models of real-world products or product packages, in accordance with various embodiments disclosed herein.FIG.5A, and relatedFIGS.5B and5C, illustrate an automated embodiment or version of the visual embodiments ofFIGS.4A and4B. That is, at least in some embodiments, flow diagram500ofFIG.5Ais implementable by processor(s)104without manual input. Additionally, or alternatively, however, flow diagram500may include both automatic or program execution and inputs from the visualization editor described forFIG.4A. That is, flow diagram500may be implemented or augmented by a visualization editor, or its underlying software, packages, and/or APIs, including through software or scripts provided by the visualization editor and/or through interaction by a user of the visualization editor. Visualization editors, software, packages, and/or APIs that may be used with flow diagram500include those software packages, tools, and/or visualization editors as executable by MODO and COLORWAY as provided by Foundry Visionmongers Ltd., MAYA as provided by Autodesk, Inc., CINEMA 4D as provided by MAXON computer GmbH, or the like.

As shown forFIG.5A, processor(s)104, implementing flow diagram500, are configured to generate a low resolution polygonal model510L or a high resolution polygonal model510H. In addition, processor(s)104may be configured to generate a further high resolution polygonal model530H with virtual materials (e.g., physical materials/CMF318) applied to the surface and/or environment of the high resolution polygonal model530H. Each of these polygonal models may be generated from parametric-based CAD model310as described herein.

For example, in the embodiment ofFIG.5A, polygonal model generation script502may be invoked by processor(s)104to generate low resolution polygonal model510L and/or a high resolution polygonal model510H. To generate such models, polygonal model generation script502loads or accesses 3D imaging assets (CAD parts311-313) from STP file340or from memory106and/or database105. In addition, polygonal model generation script502loads or access weights/measurements319and perform any quality and assurance adjustments504regarding weights and/or measurements to parametric-based CAD model310, including to its various components (e.g., CAD parts311-313). For example, such quality and assurance adjustments504may be based on parametric information, for example as determined from parametric-based CAD model310, or other 2D or 3D asset information and/or as stored in CAD XML file350. Quality and assurance adjustments504may include processor(s)104increasing or decreasing line weights, scaling, orienting, and/or aligning components (e.g., CAD parts311-313) and/or their measurements.

After application of the quality and assurance adjustments504, processor(s)104may generate or convert505parametric-based CAD model310(or its component parts, e.g., CAD parts311-313as adjusted) to a polygonal model. For example, in various embodiments parametric-based CAD model310is a spline based model, where processor(s)104are configured to generate polygon surfaces or textures from the splines of parametric-based CAD model310.

In some embodiments, a unified model506may be generated. Unified model506may be generated as a low resolution polygonal model510L which has fewer polygons than high resolution models, resulting in a “rough” or low quality surface. For example,FIG.5Billustrates a visualization or rendering of low resolution polygonal model510L of a real-world product or product package (e.g., a shampoo bottle) created in accordance with flow diagram500ofFIG.5A, and in accordance with various embodiments disclosed herein. In the embodiment ofFIG.5B, each of CAD parts511L and512L is depicted as oriented and aligned such that low resolution polygonal model510L is shown as a complete or whole (and accurately scaled) version of a real-world product or product package (e.g., the shampoo bottle as described forFIGS.3A-3C and4A and4B). Similar to parametric-based CAD model310, from which low resolution polygonal model510L was generated, low resolution polygonal model510L includes a polygon representation of CAD part311(rendered as polygon part511L as a cap of a shampoo bottle) and CAD part312(rendered as polygon part512L as a body of the shampoo bottle). Both of these components are shown as a virtual or 3D component that is part of low resolution polygonal model510L. Positioning and application of CAD part313(rendering and application of a virtual a label of the shampoo bottle) is further described inFIGS.6A and6Bherein.

In various embodiments, the low resolution polygonal model may be used to as preliminary or rough design sketch, as it requires less processing (e.g., by processor(s)104) and memory resources (e.g., computer memory106and/or database105) to generate a virtual model. Accordingly, low resolution polygonal model510L may be generated quickly in order to determine if any errors have been made or to determine whether the design meets expectations. If not, a new low resolution polygonal model510L may be regenerated as required or desired to fix errors, make adjustments, or design elements associated with the design of the real-world product and/or package (e.g., a shampoo bottle). This generally speeds up the design process and conserves computational resources upon which 3D modeling system100relies.

Additionally, or alternatively, as shown forFIG.5A, polygonal model generation script502may generate a high resolution polygonal model510H of a real-world product or product package (e.g., a shampoo bottle). For example, polygonal model generation script502may covert, or generate, parametric-based CAD model310from parametric-based CAD model310where a high number of polygons are mapped or generated from splines of parametric-based CAD model310. With the higher number of polygons, the surface of high resolution polygonal model510H more realistically represents a real-word product or package as compared to the low resolution polygonal model510L.

FIG.5Cillustrates a visualization or rendering of a high resolution polygonal model of a real-world product or product package created in accordance with flow diagram500ofFIG.5A, and in accordance with various embodiments disclosed herein. In the embodiment ofFIG.5C, each of CAD parts511H and512H is depicted as oriented and aligned such that high resolution polygonal model510H is shown as a complete or whole (and accurately scaled) version of a real-world product or product package (e.g., the shampoo bottle as described forFIGS.3A-3C and4A and4B). Similar to parametric-based CAD model310, from which high resolution polygonal model510H was generated, high resolution polygonal model510H includes a polygon representation of CAD part311(rendered as polygon part511H as a cap of a shampoo bottle) and CAD part312(rendered as polygon part512H as a body of the shampoo bottle). Both of these components are shown as a virtual or 3D component that is part of high resolution polygonal model510H. Positioning and application of CAD part313(rendering and application of a virtual a label of the shampoo bottle) is further described inFIGS.6A and6Bherein.

In some embodiments, both low resolution polygonal model510L and high resolution polygonal model510H may be saved or referenced together, e.g., in computer memory106and/or database105, for later retrieval or access by processor(s)104.

In various embodiments, one or more digital surface finish artifacts of a virtual material library520, as selected from the 2D imaging assets, may be applied (522) to a polygonal model. For example, as shown inFIG.5A, the physical materials/CMF318are applied (522), by processor(s)104, to high resolution polygonal model510H generate a virtual 3D model810M of the real-world product or product package (e.g., shampoo bottle). Physical materials/CMF318may include product surface textures, print finishes, colors, appearances, and finishes (e.g., smooth, shiny, water, wood, metal, grain, etc.). Such Physical materials/CMF318may be stored in CAD XML file350for access by polygonal model generation script502, processor(s)104, and/or a 3D software of a visualization editors. The physical materials/CMF318values are applied to high resolution polygonal model510H by adding the surface textures, print finishes, colors, appearances, etc. to the surface or other area of high resolution polygonal model510H.

FIG.6Aillustrates a flow diagram600for generating, based on parametric information as described forFIGS.3A-3C, a UV coordinate mapping corresponding to a virtual product label, in accordance with various embodiments disclosed herein. In some embodiments, flow diagram600is implemented as a fully automated algorithm or script executed or implemented by processor(s)104. Additionally, or alternatively, flow diagram600may be implemented or augmented by a visualization editor, or its underlying software, packages, and/or APIs, including through software or scripts provided by the visualization editor and/or through interaction by a user of the visualization editor. Visualization editors, software, packages, and/or APIs that may be used with flow diagram600include those software packages, tools, and/or visualization editors as executable by MODO and COLORWAY as provided by Foundry Visionmongers Ltd., MAYA as provided by Autodesk, Inc., and/or CINEMA 4D as provided by MAXON computer GmbH.

The parametric information may include label position316, determined from parametric-based CAD model310, as described forFIGS.3A-3C. In addition, imaging layers330, as described forFIGS.3A-3C, may define sections (such as separations) of the CAD parts311to313for manipulation parts or components.

Parametric information (e.g., label position316) and/or layers330may be used to map a virtual label (e.g., CAD part313) to a polygonal model of a real-world product and/or package (e.g., virtual 3D model810M). In the embodiment ofFIG.6A, processor(s)104preprocess label position316and layers330. For example, at block604processor(s)104executes a script to convert label position316into information regarding artwork die-lines, and related die-line positions in 3D space. At block602, processor(s)104determine basic packaging parts from layers330. The packaging parts and die-line positions are then used to UV map and align a virtual label onto a polygonal model (e.g., virtual 3D model810M).

FIG.6Billustrates a visualization or rendering of the UV coordinate mapping described forFIG.6A, and in accordance with various embodiments disclosed herein. For example, model610represents parametric information of the shape of virtual 3D model810M. In some embodiments, model610corresponds to parametric-based CAD model310, which includes CAD part312that corresponds to bottle body612. In the embodiment ofFIG.6B, two virtual labels are UV mapped to bottle body612. The two labels are front label613F and rear label613R. Either of front label613F or rear label613R may correspond to CAD part313(e.g., a 3D label) as described herein.

As shown inFIG.6A, at block606, processor(s)104, using packaging parts (e.g., including dimensions of front label613F and rear label613R) and die-line positions (e.g., bottle die-line612D and rear label die-line613RD), executes programmed code to generate label specific UV space for UV mapping. Generally, the UV mapping prepares the polygons of the surface of virtual 3D model810M for later application of colors, materials, surfaces, finishes, for example, as described herein forFIGS.5A,7A, and7B. In particular, the UV mapping results in a UV texture map. The texture map includes or assigns surface tags to polygons that can be used to apply the colors, materials, surfaces, finishes, etc.

In the embodiment ofFIGS.6A and6B, UV mapping includes mapping the surfaces of front label613F and rear label613R to the surface of bottle body612. The UV mapping may also include tagging surfaces of the bottle body612, label613F, and/or rear label613R. Tagging the surfaces or polygons allows processor(s) to apply colors or textures to specific polygons or areas of the respective surfaces of the bottle body612, front label613F, and/or rear label613R. In addition, UV mapping may include mapping front label surface points, tags, or specific polygons (e.g., UVF1and UVF2) from front label613F to bottle body612and rear label surface points, tags, or polygons (e.g., UVR1and UVR2) from rear label613R to the surface, tags, or polygons of bottle body612. In some embodiments, the front label surface points and the rear label surface points may be points chosen along the die-lines (e.g., bottle die-line612D and rear label die-line613RD) to ensure that the labels are correctly positioned on bottle body612.

Together, using packaging parts (e.g., including dimensions of front label613F and rear label613R) as determined from layers330, and die-line positions (e.g., bottle die-line612D and rear label die-line613RD) as determined from label position316, enable automatic accurate placement of artwork of virtual labels into UV space for application or rendering on a virtual 3D model, e.g., virtual 3D model810M. This allows for generation and rendering of virtual 3D models (e.g., virtual 3D model810M) as photorealistic images (e.g., photorealistic image810P, as shown forFIG.9A) representing real-world products or product packages, complete with a photorealistic label.

FIGS.7A and7Billustrate a flow diagram700depicting application of one or more digital surface finish artifacts of a virtual material library (e.g., virtual material library520), as selected from the 2D imaging assets, to a high resolution polygonal model (e.g., high resolution polygonal model510H) as described forFIGS.5A and5C, in accordance with various embodiments disclosed herein. Flow diagram700illustrates a second, more detailed embodiment of flow diagram500with respect to the application of one or more digital surface finish artifacts of a virtual material library (e.g., virtual material library520), as selected from the 2D imaging assets, to a high resolution polygonal model (e.g., high resolution polygonal model510H). In addition, flow diagram700describes generation, by processor(s)104, of a virtual 3D model (e.g., virtual 3D model810M) of the real-world product or product package based on a polygonal model (e.g., high resolution polygonal model510H) and a UV coordinate mapping for a virtual product label (e.g., as described forFIGS.6A and6B).

In some embodiments, flow diagram700is implemented as a fully automated algorithm or script executed or implemented by processor(s)104. Additionally, or alternatively, flow diagram700may be implemented or augmented by a visualization editor, or its underlying software, packages, and/or APIs, including through software or scripts provided by the visualization editor and/or through interaction by a user of the visualization editor. Visualization editors, software, packages, and/or APIs that may be used with flow diagram600include those software packages, tools, and/or visualization editors as executable by MODO and COLORWAY as provided by Foundry Visionmongers Ltd., MAYA as provided by Autodesk, Inc., PHOTOSHOP as provided by ADOBE INC, and/or CINEMA 4D as provided by MAXON computer GmbH.

As illustrated byFIG.7A, diagram700includes processor(s)104accessing or loading, into or from database105and/or memorie(s)106, physical materials/CMF318, virtual material library520, high resolution polygonal model510H. As described forFIG.5A, one or more digital surface finish artifacts of a virtual material library520, as selected from the 2D imaging assets, are applied (522) to high resolution polygonal model510H. For example, as shown inFIG.7A, the physical materials/CMF318may be incorporated with or applied to virtual material library520and then automatically applied (522), by processor(s)104, to high resolution polygonal model510H. Physical materials/CMF318may include product surface textures, print finishes, colors, appearances, and finishes (e.g., smooth, shiny, water, wood, metal, grain, etc.). Such physical materials/CMF318may be stored in CAD XML file350for access by polygonal model generation script502, processor(s)104, and/or a 3D software of a visualization editors.

At block702, processor(s)104loads artwork704into memorie(s)106. Artwork704may include drawings, pictures, designs, or other such art that may be printed or otherwise included on a product and/or package, such as on the label of a product and/or package. In some embodiments, artwork704may be chosen that matches the 3D shape associated with high resolution polygonal model510H.

By accessing the UV mapping, and related tagged areas or polygons, of high resolution polygonal model510H, processor(s)104may map or otherwise apply artwork704, including artwork for any labels (e.g., front label613F and/or rear label613R), to the surface of high resolution polygonal model510H. For example, the UV mapping, ofFIGS.6A and6B, can include assigning, tagging, or mapping pixel(s) of surface area(s) or polygon(s) of high resolution polygonal model510H. Such tags or mapping may be then used to identify specific pixels and/or polygons, on the surface of high resolution polygonal model510H, to apply artwork, colors, materials, finishes, etc. Rendering high resolution polygonal model510H includes processors)104accessing the UV mapping, and its coordinates, to determine how to digitally paint or render the 3D surface of high resolution polygonal model510H.

Similarly, by accessing the UV mapping, and related tagged areas or polygons, of high resolution polygonal model510H, processor(s)104may map or otherwise apply materials or finishes, including those of physical materials/CMF318and/or virtual material library520, to the surface of high resolution polygonal model510H. In some embodiments, these materials or finishes may be applied to specific artwork704to improve or enhance the 3D image quality of the high resolution polygonal model510H.

In such embodiments, artwork704may be split into masks or polygons in order for processor(s)104to apply different finishes or colors swatches to match materials. If masks are used, processor(s)104may select corresponding virtual materials based artwork704that is applied to high resolution polygonal model510H.

At block712, processor(s)104may apply, or prepare for rendering, back plates or background images714and/or lighting effects716with respect to high resolution polygonal model510H. Generally, a back plate or background image714is a high resolution 2D image within which 3D models (e.g., high resolution polygonal model510H) can be integrated or otherwise displayed. A back plate or background image may be designed and/or generated by a visualization editor (e.g., MODO) and/or its underlying software or APIs to create a scene within which a 3D model may be rendered or represented as a photorealistic image. In some embodiment, a scene may be a “real store” scene where a 3D model and/or photorealistic image is rendered as depicted on a virtual store shelf or other retail environment. Still further, a background or back plate image may be implemented as a high dynamic range image (HDRI). And HDRI image combines luminosity across a broad color spectrum to provide real-world quality images.

In some embodiments, processor(s)104may apply lighting effects716using HDRI (714) to match the polygonal model510H into a back plate (e.g., of back plates or background images714). For example, this includes processor(s)104adding one or more light sources such that high resolution polygonal model510H may be rendered as illuminated within the back plates or background images714by the specified light sources. For example, in some embodiments, this may include identifying and/or aligning camera scenes of the high resolution polygonal model510H within an environment of the back plates or background images714, and calibrating lighting intensity to correspond to HDRI values and virtual material(s) and/or finishe(s) of the high resolution polygonal model510H. In some embodiments, processors104may load, from memorie(s)106, a preset list of cameras, back plates, and/or HDRI environments for particular models, components, parts, etc. based on GTIN identifiers for such models, components, parts.

At block730, processor(s)104saves, e.g., in database105and/or memorie(s)106, high resolution polygonal model510H and its one or more digital surface finish artifacts, as generated with physical materials/CMF318, virtual material library520back plates or background images714, and/or lighting effects716. The information is saved for use by a visualization editor (e.g., COLORWAY) and/or its underlying 3D software or APIs. In some embodiments, meta-tags are used to code surfaces or polygons, or references thereto, of high resolution polygonal model510H for use in coloring such surfaces or areas. For example, in some embodiments, COLORWAY element files be stored and meta-tagged in a database (e.g., database105).

Referring toFIG.7B, at block742, as part of flow diagram700, processor(s)104accesses back plates or background images714and/or lighting effects716for updating and/or rendering color or chromatic properties of high resolution polygonal model510H. For example, in some embodiments a COLORWAY element file, with meta-tags identifying surfaces or areas of high resolution polygonal model510H for coloring, may loaded or populated.

At block750, processor(s)104apply the colors of a color sheet744(e.g., COLORWAY sheet) to the high resolution polygonal model510H. Color sheet744may be loaded or accessed by processors104(s), from memorie(s)106, and may define color(s) to be applied, e.g., virtually painted, on surfaces or areas (e.g., polygons or pixels) of high resolution polygonal model510H. For example, color may be applied to artwork752(which may include artwork704, e.g., drawings, pictures, etc., as described forFIG.7A). In addition, color palettes754, which may include different color sets, such as pre-defined color sets of matching or complementary colors for application to products and/or packages, may be loaded, by processor(s)104, and applied, or used to paint, high resolution polygonal model510H. In some embodiments, a user may select colors or color palettes from a visualization editor for application to high resolution polygonal model510H, including to the materials, finishes, artwork, or other surface changes applied to high resolution polygonal model510H as described herein.

At block760, color changes and/or selections, as determined from blocks742and750, may be automatically pushed to, or loaded by, 3D software (e.g., MODO) for generation of virtual 3D model810M. In various embodiments, virtual 3D model810M is a high resolution polygonal model (e.g., high resolution polygonal model510H) with virtual materials, finishes, artwork (e.g., artwork for or comprising labels, flexible wrappers, etc.), colors, and other surface elements or object, as described herein, applied such that virtual 3D model810M renders, e.g., on a graphic display, as a photorealistic image representing a real-world product or product package (e.g., shampoo bottle).

FIG.8Aillustrates a visualization or rendering of an exploded view of a virtual 3D model (e.g., virtual 3D model810M) of a real-world product or product package as generated from a polygonal model as described herein for any ofFIGS.4A,4B,5A,5C, and/or7A and7B, and in accordance with various embodiments disclosed herein. As illustrated forFIG.8A, each of finished parts811M,812M, and813M is depicted in an exploded view of a real-world product or product package (e.g., the shampoo bottle as described forFIGS.3A-3C,4A and4B,5A-5C, and7A and7B). Similar to high resolution polygonal model510M, from which virtual 3D model810M was generated, virtual 3D model810M is a polygon model including finished part811M (rendered as a cap of a shampoo bottle); finished part812M (rendered as a body of the shampoo bottle); and finished part813M (rendered as a label of the shampoo bottle), which is mapped onto finished part812M with the UV mapping as described herein forFIGS.6A and6B. Each of these finished parts is shown as a virtual or 3D component that is part of virtual 3D model810M. In various embodiments, virtual 3D model810M, and/or its individual component parts (e.g.,811M,812M, and813M) may be rendered, via a graphical display, as a photorealistic image representing the real-world product or product package (e.g., shampoo bottle). A photorealistic image can be a photographic image or a 3D image of the real-world product or product package.

FIG.8Billustrates a visualization or rendering of a photorealistic image810P representing the real-world product or product package as described forFIG.8A, in accordance with various embodiments disclosed herein. In the embodiment ofFIG.8B, photorealistic image810P is a front view of virtual 3D model810M, but rendered as a complete (non-exploded) view. That is, photorealistic image810P is a rendering, on a graphical display, of a photorealistic image of a front view image representing the real-world product or product package (e.g., shampoo bottle). As illustrated forFIG.8B, each of finished parts811P,812P, and813P is depicted as completed version of a real-world product or product package (e.g., the shampoo bottle as described forFIGS.3A-3C,4A and4B,5A-5C, and7A and7B, and8A).

Similar to high resolution polygonal model510H, from which photorealistic image810P was generated and rendered, photorealistic image810P is a front view of a polygon model including finished part811P (rendered as a cap of a shampoo bottle); finished part812P (rendered as a body of the shampoo bottle); and finished part813P (rendered as a label of the shampoo bottle). Each of these finished parts (e.g.,811P,812P, and813P) is shown from a front view perspective with its finishes and materials applied. For example, each of physical materials/CMF318values added, including the surface textures, print finishes, colors, appearances, etc. to the surface of virtual 3D model810M, and, thus, to its respective front view, i.e., photorealistic image810P. For example, in the embodiment ofFIG.8B, a metallic texture or finish may be added to finished part811P (bottle cap) and its top portion is colored black. In addition, finished part812P (bottle body) may be colored blue. In addition, artwork (e.g., artwork704and/or752), such as pictures and drawings (e.g., including a logo, flowers, vitamins, seals, graphical text, and other graphics related to the product) are added to finished part813P (label). Together, each of these finished parts, with related artwork and finishes provides a rendering of a photorealistic image of the real-world shampoo bottle.

FIG.9Aillustrates a visualization or rendering of the photorealistic image (e.g., photorealistic image810P) of the real-world product or product package as described forFIGS.8A and8Bas rendered within a first image scene (e.g., scene902), in accordance with various embodiments disclosed herein. Scene902includes a background or back plate image of leaves. However, it is to be understood that additional and/or alternative background(s) and/or back plate image(s) may be utilized. Such additional and/or alternative background(s) may include any of a variety of scenes, images, backgrounds, colors, etc. for placement, display, or otherwise rendering with a photorealistic image (e.g., photorealistic image810P). Scene902may be included or rendered together with photorealistic image810P as described for back plates or background images714ofFIG.7Aherein. In this way, a view (or multiple views) of virtual 3D model810M may be rendered with back plates or background images714for scene902. For example, as shown forFIG.9A, virtual 3D model810M may be rendered as a front view (i.e., photorealistic image810P) against scene902. In another embodiment (not shown), a different background or back plate may be chosen or selected (e.g., at block712ofFIG.7A) such that virtual 3D model810M may be rendered as a front view (i.e., photorealistic image810P) against the different background or back plate (e.g., a beach or sand scene).

FIG.9Billustrates a visualization or rendering of the photorealistic image (e.g., photorealistic image810P) of the real-world product or product package as described forFIGS.8A and8Bas rendered within a second image scene (e.g., scene952), and further illustrates an example visualization editor (e.g., visualization editor960), in accordance with various embodiments disclosed herein. For example, scene952illustrates a retail store shelf with photorealistic image810P. Accordingly, the scene952differs from scene902, and demonstrates the flexibility of 3D modeling system100to render virtual 3D model810M within various, different scenes. Scene952may be included or rendered together with photorealistic image810P as described for back plates or background images714ofFIG.7Aherein. In this way, a view (or multiple views) of virtual 3D model810M may be rendered with back plates or background images714for scene952. For example, as shown forFIG.9B, virtual 3D model810M may be rendered as a perspective view (i.e., photorealistic image810P) on the retail shelf of scene952, where virtual 3D model810M was rotated in 3D space and captured as a photorealistic image within scene952.

FIG.9Balso depicts visualization editor960, which is shown as an embodiment of a COLORWAY visualization editor. Generally, a visualization editor as described herein, is configured to receive user selections to manipulate any of a shape of the virtual 3D model, a virtual material of virtual 3D model, a finish of the virtual 3D model, a color of the virtual 3D model, or the virtual product label. In this way, a photorealistic image, via its underlying model, may be provided to a guided user interface (GUI) to enable a user to provide selections to manipulate, e.g., in real time, a material of the photorealistic product, the finish of the photorealistic product, or the virtual product label of the photorealistic product. Upon manipulation of the photorealistic image, via its underlying model, processor(s)104may generate, render, with the one or more processors, a new virtual 3D model, and new photorealistic image, based on the user selections. In various embodiments, the new virtual 3D model may represent a new product or product package corresponding to the user selections. In still further embodiments, a virtual 3D model, such as a virtual 3D model as created or generated described herein, may be stored in memory (e.g., memorie(s)106and/or database105) such that the virtual 3D model is accessible to an automatic imaging asset assembly script or the visualization editor for future iterations or for future design. In such embodiments, for example, each of the parts or components (e.g.,811M,812M, and/or813M) of virtual 3D model810M, may be tagged or assigned GTIN identifiers such that an automatic imaging asset assembly script may access the parts or comments for future designs. Each of parts or components (e.g.,811M,812M, and/or813M) of virtual 3D model810M may be assigned or classified to a pre-defined design shape for future reference by automatic imaging asset assembly script. In this way, an automatic imaging asset assembly script or the visualization editor is configured to generate one or more additional or new virtual 3D models corresponding to one or more additional or new real-world products or product packages

In the embodiment ofFIG.9B, visualization editor960includes editing options or tools962that a user can select to modify or change or modify finishes, colors, materials, etc. of virtual 3D model810M as described herein. In addition, visualization editor960includes an example of a color palette970(e.g., as selected color palettes754ofFIG.7B). In particular, color palette970is a specific color palette for the brand HERBAL ESSENCES, which the brand is corresponding to the real-world product and/or package (e.g., the shampoo bottle as described for various Figures herein). Color palette970includes a standard or pre-defined set of colors (e.g.,972,974, and976, etc.) that defines the HERBAL ESSENCES brand. A user may modify these colors via visualization editor960, e.g., for any changes or updates to the design or branding of the HERBAL ESSENCES brand.

FIG.10illustrates a flow diagram or algorithm of an example 3D modeling method1000for automatically generating photorealistic, virtual 3D package and product models from 3D and 2D imaging assets, in accordance with various embodiments disclosed herein.

At block1002, 3D modeling method1000includes loading, into a memory (e.g., memorie(s)106and/or database105) with one or more processors (e.g., processor(s)104), one or more computer-aided design (CAD) components (e.g., CAD part311, CAD part312, and/or CAD part313) as selected from one or more of the 3D imaging assets.

At block1004, 3D modeling method1000further includes assembling, with an automatic imaging asset assembly script (e.g., automatic imaging asset assembly script302) implemented on the one or more processors (e.g., processor(s)104), the one or more CAD components (e.g., CAD part311, CAD part312, and/or CAD part313) to create a parametric-based CAD model (e.g., parametric-based CAD model310). The parametric-based CAD model may correspond to a design for a real-world product or product package (e.g., a shampoo bottle, as described in various embodiments herein).

At block1006, 3D modeling method1000further includes generating, with the one or more processors (e.g., processor(s)104), a polygonal model (e.g., high resolution polygonal model510H) of the real-world product or product package based on the parametric-based CAD model (e.g., parametric-based CAD model310). One or more digital surface finish artifacts (e.g., physical materials/CMF318) of a virtual material library (e.g., virtual material library520), as selected from the 2D imaging assets, may be applied to the polygonal model (e.g., high resolution polygonal model510H).

At block1008, 3D modeling method1000further includes generating, with the one or more processors (e.g., processor(s)104) and based on parametric information of the parametric-based CAD model (e.g., parametric-based CAD model310), a UV coordinate mapping corresponding to a virtual product label (e.g., front label613F or rear label613R).

At block1010, 3D modeling method1000further includes generating, with the one or more processors, a virtual 3D model (e.g., virtual 3D model810M) of the real-world product or product package based on the polygonal model (e.g., high resolution polygonal model510H), the UV coordinate mapping, and the virtual product label (e.g., front label613F or rear label613R).

At block1012, 3D modeling method1000further includes rendering, via a graphical display (e.g., terminal109), the virtual 3D model as a photorealistic image (e.g., photorealistic image810P) representing the real-world product or product package.

In some embodiments, processor(s)104are configured to initiate creation of at least a portion of the real-world product or product package (e.g., shampoo bottle) based on the virtual 3D model (e.g., virtual 3D model810M). In such embodiments, a 3D printer (e.g., local 3D printer107and/or remote 3D printer157) may load the virtual 3D model to create or print the real-world product or product package (or portion thereof) based on the virtual 3D model. Additionally, or alternatively, a virtual 3D model may be transmitted via a computer network (e.g., computer network120) to a process plant (e.g., process plant162) for creation, manufacture, or production of at least a portion of the real-world product or product package at the process plant. For example, in some embodiments, the virtual 3D model is used to generate a mold or part (e.g., mold162m). The mold (e.g., mold162m) may then be used to manufacture or make, e.g., at the process plant (e.g., process plant162) a physical item (e.g., a rigid and/or plastic bottle) and/or portions or parts thereof.

Additional Considerations

Although the disclosure herein sets forth a detailed description of numerous different embodiments, it should be understood that the legal scope of the description is defined by the words of the claims set forth at the end of this patent and equivalents. The detailed description is to be construed as exemplary only and does not describe every possible embodiment since describing every possible embodiment would be impractical. Numerous alternative embodiments may be implemented, using either current technology or technology developed after the filing date of this patent, which would still fall within the scope of the claims.

The following additional considerations apply to the foregoing discussion. Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.

Additionally, certain embodiments are described herein as including logic or a number of routines, subroutines, applications, or instructions. These may constitute either software (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware. In hardware, the routines, etc., are tangible units capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.

In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.

Accordingly, the term “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where the hardware modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.

Hardware modules may provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiples of such hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and may operate on a resource (e.g., a collection of information).

The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules.

Similarly, the methods or routines described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented hardware modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location, while in other embodiments processors may be distributed across a number of locations.

The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.

This detailed description is to be construed as exemplary only and does not describe every possible embodiment, as describing every possible embodiment would be impractical, if not impossible. A person of ordinary skill in the art may implement numerous alternate embodiments, using either current technology or technology developed after the filing date of this application.

Those of ordinary skill in the art will recognize that a wide variety of modifications, alterations, and combinations can be made with respect to the above described embodiments without departing from the scope of the invention, and that such modifications, alterations, and combinations are to be viewed as being within the ambit of the inventive concept.

The patent claims at the end of this patent application are not intended to be construed under 35 U.S.C. § 112(f) unless traditional means-plus-function language is expressly recited, such as “means for” or “step for” language being explicitly recited in the claim(s). The systems and methods described herein are directed to an improvement to computer functionality, and improve the functioning of conventional computers.

The dimensions and values disclosed herein are not to be understood as being strictly limited to the exact numerical values recited. Instead, unless otherwise specified, each such dimension is intended to mean both the recited value and a functionally equivalent range surrounding that value. For example, a dimension disclosed as “40 mm” is intended to mean “about 40 mm.”

Every document cited herein, including any cross referenced or related patent or application and any patent application or patent to which this application claims priority or benefit thereof, is hereby incorporated herein by reference in its entirety unless expressly excluded or otherwise limited. The citation of any document is not an admission that it is prior art with respect to any invention disclosed or claimed herein or that it alone, or in any combination with any other reference or references, teaches, suggests or discloses any such invention. Further, to the extent that any meaning or definition of a term in this document conflicts with any meaning or definition of the same term in a document incorporated by reference, the meaning or definition assigned to that term in this document shall govern.

While particular embodiments of the present invention have been illustrated and described, it would be obvious to those skilled in the art that various other changes and modifications can be made without departing from the spirit and scope of the invention. It is therefore intended to cover in the appended claims all such changes and modifications that are within the scope of this invention.