3D Printing – Colin Bodell, Gregory J. Meyers, Jeremy E. Powers, Bryan K. Beatty, Michael G. Curtis, Jeffrey B. Slosberg, Leon L. Au, Amazon Technologies Inc

Abstract for “Systems and methods to fabricate products on demand”

“Systems and methods can be used to fabricate products upon demand. A manufacturable modeling, which may contain information about a three-dimensional representation to be manufactured, may be received by an electronic system user. It may then be validated by the electronic systems. The manufacturable models can be used to create a prototype of the product. Other users can also access the model and/or product. A manufacturable model can be used to create the product. The product can then be printed using a 3-D printer and delivered to the users of the electronic platform.

Background for “Systems and methods to fabricate products on demand”

“Digital manufacturing, rapid prototyping and desktop manufacturing (generally, ‘three-dimensional (3D) printers? Additive manufacturing technology is where three-dimensional objects are created by layering successively of material. Analogously to the way that conventional (two dimensional) desktop printers provide computer users with a paper output of their documents, 3D printers can provide 3D computer-aided-design (CAD) users a physical prototype of real world objects. There are many technologies that can be used in 3D printers. These include inkjet printing to deposit layers plaster or resins, light projectors (e.g. stereolithography) for exposing and hardening liquid polymers, fused modeling to deposit layers, laser sintering for small particles and so on.

3D printers are faster, cheaper and more user-friendly than commercial additive manufacturing technologies. Some 3D printers allow product developers to print parts and assemblies made from multiple materials with different physical and mechanical properties. 3D printing technology can produce models that closely match the appearance, feel, and functionality of prototypes. Some 3D printers are now economically available to small businesses and individuals. This allows prototyping and product manufacturing to be done by these users and businesses. 3D printing technology is available in many industries, including consumer products, engineering, manufacturing, and the medical.

3D printers are not always readily available for everyone who has an idea of what a product should look like. Sometimes, the product creator may only need to make one item. The item, or a 3D model of the product from which it can be manufactured, may be of interest to other people. The present disclosure relates to an electronic system that allows users to select items from a list and provides methods for fabricating those items using 3D printing technology. The 3D printing technology might be located within the electronic system in some cases. Other examples show that the 3D printing technology might be far away from the electronic system. Some embodiments allow users to select items that they want to manufacture. Some embodiments allow users to select one or more parts of a final product, or a set of components for assembly by the user. The components can be assembled for the user at their convenience. The kit may include instructions and instructions for assembly (e.g. as a downloadable electronic file). An electronic system can also be used by users to enter and modify manufacturing models that are used by a 3D printer to create a product, component, or kit. The electronic system will fabricate and deliver an item at the user’s request in some of the examples herein.

“FIG. “FIG. On-demand fabrication system 100 might have an electronic catalogue of products available for users. A user may have access to the on-demand product manufacturing system 100 from computing devices 102,104, and 106. This allows them to choose a product, view the item detail page, and then get the product 124. The product can be made on-demand. Any of the computing devices 102-104 or 106 can communicate over a network of 108. This includes a laptop, personal computer (PDA), hybrid PDA/mobile, mobile phone, tablet, electronic book reader and digital media player. Although not shown in FIG. FIG. 1 may not show all of the components, but the on-demand product manufacturing system 100 and/or computing devices 102?104 and 106 could include one or more central processing unit (CPUs), input/output device, and one or several computer memories. One example of an input/output device is a storage device, such a hard drive. Another option is a computer readable media drive that can be used for installing software products. This includes aspects of the facility or the system. A network connection can also be used to connect to other computers. The on-demand product manufacturing system 100 and the computing device 102,104, and 106 can be implemented on a computer or another device as described above. However, they can also be used on other devices and computer systems.

The products can be manufactured based at most in part on a manufacturable (e.g. a 3DCAD model) which includes information that can control a machine (e.g. a 3D printer). The manufacturable model may be used to create the product using a computer numerically controlled machine (CNC). Products can include any tangible output from the on-demand production system 100. They may include stand-alone items, product components, or kits of components that can be assembled into stand-alone product. In some embodiments, the user can select the manufacturable product model from the online fabrication system 100 instead of the fabricated product. The user might receive the fabricated product (124) from a product delivery system 122, and/or the manufactured model (e.g. via electronic download over network 108).

The on-demand product manufacturing system 100 can include various components, such as a user interface framework 110 and a content aggregate module 112. The content aggregation modules 112 can communicate with or be coupled to one of several databases, such as a models database, a catalog database 116, or customer database 118. These databases 114-116 and 118 can provide models and/or a list of existing content (aswell as indications for future content), from which the user might choose to make the on-demand product. 124 A models database 114 might contain information about the manufacturing of models, while a catalog database 116 could include information about the fabrication of products from the models in the database. The databases 114,116, and118 can also contain indications of external content. One or more databases 114,116, or 118 could include pointers or references to items stored in external data sources. For storing these references, pointers or databases, it may be possible to use a separate data storage unit (not shown). Databases 114,116, and 118 do not have to be distinct databases. They may be combined into one or more databases. Although specific examples of content have been described, the on-demand product manufacturing system 100 can access or provide access to virtually any type or model of product or manufacturable product. Products can be generated on-demand from other sources than traditional content. The on-demand product manufacturing system 100 might use product information from retailer databases or product manufacturers to create customized products tailored to the user. Another example is the on-demand products fabrication system 100, which may use different search engines to find products that could also be made using the product on demand.

“The content aggregation modules 112 and 100 of the on-demand products fabrication system 100 may be connected or in communication to a customer database. 118 stores customer information such as customer shipping details associated with customers who have selected one item via the user interaction framework 110. Customer shipping information may be included in the customer data stored at customer database 118. Customer database 118 can also contain customer account data and behavioral data in some cases. Customer account data could include usernames, passwords and payment information. It may also include item ratings, wish lists, and item ratings. Data that is reflective of customer browsing activities may be called behavioral data. The behavioral data could include data about item selections for users of the user interface framework 110. Item selection data can include search histories, purchase histories, and item viewing history. Purchase history can include rentals or purchases of items for physical delivery, or electronic download. You may also be able to see the item selection data, which can include preferences and likes for specific items, categories, designers of products, model designers, authors or directors, as well as information about genres, authors, directors, artists, etc.

“In certain embodiments, the customer data 118 may contain user history information that may be used by the on-demand product manufacturing system 100 to generate recommendations for users. The customer database 118 could also contain preferences that enable the content aggregation 112 to choose catalog content to present to the user. The on-demand product manufacturing system 100 might alert the user about the possibility of including previously designed products as sub-components of another product that the user has previously selected or viewed.

“In different embodiments, the customer data 118 may be located near the on-demand products fabrication system 100 or remote from the content aggregation modules 112, depending on the case. It may also be network-based. FIG. FIG. 1 shows how the system 100 can be used by users to communicate with each other via the communication network 108. This could include the Internet or any other communication link. The network 108 can be any type of wired or wireless network, or a combination thereof. The network 108 could be a personal network, local network, wide network, cable network or satellite network, cellular telephone system, etc. Or a combination of them. You can use a variety of protocols, Application Programming Interfaces and components to communicate via the Internet or any other of the aforementioned communication networks.

The user can access tools that are part of the user interaction framework 110 in order to create a model of a product for fabrication on demand. Once the connection is established, the model may be sent to the model database 112 via the network 110 and the user interaction frame 110. To finalize the model, the user can use additional tools that are part of the user interaction framework 110. FIG. 2 shows examples of the various tools offered by the user interaction framework 110. 2 below. The user interaction framework 110 can provide tools that are either remote or local.

“In another embodiment, the user can access the catalog content 116 to select a product that is being fabricated on-demand for another user and then request that the product, components, or a set of sub-parts be fabricated. The user interaction framework 110 can retrieve information from the models databases 114 for on-demand product fabrication systems 100 that are fabricating products on demand based on pre-existing models.

“Other components of the on-demand product manufacturing system 100 include a product delivery network 122 and a production system. These systems may be?in-house? 120 a (e.g. 120 a (e.g. The user can select a model or a product and then receive a fabricated-on-demand product 124 via the user interaction framework 110. In some embodiments the product manufacturing system 120a may be located near the on-demand production system 100. However, in other embodiments the product fabrication systems 120b may be far away from the on-demand products fabrication system 100. One or more three-dimensional (3D), printing devices may be included in the product fabrication systems 120a, 120b. These devices may differ in type, function, and location. 3D printing machines may include 3D milling, CNC (computer numerically controlled) machines, laser cutter machines, and others. Some 3D printing technologies include inkjet printers for depositing layers of plaster or resins, light projectors (e.g. stereolithography) that expose and harden liquid polymers, fused modeling systems to deposit layers, laser sintering to fuse small particles, and fused deposition modeling to deposit layers.

One example is that the on-demand product fabricating system 100 could send a request for one product to a local product manufacturing system 120a, or a request for large quantities to a third-party product fabrication system 120b. The product delivery system 122 may then deliver the on-demand products 124 to users via various delivery sources (e.g. airmail, ground shipping). The on-demand product manufacturing system 100 may allow the user to obtain a 3D-printed electronic copy of the manufactured model by electronic download, email, or web page. This allows the user to control the fabrication process. In some cases, the fabrication request may be sent to the product fabrication system 120a, 120b, which is geographically near the user. The user can pick up the fabricated product by going directly to the product manufacturing system 120a, 120b.

“FIG. “FIG. FIG. 2 shows the general architecture of an on-demand product manufacturing system 100. 2. shows a combination of hardware and software components that can be used to implement the aspects of this disclosure. On-demand product fabrication system 100 could include more or fewer components than the ones shown in FIG. 2. The on-demand product manufacturing system 100 has a network interface (206), a processing unit (204) and an input/output device interface (220). It also includes an optional display (202), a display device 224, and a computer-readable medium drive 207. All of these devices may communicate via a communication bus. The network interface 206 can provide connectivity to one or several networks, such as the network 108 or computing systems like the computing systems 102-106. The processing unit (204) may receive instructions and information from other computing systems via a network. The input/output interface 220 may allow the processing unit 204 to communicate with memory 210. It can also provide information for an optional display, 202. An optional input device 224 may be accepted by the input/output interface 220. This includes a keyboard, mouse or digital pen.

“The memory210 contains computer program instructions, which the processing unit204 executes to implement one or more embodiments. The memory 210 may contain RAM, ROM, and/or any other persistent memory. The operating system 214 may be stored in memory 210. This provides instructions for the processing unit (204), to manage and operate the on-demand product manufacturing system 100. Additional information may be stored in the memory 210 to implement aspects of this disclosure. In one embodiment, the memory includes a user interface module (212) that generates user interfaces and/or instructions for display on a computing device. This can be, for example, through a navigation interface such a web browser installed to the computing device. In some embodiments, the user interface module 212 may implement functionality from the user interaction framework 110. Memory 210 can also communicate with customer database 118. For example, customer shipping information may be stored in customer database 118.

“In addition the user interface module 212, the memory 210 may also include a customer connectivity module 216, which may be executed by processing unit 204. One embodiment of the customer connection module 221 can implement the content aggregate module 112 and be in communication to one or more databases (e.g. the FIG. 2).”

“FIG. “FIG. 1. The user interaction framework 110 can provide various tools that allow users to input, validate, and finalize models for fabrication. It also allows them to create physical prototypes of the product and catalog information about the model. The user interaction framework 110 could include models input tools 302, model validation tools 306, prototype creator tools 308, and model finalization tools 312. There may also be catalog content creation tools 314 and 314.

“In some instances, the model input tools 302 can be used to allow system 100 to receive a manufactured model of a product that can be fabricated upon demand. Information about the product may be included in the manufacturable models, such as dimensions, shapes and tolerances. A 3D CAD model, such as AutoCAD, may be included in the manufacturable models. Solidworks or AutoCAD? Data files) that provide a three-dimensional representation for an object. The model completeness verification tool 304 can be used to verify that the model received by the user is a suitable model for manufacturing. It can then be used by the fabrication system 102a, 102b to create a tangible model of the product described in the model. Verification may include checking that the model received is in the right format and includes all the necessary files (e.g. drawing files, part file, assembly file, etc.). ), etc. To request additional information, the model completeness verification tools (304) may be used. If the model input by a user does not include a three-dimensional representation, the user interaction framework 110 might request additional input from the user. For example, a photograph of the product may be requested.

The model validation tools 306 can be used to validate or analyze the manufacturable models or products fabricated from them. They may include the representations of product dimensions and configuration, tolerances, sensitivity, compliance with safety, regulatory, quality or quality standards, as well as compliance with any industry, regulatory, quality or safety standards. The tools 306 could include a set consistency checking rules that allow for validation of the 3D product configuration from the model. Tools 306 can also include error messages that allow the designer to correct or alter the model. The tools 306 may be used to check product designs for defects prior to prototyping. The model validation tools 306 can be used to improve or optimize the model. The model validation tools 306 can be used to test the model under similar conditions to the real world. The model validation tools 306 can be provided with user-provided attributes that describe how the product may perform under different environmental conditions. By using the model validation tool 306, the user (or system), can make this determination. The model validation tools 306 will simulate the environment using the provided attributes. The model validation tools 306 can be used, for example, to determine if the fabricated product is too heavy and likely to tip over when subject to expected loads or stress. If necessary, the user or system can then use the model validation tools 306 results to make any corrections or modifications to the model. To reduce the chance of the product tipping over, the system (user) might decide to modify the weight distribution of the materials in the model.

The model validation tools 306 can also be used to determine whether moving parts are compatible or not, how heavy a product is, what stresses a part might experience, heat flow through the product, whether it would survive a fall, etc. Model validation tools 306 can include validation of design tolerances, tolerance stackup validity, assembly simulation and simulation of welded products, prediction of product failure, prediction of buckling or collapse, heating simulation, cooling simulation, simulation drop test and impact and simulation of fluid flow, simulations of loading effects, simulations of plastic parts, and the like. Some implementations combine the functionality of the model completeness validation tools 304 with the model validation tools 306. This creates a single model validation module.

The prototype creation tools 308 can be used to create a prototype of the product that is based on the model. You may be able to request modifications to the prototype using the prototype creation tools 308 The prototype creation tools 308 may allow the user to request changes to the prototype. The model finalization tools310 allow users to create the final product model based on the outputs of the prototype creation tools 312 and model validation tools 306. The model database and the catalog content creation tools 312 can then make the finalized models available in the models database (114) and/or the content database 116. You can use the model database and the catalog content creation tools 312 to ask permission for the model to be included in the models database.

The user interaction framework 110 can also be used to access an existing model in the models databases and/or an established product, product component, or product kit in catalog content databases. The user interaction framework 110 might include functions such as a search and query function and a recommendation function. It may also have a browse function and other functions that allow users to choose existing models and/or products from databases. In addition to text searching, the user interaction framework 110 can offer many search strategies (e.g. search by title or keyword, subject, keyword, etc.). You can search by title, subject, keyword or other metadata. The search strategy also allows you to choose items from a catalogue and base your search on that metadata. The framework 110 might allow users to choose?see 10 more similar? When viewing or browsing content, and then basing the search upon corresponding metadata, etc.”

“FIG. “FIG. Block 402 is the beginning of the method. Then, it proceeds to block 404 where the on-demand production system 100 receives product model input. The product model input can be received from a user, and transmitted via the network 108 to a computing device (102-106). In some cases, the product model input can be received from a models databases such as the database 114.

If the on-demand product manufacturing system decides that the product model has been completed, block 406 is where the method 400 goes to block 412. If the on demand product fabrication system finds that the product model needs to be completed, the method 400 will continue to block 408. The on-demand system can then request additional input from the user. The alternative input could include a photograph showing the product being manufactured. The product could be photographed in front of a grid to provide information about its dimensions. In some cases, alternative inputs from the user could include a physical (e.g. clay prototype) or electronic model or even the product itself. A 3D scanner could be used to create a digital model. The on-demand product manufacturing system can generate a product model using optional input from the user at block 410. After the product model has been generated at block410, the system will return to block 406 to determine if the model is complete. Blocks 408 and 409 are repeated until the model at block 406 is complete.

“In FIG. “In FIG. 4, the product simulation is performed to validate the model. Product simulation can be used to simulate the real world. This includes heat, stress, and airflow. Block 414 can be used to create a prototype of your product after the product simulation has validated the model. Block 416 allows the user to review the prototype and determine if it meets their needs. The user may receive the prototype via airmail, ground shipping or other delivery methods. The method 400 will continue to block 418 if the user is happy with the prototype. Blocks 404 through 416 can be repeated until the user is happy with the prototype. Block 418 is where the model for the product can be updated based upon the results of the product simulating and/or prototype iterations. Once the prototype is approved by the user, the model for manufacturing can be completed. Block 420 is now ready for fabrication. The product can be manufactured locally according to some embodiments. In other embodiments the product can be made geographically distant from the system 100. Block 422 is where the process ends after the on-demand product manufacturing system has produced a product on request.

“FIG. “FIG.5” is a flow diagram that illustrates a method 500 used by the content aggregation modules 112 to create catalog content. An e-commerce platform can use the catalog content to provide information about products as well as product models. The e-commerce system might provide an electronic catalogue (e.g. available over the network 108) that allows users to select items. Block 502 is the beginning block of the 500 method. Then it proceeds to block 504, which can in some cases be identical to block 418. The 500 method continues to block 506 to obtain permission from the user to publish model information in the electronic catalogue. The method 500 terminates at block 514 if the user refuses to grant permission to publish model information in the catalog. If permission is granted, the method 500 proceeds to block 508 to generate a catalog detailing page for the model. (An example of a catalogue detail page will be shown in FIG. 8). The catalog detail page can include information such as images and information about the product. It may also contain details like the dimensions of the product and materials that the product can be made from. Material tolerances. Product availability as a sub-component to another product. Sub-component availability. Kits of sub-components available for final assembly. Sometimes, the user may prefer to use the model as a product instead of or in addition. The catalog detail page might also include information about the license for the model. The license could be for single or multiple uses, permit modification of the model to create derivative products, or have other restrictions. Fee-based licenses may require payment of a fee, such as a fee for the model or a royalty depending on how many products are made from it. The on-demand fabrication system might charge the user for the display of the product’s detail page or fees based upon the royalty or licensing fees. If the model is being sold or licensed to others, 500 moves to block510. The model can be rented, rented or licensed to other users. Block 512 provides compensation to the user who entered the model. This compensation can be based on the rental, sale, rental, and/or downloading of the model to others. Block 514 is where the process ends after the content aggregation modules 112 have paid compensation for the model.

“FIG. “FIG. The 600 method begins at block 602 and proceeds to block 604, where content aggregation module 112 grants permission for the user to sell a fabricated product to others. The method will terminate at block 612. The method 600 will continue to block 606 if permission is granted. Here, a catalog detail page for the product is created. The catalog detail page can include information such as images and information about how the product can be manufactured using the model. It may also contain details like the availability of the product as sub-components to another product, availability and availability of subcomponents, availability and availability of sub-components for final assembly and so on. Information about the price of the product may be included on the catalog detail page. If the product is being sold to others, method 600 will continue to block 608 Other users may sell, rent, or otherwise use the product. Block 610 provides compensation to the user who entered the product model, based upon the sale, rental, or similar of the product to others. The method 600 is over when the content aggregation module has paid compensation to the user.

“FIG. “FIG.7” is a schematic diagram that illustrates an example of an interface page that could be provided by the user interaction frame 110 in conjunction with an on-demand manufacturing system 100. A user may view the interface page 700 via a web browser, or other programmatic interaction with system 100. In some instances, the interface page 700 can be accessed via an Internet browser at one of the computing devices 102-106. The interface page 700 allows the user to start creating a new model by clicking the INPUT A MODEL button 702. The user can also approve a prototype by clicking the APPROVE A MODEL button 704. You may also have the option to edit and finalize an existing model by clicking on an EDIT A MODEL BUTTON 706. Selecting the button 708 to PROVIDE PERMISSION FOR SHARE MODEL may allow the user to grant permission to share an existing model. This button allows the user to grant permission for the publication of information about the model in an electronic catalog. Once permission has been granted, a catalog page for the model can be created, which includes details about the license. Once the catalog detail page is in place, other users can sell or license the model. A button 710 that says “PRAY FOR PERMISSION to SHARE FABRICATED PRODUCT” may allow the user to grant permission to share a fabricated model. Once you have granted permission, a catalog detail webpage can be created for the product. A catalog detail page can include information about the product, including the price for sale or rental. The catalog detail page allows you to facilitate the sale, rental, and similar of your product to other users. In some cases, compensation may be offered to the user based on the sale, rental, or similar of the product to others.

“In certain embodiments, the USER’S MODELS display 712 displays various models that the user has completed but not completed. FIG. 7 illustrates an example of this. 7 shows the user providing a model of a screw to make a pair eyeglasses. The USER’S MODELS display 712 contains a?User model for an eyeglass screw. A SEARCH MODELS databank display area 714 may be used in some embodiments to allow the user to search the database for additional models. A text field may be included in the SEARCH MODELS DATABASE display 712 that allows users to type search terms, such as “eyeglass?”. The user can select additional products from the SEARCH PRODUCTS database display area 716 in some embodiments. A user may, for example, access the on-demand manufacturing system 100 to search for eyeglass screws that are similar to the ones provided by his or her manufacturable model. The system 100 can be used to obtain parts or components of products that are damaged and need to repaired.

“FIG. “FIG.8” illustrates a sample format for a product detail page, which could be generated using the on-demand manufacturing system 100. These pages can be viewed in any web browser. The item could be a model or a product in some embodiments. There are many areas on the web page that can be used for displaying page features 804-826 with different types of content. FIG. 8 shows the example page features 804-826. FIG. 8 illustrates some page features that could be used on a display webpage. However, they are not meant to limit the possibilities. The page features could have different content, appearances, positions, sizes, and other details.

The example page feature 804 contains an image of the product along with a short description (e.g. price, description, etc.). The page feature 808, which is located on page 800, allows customers/users to add the item to their electronic shopping carts or wishlists for future purchases. The page feature 808 can be displayed prominently on the page 800 display so that customers can order the item. The page feature 812 contains links to the components and a product kit that includes sub-components. It also shows the model associated with each product. Page feature 816 lists an additional item that is often purchased with the product described on page 804. The page feature 822 lists other items that customers have purchased in addition to the product described on page 800. The page feature 826 contains areas for detailed descriptions, editorial reviews, customer reviews, and other information about the item. Other display pages can have additional or different page features.

“CONCLUSION”

“Depending on the embodiment certain acts, events or functions of any algorithm, method, or process described herein may be performed in another sequence. They can also be added, combined, or removed all together. This disclosure covers all possible combinations and subcombinations. In certain embodiments, actions or events may be performed simultaneously, e.g., multi-threaded, interrupt processing or multiple processors cores or other parallel architectures.

“The various illustrative logic blocks, modules and algorithm steps described in connection to the embodiments disclosed can be implemented as either electronic hardware or computer software, or a combination of both. This interchangeability between hardware and software has been illustrated by describing various illustrative blocks, modules, steps and components in terms of their functionality. It depends on the specific application and the design constraints placed upon the system. Although the described functionality may be implemented in different ways for each application, such implementation decisions should not cause a deviation from the disclosure.

“The various illustrative logic blocks and modules described in connection to the embodiments disclosed can be implemented by a machine such as a general-purpose processor, a digital signal process (DSP), or an application specific integrated circuit. Or any other programmable device. A discrete gate, transistor logic, discrete hardware parts, or any combination thereof, that is designed to perform the functions herein. A general purpose processor could be a microprocessor or controller, microcontroller or state machine. It can also include combinations of these devices or other types. You can also implement a processor as a combination or combination of computing devices. For example, you could have a DSP, a microprocessor and a plurality, one or more of the microprocessors working together with a DSP core or another configuration.

“The steps of a process, method or algorithm described in connection to the embodiments disclosed in this document can be implemented directly in hardware, in software modules executed by a CPU, or in a combination thereof. Software modules can be stored on any non-transitory computer storage medium, including hard drives, solid state memories, optical discs, and/or other similar devices. The processor can be connected to a storage medium so that it can read and write to it. The storage medium may be integrated into the processor in some cases. An ASIC can house both the processor and the storage media. An ASIC may be installed in a user terminal. The processor and storage medium may be contained in discrete components within a user terminal according to some embodiments. In some embodiments, the processor and storage medium can be stored in discrete components within a user terminal.

“Conditional language herein, such is, among other things,?can? ?might,? ?may,? ?e.g.,? If not specifically stated or understood in the context, the conditional language is intended to convey that certain embodiments include certain features, elements, and/or states, and other embodiments don’t. This conditional language does not imply that certain features, elements or states are required for any one or more embodiments. It also does not imply that any one or more embodiments must include logic to decide, with or without author input, whether these features or elements are included in or are performed in any given embodiment. The terms “comprising” and “including” are interchangeable. ?including,? ?having,? The terms?having,? and the like can be used interchangeably and in an inclusive fashion. They do not exclude other elements, features, operations, or acts. The term ‘or? is also used in its inclusive sense. The term “or” is used in its broadest sense, and not its exclusive meaning. It can be used to connect elements in a list, such as to connect them. It can be one, several, or all elements of the list.

“While the detailed description above has described and highlighted novel features in various embodiments, it is clear that different omissions, substitutions and modifications can be made to the form and details illustrated devices or algorithms without departing from its spirit. Certain embodiments of the inventions can be implemented in a way that doesn’t provide all the benefits and features described herein. However, some features can be used separately. Each embodiment does not require any element or feature. Certain inventions described herein are defined by the appended claims, rather than the above description. All modifications that fall within the scope of the claims’ meanings and range of equivalency are to be included.

Summary for “Systems and methods to fabricate products on demand”

“Digital manufacturing, rapid prototyping and desktop manufacturing (generally, ‘three-dimensional (3D) printers? Additive manufacturing technology is where three-dimensional objects are created by layering successively of material. Analogously to the way that conventional (two dimensional) desktop printers provide computer users with a paper output of their documents, 3D printers can provide 3D computer-aided-design (CAD) users a physical prototype of real world objects. There are many technologies that can be used in 3D printers. These include inkjet printing to deposit layers plaster or resins, light projectors (e.g. stereolithography) for exposing and hardening liquid polymers, fused modeling to deposit layers, laser sintering for small particles and so on.

3D printers are faster, cheaper and more user-friendly than commercial additive manufacturing technologies. Some 3D printers allow product developers to print parts and assemblies made from multiple materials with different physical and mechanical properties. 3D printing technology can produce models that closely match the appearance, feel, and functionality of prototypes. Some 3D printers are now economically available to small businesses and individuals. This allows prototyping and product manufacturing to be done by these users and businesses. 3D printing technology is available in many industries, including consumer products, engineering, manufacturing, and the medical.

3D printers are not always readily available for everyone who has an idea of what a product should look like. Sometimes, the product creator may only need to make one item. The item, or a 3D model of the product from which it can be manufactured, may be of interest to other people. The present disclosure relates to an electronic system that allows users to select items from a list and provides methods for fabricating those items using 3D printing technology. The 3D printing technology might be located within the electronic system in some cases. Other examples show that the 3D printing technology might be far away from the electronic system. Some embodiments allow users to select items that they want to manufacture. Some embodiments allow users to select one or more parts of a final product, or a set of components for assembly by the user. The components can be assembled for the user at their convenience. The kit may include instructions and instructions for assembly (e.g. as a downloadable electronic file). An electronic system can also be used by users to enter and modify manufacturing models that are used by a 3D printer to create a product, component, or kit. The electronic system will fabricate and deliver an item at the user’s request in some of the examples herein.

“FIG. “FIG. On-demand fabrication system 100 might have an electronic catalogue of products available for users. A user may have access to the on-demand product manufacturing system 100 from computing devices 102,104, and 106. This allows them to choose a product, view the item detail page, and then get the product 124. The product can be made on-demand. Any of the computing devices 102-104 or 106 can communicate over a network of 108. This includes a laptop, personal computer (PDA), hybrid PDA/mobile, mobile phone, tablet, electronic book reader and digital media player. Although not shown in FIG. FIG. 1 may not show all of the components, but the on-demand product manufacturing system 100 and/or computing devices 102?104 and 106 could include one or more central processing unit (CPUs), input/output device, and one or several computer memories. One example of an input/output device is a storage device, such a hard drive. Another option is a computer readable media drive that can be used for installing software products. This includes aspects of the facility or the system. A network connection can also be used to connect to other computers. The on-demand product manufacturing system 100 and the computing device 102,104, and 106 can be implemented on a computer or another device as described above. However, they can also be used on other devices and computer systems.

The products can be manufactured based at most in part on a manufacturable (e.g. a 3DCAD model) which includes information that can control a machine (e.g. a 3D printer). The manufacturable model may be used to create the product using a computer numerically controlled machine (CNC). Products can include any tangible output from the on-demand production system 100. They may include stand-alone items, product components, or kits of components that can be assembled into stand-alone product. In some embodiments, the user can select the manufacturable product model from the online fabrication system 100 instead of the fabricated product. The user might receive the fabricated product (124) from a product delivery system 122, and/or the manufactured model (e.g. via electronic download over network 108).

The on-demand product manufacturing system 100 can include various components, such as a user interface framework 110 and a content aggregate module 112. The content aggregation modules 112 can communicate with or be coupled to one of several databases, such as a models database, a catalog database 116, or customer database 118. These databases 114-116 and 118 can provide models and/or a list of existing content (aswell as indications for future content), from which the user might choose to make the on-demand product. 124 A models database 114 might contain information about the manufacturing of models, while a catalog database 116 could include information about the fabrication of products from the models in the database. The databases 114,116, and118 can also contain indications of external content. One or more databases 114,116, or 118 could include pointers or references to items stored in external data sources. For storing these references, pointers or databases, it may be possible to use a separate data storage unit (not shown). Databases 114,116, and 118 do not have to be distinct databases. They may be combined into one or more databases. Although specific examples of content have been described, the on-demand product manufacturing system 100 can access or provide access to virtually any type or model of product or manufacturable product. Products can be generated on-demand from other sources than traditional content. The on-demand product manufacturing system 100 might use product information from retailer databases or product manufacturers to create customized products tailored to the user. Another example is the on-demand products fabrication system 100, which may use different search engines to find products that could also be made using the product on demand.

“The content aggregation modules 112 and 100 of the on-demand products fabrication system 100 may be connected or in communication to a customer database. 118 stores customer information such as customer shipping details associated with customers who have selected one item via the user interaction framework 110. Customer shipping information may be included in the customer data stored at customer database 118. Customer database 118 can also contain customer account data and behavioral data in some cases. Customer account data could include usernames, passwords and payment information. It may also include item ratings, wish lists, and item ratings. Data that is reflective of customer browsing activities may be called behavioral data. The behavioral data could include data about item selections for users of the user interface framework 110. Item selection data can include search histories, purchase histories, and item viewing history. Purchase history can include rentals or purchases of items for physical delivery, or electronic download. You may also be able to see the item selection data, which can include preferences and likes for specific items, categories, designers of products, model designers, authors or directors, as well as information about genres, authors, directors, artists, etc.

“In certain embodiments, the customer data 118 may contain user history information that may be used by the on-demand product manufacturing system 100 to generate recommendations for users. The customer database 118 could also contain preferences that enable the content aggregation 112 to choose catalog content to present to the user. The on-demand product manufacturing system 100 might alert the user about the possibility of including previously designed products as sub-components of another product that the user has previously selected or viewed.

“In different embodiments, the customer data 118 may be located near the on-demand products fabrication system 100 or remote from the content aggregation modules 112, depending on the case. It may also be network-based. FIG. FIG. 1 shows how the system 100 can be used by users to communicate with each other via the communication network 108. This could include the Internet or any other communication link. The network 108 can be any type of wired or wireless network, or a combination thereof. The network 108 could be a personal network, local network, wide network, cable network or satellite network, cellular telephone system, etc. Or a combination of them. You can use a variety of protocols, Application Programming Interfaces and components to communicate via the Internet or any other of the aforementioned communication networks.

The user can access tools that are part of the user interaction framework 110 in order to create a model of a product for fabrication on demand. Once the connection is established, the model may be sent to the model database 112 via the network 110 and the user interaction frame 110. To finalize the model, the user can use additional tools that are part of the user interaction framework 110. FIG. 2 shows examples of the various tools offered by the user interaction framework 110. 2 below. The user interaction framework 110 can provide tools that are either remote or local.

“In another embodiment, the user can access the catalog content 116 to select a product that is being fabricated on-demand for another user and then request that the product, components, or a set of sub-parts be fabricated. The user interaction framework 110 can retrieve information from the models databases 114 for on-demand product fabrication systems 100 that are fabricating products on demand based on pre-existing models.

“Other components of the on-demand product manufacturing system 100 include a product delivery network 122 and a production system. These systems may be?in-house? 120 a (e.g. 120 a (e.g. The user can select a model or a product and then receive a fabricated-on-demand product 124 via the user interaction framework 110. In some embodiments the product manufacturing system 120a may be located near the on-demand production system 100. However, in other embodiments the product fabrication systems 120b may be far away from the on-demand products fabrication system 100. One or more three-dimensional (3D), printing devices may be included in the product fabrication systems 120a, 120b. These devices may differ in type, function, and location. 3D printing machines may include 3D milling, CNC (computer numerically controlled) machines, laser cutter machines, and others. Some 3D printing technologies include inkjet printers for depositing layers of plaster or resins, light projectors (e.g. stereolithography) that expose and harden liquid polymers, fused modeling systems to deposit layers, laser sintering to fuse small particles, and fused deposition modeling to deposit layers.

One example is that the on-demand product fabricating system 100 could send a request for one product to a local product manufacturing system 120a, or a request for large quantities to a third-party product fabrication system 120b. The product delivery system 122 may then deliver the on-demand products 124 to users via various delivery sources (e.g. airmail, ground shipping). The on-demand product manufacturing system 100 may allow the user to obtain a 3D-printed electronic copy of the manufactured model by electronic download, email, or web page. This allows the user to control the fabrication process. In some cases, the fabrication request may be sent to the product fabrication system 120a, 120b, which is geographically near the user. The user can pick up the fabricated product by going directly to the product manufacturing system 120a, 120b.

“FIG. “FIG. FIG. 2 shows the general architecture of an on-demand product manufacturing system 100. 2. shows a combination of hardware and software components that can be used to implement the aspects of this disclosure. On-demand product fabrication system 100 could include more or fewer components than the ones shown in FIG. 2. The on-demand product manufacturing system 100 has a network interface (206), a processing unit (204) and an input/output device interface (220). It also includes an optional display (202), a display device 224, and a computer-readable medium drive 207. All of these devices may communicate via a communication bus. The network interface 206 can provide connectivity to one or several networks, such as the network 108 or computing systems like the computing systems 102-106. The processing unit (204) may receive instructions and information from other computing systems via a network. The input/output interface 220 may allow the processing unit 204 to communicate with memory 210. It can also provide information for an optional display, 202. An optional input device 224 may be accepted by the input/output interface 220. This includes a keyboard, mouse or digital pen.

“The memory210 contains computer program instructions, which the processing unit204 executes to implement one or more embodiments. The memory 210 may contain RAM, ROM, and/or any other persistent memory. The operating system 214 may be stored in memory 210. This provides instructions for the processing unit (204), to manage and operate the on-demand product manufacturing system 100. Additional information may be stored in the memory 210 to implement aspects of this disclosure. In one embodiment, the memory includes a user interface module (212) that generates user interfaces and/or instructions for display on a computing device. This can be, for example, through a navigation interface such a web browser installed to the computing device. In some embodiments, the user interface module 212 may implement functionality from the user interaction framework 110. Memory 210 can also communicate with customer database 118. For example, customer shipping information may be stored in customer database 118.

“In addition the user interface module 212, the memory 210 may also include a customer connectivity module 216, which may be executed by processing unit 204. One embodiment of the customer connection module 221 can implement the content aggregate module 112 and be in communication to one or more databases (e.g. the FIG. 2).”

“FIG. “FIG. 1. The user interaction framework 110 can provide various tools that allow users to input, validate, and finalize models for fabrication. It also allows them to create physical prototypes of the product and catalog information about the model. The user interaction framework 110 could include models input tools 302, model validation tools 306, prototype creator tools 308, and model finalization tools 312. There may also be catalog content creation tools 314 and 314.

“In some instances, the model input tools 302 can be used to allow system 100 to receive a manufactured model of a product that can be fabricated upon demand. Information about the product may be included in the manufacturable models, such as dimensions, shapes and tolerances. A 3D CAD model, such as AutoCAD, may be included in the manufacturable models. Solidworks or AutoCAD? Data files) that provide a three-dimensional representation for an object. The model completeness verification tool 304 can be used to verify that the model received by the user is a suitable model for manufacturing. It can then be used by the fabrication system 102a, 102b to create a tangible model of the product described in the model. Verification may include checking that the model received is in the right format and includes all the necessary files (e.g. drawing files, part file, assembly file, etc.). ), etc. To request additional information, the model completeness verification tools (304) may be used. If the model input by a user does not include a three-dimensional representation, the user interaction framework 110 might request additional input from the user. For example, a photograph of the product may be requested.

The model validation tools 306 can be used to validate or analyze the manufacturable models or products fabricated from them. They may include the representations of product dimensions and configuration, tolerances, sensitivity, compliance with safety, regulatory, quality or quality standards, as well as compliance with any industry, regulatory, quality or safety standards. The tools 306 could include a set consistency checking rules that allow for validation of the 3D product configuration from the model. Tools 306 can also include error messages that allow the designer to correct or alter the model. The tools 306 may be used to check product designs for defects prior to prototyping. The model validation tools 306 can be used to improve or optimize the model. The model validation tools 306 can be used to test the model under similar conditions to the real world. The model validation tools 306 can be provided with user-provided attributes that describe how the product may perform under different environmental conditions. By using the model validation tool 306, the user (or system), can make this determination. The model validation tools 306 will simulate the environment using the provided attributes. The model validation tools 306 can be used, for example, to determine if the fabricated product is too heavy and likely to tip over when subject to expected loads or stress. If necessary, the user or system can then use the model validation tools 306 results to make any corrections or modifications to the model. To reduce the chance of the product tipping over, the system (user) might decide to modify the weight distribution of the materials in the model.

The model validation tools 306 can also be used to determine whether moving parts are compatible or not, how heavy a product is, what stresses a part might experience, heat flow through the product, whether it would survive a fall, etc. Model validation tools 306 can include validation of design tolerances, tolerance stackup validity, assembly simulation and simulation of welded products, prediction of product failure, prediction of buckling or collapse, heating simulation, cooling simulation, simulation drop test and impact and simulation of fluid flow, simulations of loading effects, simulations of plastic parts, and the like. Some implementations combine the functionality of the model completeness validation tools 304 with the model validation tools 306. This creates a single model validation module.

The prototype creation tools 308 can be used to create a prototype of the product that is based on the model. You may be able to request modifications to the prototype using the prototype creation tools 308 The prototype creation tools 308 may allow the user to request changes to the prototype. The model finalization tools310 allow users to create the final product model based on the outputs of the prototype creation tools 312 and model validation tools 306. The model database and the catalog content creation tools 312 can then make the finalized models available in the models database (114) and/or the content database 116. You can use the model database and the catalog content creation tools 312 to ask permission for the model to be included in the models database.

The user interaction framework 110 can also be used to access an existing model in the models databases and/or an established product, product component, or product kit in catalog content databases. The user interaction framework 110 might include functions such as a search and query function and a recommendation function. It may also have a browse function and other functions that allow users to choose existing models and/or products from databases. In addition to text searching, the user interaction framework 110 can offer many search strategies (e.g. search by title or keyword, subject, keyword, etc.). You can search by title, subject, keyword or other metadata. The search strategy also allows you to choose items from a catalogue and base your search on that metadata. The framework 110 might allow users to choose?see 10 more similar? When viewing or browsing content, and then basing the search upon corresponding metadata, etc.”

“FIG. “FIG. Block 402 is the beginning of the method. Then, it proceeds to block 404 where the on-demand production system 100 receives product model input. The product model input can be received from a user, and transmitted via the network 108 to a computing device (102-106). In some cases, the product model input can be received from a models databases such as the database 114.

If the on-demand product manufacturing system decides that the product model has been completed, block 406 is where the method 400 goes to block 412. If the on demand product fabrication system finds that the product model needs to be completed, the method 400 will continue to block 408. The on-demand system can then request additional input from the user. The alternative input could include a photograph showing the product being manufactured. The product could be photographed in front of a grid to provide information about its dimensions. In some cases, alternative inputs from the user could include a physical (e.g. clay prototype) or electronic model or even the product itself. A 3D scanner could be used to create a digital model. The on-demand product manufacturing system can generate a product model using optional input from the user at block 410. After the product model has been generated at block410, the system will return to block 406 to determine if the model is complete. Blocks 408 and 409 are repeated until the model at block 406 is complete.

“In FIG. “In FIG. 4, the product simulation is performed to validate the model. Product simulation can be used to simulate the real world. This includes heat, stress, and airflow. Block 414 can be used to create a prototype of your product after the product simulation has validated the model. Block 416 allows the user to review the prototype and determine if it meets their needs. The user may receive the prototype via airmail, ground shipping or other delivery methods. The method 400 will continue to block 418 if the user is happy with the prototype. Blocks 404 through 416 can be repeated until the user is happy with the prototype. Block 418 is where the model for the product can be updated based upon the results of the product simulating and/or prototype iterations. Once the prototype is approved by the user, the model for manufacturing can be completed. Block 420 is now ready for fabrication. The product can be manufactured locally according to some embodiments. In other embodiments the product can be made geographically distant from the system 100. Block 422 is where the process ends after the on-demand product manufacturing system has produced a product on request.

“FIG. “FIG.5” is a flow diagram that illustrates a method 500 used by the content aggregation modules 112 to create catalog content. An e-commerce platform can use the catalog content to provide information about products as well as product models. The e-commerce system might provide an electronic catalogue (e.g. available over the network 108) that allows users to select items. Block 502 is the beginning block of the 500 method. Then it proceeds to block 504, which can in some cases be identical to block 418. The 500 method continues to block 506 to obtain permission from the user to publish model information in the electronic catalogue. The method 500 terminates at block 514 if the user refuses to grant permission to publish model information in the catalog. If permission is granted, the method 500 proceeds to block 508 to generate a catalog detailing page for the model. (An example of a catalogue detail page will be shown in FIG. 8). The catalog detail page can include information such as images and information about the product. It may also contain details like the dimensions of the product and materials that the product can be made from. Material tolerances. Product availability as a sub-component to another product. Sub-component availability. Kits of sub-components available for final assembly. Sometimes, the user may prefer to use the model as a product instead of or in addition. The catalog detail page might also include information about the license for the model. The license could be for single or multiple uses, permit modification of the model to create derivative products, or have other restrictions. Fee-based licenses may require payment of a fee, such as a fee for the model or a royalty depending on how many products are made from it. The on-demand fabrication system might charge the user for the display of the product’s detail page or fees based upon the royalty or licensing fees. If the model is being sold or licensed to others, 500 moves to block510. The model can be rented, rented or licensed to other users. Block 512 provides compensation to the user who entered the model. This compensation can be based on the rental, sale, rental, and/or downloading of the model to others. Block 514 is where the process ends after the content aggregation modules 112 have paid compensation for the model.

“FIG. “FIG. The 600 method begins at block 602 and proceeds to block 604, where content aggregation module 112 grants permission for the user to sell a fabricated product to others. The method will terminate at block 612. The method 600 will continue to block 606 if permission is granted. Here, a catalog detail page for the product is created. The catalog detail page can include information such as images and information about how the product can be manufactured using the model. It may also contain details like the availability of the product as sub-components to another product, availability and availability of subcomponents, availability and availability of sub-components for final assembly and so on. Information about the price of the product may be included on the catalog detail page. If the product is being sold to others, method 600 will continue to block 608 Other users may sell, rent, or otherwise use the product. Block 610 provides compensation to the user who entered the product model, based upon the sale, rental, or similar of the product to others. The method 600 is over when the content aggregation module has paid compensation to the user.

“FIG. “FIG.7” is a schematic diagram that illustrates an example of an interface page that could be provided by the user interaction frame 110 in conjunction with an on-demand manufacturing system 100. A user may view the interface page 700 via a web browser, or other programmatic interaction with system 100. In some instances, the interface page 700 can be accessed via an Internet browser at one of the computing devices 102-106. The interface page 700 allows the user to start creating a new model by clicking the INPUT A MODEL button 702. The user can also approve a prototype by clicking the APPROVE A MODEL button 704. You may also have the option to edit and finalize an existing model by clicking on an EDIT A MODEL BUTTON 706. Selecting the button 708 to PROVIDE PERMISSION FOR SHARE MODEL may allow the user to grant permission to share an existing model. This button allows the user to grant permission for the publication of information about the model in an electronic catalog. Once permission has been granted, a catalog page for the model can be created, which includes details about the license. Once the catalog detail page is in place, other users can sell or license the model. A button 710 that says “PRAY FOR PERMISSION to SHARE FABRICATED PRODUCT” may allow the user to grant permission to share a fabricated model. Once you have granted permission, a catalog detail webpage can be created for the product. A catalog detail page can include information about the product, including the price for sale or rental. The catalog detail page allows you to facilitate the sale, rental, and similar of your product to other users. In some cases, compensation may be offered to the user based on the sale, rental, or similar of the product to others.

“In certain embodiments, the USER’S MODELS display 712 displays various models that the user has completed but not completed. FIG. 7 illustrates an example of this. 7 shows the user providing a model of a screw to make a pair eyeglasses. The USER’S MODELS display 712 contains a?User model for an eyeglass screw. A SEARCH MODELS databank display area 714 may be used in some embodiments to allow the user to search the database for additional models. A text field may be included in the SEARCH MODELS DATABASE display 712 that allows users to type search terms, such as “eyeglass?”. The user can select additional products from the SEARCH PRODUCTS database display area 716 in some embodiments. A user may, for example, access the on-demand manufacturing system 100 to search for eyeglass screws that are similar to the ones provided by his or her manufacturable model. The system 100 can be used to obtain parts or components of products that are damaged and need to repaired.

“FIG. “FIG.8” illustrates a sample format for a product detail page, which could be generated using the on-demand manufacturing system 100. These pages can be viewed in any web browser. The item could be a model or a product in some embodiments. There are many areas on the web page that can be used for displaying page features 804-826 with different types of content. FIG. 8 shows the example page features 804-826. FIG. 8 illustrates some page features that could be used on a display webpage. However, they are not meant to limit the possibilities. The page features could have different content, appearances, positions, sizes, and other details.

The example page feature 804 contains an image of the product along with a short description (e.g. price, description, etc.). The page feature 808, which is located on page 800, allows customers/users to add the item to their electronic shopping carts or wishlists for future purchases. The page feature 808 can be displayed prominently on the page 800 display so that customers can order the item. The page feature 812 contains links to the components and a product kit that includes sub-components. It also shows the model associated with each product. Page feature 816 lists an additional item that is often purchased with the product described on page 804. The page feature 822 lists other items that customers have purchased in addition to the product described on page 800. The page feature 826 contains areas for detailed descriptions, editorial reviews, customer reviews, and other information about the item. Other display pages can have additional or different page features.

“CONCLUSION”

“Depending on the embodiment certain acts, events or functions of any algorithm, method, or process described herein may be performed in another sequence. They can also be added, combined, or removed all together. This disclosure covers all possible combinations and subcombinations. In certain embodiments, actions or events may be performed simultaneously, e.g., multi-threaded, interrupt processing or multiple processors cores or other parallel architectures.

“The various illustrative logic blocks, modules and algorithm steps described in connection to the embodiments disclosed can be implemented as either electronic hardware or computer software, or a combination of both. This interchangeability between hardware and software has been illustrated by describing various illustrative blocks, modules, steps and components in terms of their functionality. It depends on the specific application and the design constraints placed upon the system. Although the described functionality may be implemented in different ways for each application, such implementation decisions should not cause a deviation from the disclosure.

“The various illustrative logic blocks and modules described in connection to the embodiments disclosed can be implemented by a machine such as a general-purpose processor, a digital signal process (DSP), or an application specific integrated circuit. Or any other programmable device. A discrete gate, transistor logic, discrete hardware parts, or any combination thereof, that is designed to perform the functions herein. A general purpose processor could be a microprocessor or controller, microcontroller or state machine. It can also include combinations of these devices or other types. You can also implement a processor as a combination or combination of computing devices. For example, you could have a DSP, a microprocessor and a plurality, one or more of the microprocessors working together with a DSP core or another configuration.

“The steps of a process, method or algorithm described in connection to the embodiments disclosed in this document can be implemented directly in hardware, in software modules executed by a CPU, or in a combination thereof. Software modules can be stored on any non-transitory computer storage medium, including hard drives, solid state memories, optical discs, and/or other similar devices. The processor can be connected to a storage medium so that it can read and write to it. The storage medium may be integrated into the processor in some cases. An ASIC can house both the processor and the storage media. An ASIC may be installed in a user terminal. The processor and storage medium may be contained in discrete components within a user terminal according to some embodiments. In some embodiments, the processor and storage medium can be stored in discrete components within a user terminal.

“Conditional language herein, such is, among other things,?can? ?might,? ?may,? ?e.g.,? If not specifically stated or understood in the context, the conditional language is intended to convey that certain embodiments include certain features, elements, and/or states, and other embodiments don’t. This conditional language does not imply that certain features, elements or states are required for any one or more embodiments. It also does not imply that any one or more embodiments must include logic to decide, with or without author input, whether these features or elements are included in or are performed in any given embodiment. The terms “comprising” and “including” are interchangeable. ?including,? ?having,? The terms?having,? and the like can be used interchangeably and in an inclusive fashion. They do not exclude other elements, features, operations, or acts. The term ‘or? is also used in its inclusive sense. The term “or” is used in its broadest sense, and not its exclusive meaning. It can be used to connect elements in a list, such as to connect them. It can be one, several, or all elements of the list.

“While the detailed description above has described and highlighted novel features in various embodiments, it is clear that different omissions, substitutions and modifications can be made to the form and details illustrated devices or algorithms without departing from its spirit. Certain embodiments of the inventions can be implemented in a way that doesn’t provide all the benefits and features described herein. However, some features can be used separately. Each embodiment does not require any element or feature. Certain inventions described herein are defined by the appended claims, rather than the above description. All modifications that fall within the scope of the claims’ meanings and range of equivalency are to be included.

Click here to view the patent on Google Patents.