System and method for customizing product designs
A virtual reality-based system optimizes product designs by simulating user interactions and biomechanical loads to create personalized products efficiently, addressing the challenge of individualized customization in Industry 4.0 and 5.0.
Patent Information
- Application Number
- PCT/EP2024/052331
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-31
- Publication Date
- 2025-08-07
AI Technical Summary
Existing technologies face challenges in customizing product designs for individual needs, especially in the era of Industry 4.0 and 5.0, where mass production simulation and digital twin methods struggle to efficiently adapt to personalized requirements.
A system and method utilizing a virtual reality environment to simulate interactions between an avatar and a product model, performing biomechanical simulations to determine musculoskeletal loads, and optimizing design parameters using algorithms to create customized product designs.
Enables efficient customization of products by reducing design iterations and eliminating the need for physical testing, ensuring user comfort and ergonomic optimization.
Smart Images

Figure EP2024052331_07082025_PF_FP_ABST
Abstract
Description
[0001] SYSTEM AND METHOD FOR CUSTOMIZING PRODUCT DESIGNS
[0002] TECHNICAL FIELD
[0003] The present invention relates to product design optimization, and in particular relates to a system and method for customizing product designs.
[0004] BACKGROUND
[0005] At present, technologies such as simulation and digital twin are used for designing of products for mass production. In particular, simulation involves creating a virtual prototype of a given product and analyzing behavior of the product under different conditions using the virtual prototype. Based on the analysis, potential flaws are rectified by the designer before the production process begins. Digital twin technology enables designers to make changes to a product design or performance parameters in real-time, using a digital replica of the product, for the purpose of improving performance efficiency and / or reducing maintenance costs associated with the product. In case of customization of product designs based on needs of individuals, it becomes increasingly difficult for a designer to modify virtual prototype or a digital replica for each requirement. This becomes all the more important during the era of Industry 4.0 and 5.0, where individualized and customized products are the norm. Such products may range from fashion to automotive choices.
[0006] In light of the above, there exists need for a disruptive framework and method for customizing product designs via an immersive, collaborative and interactive environment, for enabling easier customization of product designs.
[0007] SUMMARY
[0008] Variously disclosed embodiments comprise methods and systems that may be used for customizing a product design. According to a first aspect of the invention, a computer-implemented method of customizing product designs. The method further includes receiving, by a processor, a request for customizing a product design from an input device, wherein the request includes at least one attribute specific to a user of the product. In an embodiment, the at least one attribute is associated with a physical characteristic of the user. In another embodiment, the at least one attribute is associated with a preference associated with the product.
[0009] The method further includes dynamically configuring a virtual reality environment based on the at least one attribute specific to the user of the product, wherein the virtual reality environment includes at least one avatar of the user, and a virtual model of the product. In an embodiment, dynamically configuring a virtual reality environment based on the at least one attribute in the request received, includes updating at least one of the avatar and the virtual model based on the least one attribute; and simulating interactions between the avatar and the virtual model, upon updating, in the virtual reality environment. In a further embodiment, in simulating the interactions between avatar and the virtual model, the avatar is manipulable in real-time by a human operator. In a preferred embodiment, interactions between the avatar and the virtual model of the product in the virtual reality environment is simulated using human-object interaction simulation. In a further embodiment, an output of the human-object interaction simulation is indicative of a reaction force, on at least one joint of the user’s body, resulting from the interaction of the user with the product.
[0010] The method further includes executing one or more biomechanical simulations based on interactions between the avatar and the virtual model of the product in the virtual reality environment to determine biomechanical load on a musculoskeletal system of the user during usage of the product. In an embodiment, executing the one or more biomechanical simulations based on interactions between the avatar and the virtual model of the product in the virtual reality environment, includes configuring a musculoskeletal simulation model of the user based on based on the reaction force on the at least one joint of the user’s body. Further, simulation instances of the configured musculoskeletal simulation model are generated. Furthermore, each of the simulation instances are executed in a simulation environment to determine the biomechanical load on the musculoskeletal system of the user during usage of the product.
[0011] The method further includes determining one or more optimized design parameters of the product corresponding to an optimal bio-mechanical load on the musculoskeletal system, by implementing an optimization algorithm on a plurality of design parameters associated with the product, wherein the one or more optimized design parameters correspond to a product design customized for the user, if the biomechanical load on the musculoskeletal system fails to meet a criterion. The one or more optimized design parameters correspond to a product design customized for the user. In an embodiment, the optimization algorithm selects the one or more optimized design parameters from a plurality of predefined configurations. In another embodiment, the optimization algorithm is at least one of Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm, Sequential quadratic programming (SQP), transfer learning-based optimization, Newton’s methods and Genetic Algorithms.
[0012] The method further includes generating a design file based on the one or more optimized design parameters, on an output device. In a further embodiment, the method may further include providing the generated design file to a manufacturing equipment, for manufacturing of the product based on the customized design.
[0013] According to a second aspect of the invention, a system may be arranged and configured to execute the steps of the computer-implemented method according to the first aspect of the invention. According to a third aspect of the invention, a computer program product may comprise computer program code which, when executed by the system according to the second aspect of the invention, causes the system to carry out the method according to the first aspect of the invention.
[0014] According to a fourth aspect of the invention, a computer-readable medium may comprise the computer program product according to the third aspect of the invention. By way of example, the described computer-readable medium may be non-transitory and may further be a software component on a storage device.
[0015] The foregoing has outlined rather broadly the technical features of the present disclosure so that those skilled in the art may better understand the detailed description that follows. Additional features and advantages of the disclosure will be described hereinafter that form the subject of the claims. Those skilled in the art will appreciate that they may readily use the conception and the specific embodiments disclosed as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure.
[0016] Also, before undertaking the detailed description below, various definitions for certain words and phrases are provided throughout this patent document and those of ordinary skill in the art will understand that such definitions apply in many, if not most, instances to prior as well as future uses of such defined words and phrases. While some terms may comprise a wide variety of embodiments, the appended claims may expressly limit these terms to specific embodiments.
[0017] BRIEF DESCRIPTION OF FIGURES
[0018] FIG 1 illustrates a functional block diagram of an example system or data processing system that facilitates customization of product designs, in accordance with an embodiment of the present invention! FIG 2 shows a flowchart of a method for customizing product designs, in accordance with an embodiment of the present invention! and
[0019] FIG 3 illustrates a block diagram of a data processing system, in accordance with an embodiment of the present invention.
[0020] DETAILED DESCRIPTION
[0021] Various technologies that pertain to systems and methods for customizing product designs will now be described with reference to the drawings, where like reference numerals represent like elements throughout. The drawings discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged apparatus. It is to be understood that functionality that is described as being carried out by certain system elements may be performed by multiple elements. Similarly, for instance, an element may be configured to perform functionality that is described as being carried out by multiple elements. The numerous innovative teachings of the present patent document will be described with reference to exemplary non-limiting embodiments.
[0022] In the present document, an approach is suggested to customize product designs based on interactions of an avatar with a virtual reality environment.
[0023] FIG 1 illustrates a functional block diagram of an example system or data processing system 100 that facilitates customization of a product design, in accordance with an embodiment of the present invention.
[0024] The system 100 may include a design customization platform 102 including at least one processor 104 that is configured to execute at least one design customization module 106 from a memory 108 accessed by the processor 104. Herein, the design customization platform 102 may include functionalities of receiving, by a processing unit, a request for customizing a product, dynamically configuring a virtual reality environment based on the at least one attribute specific to the user of the product, executing one or more simulations based on interactions between an avatar and a virtual model of the product in the virtual reality environment to determine biomechanical load on a musculoskeletal system of the user, optimizing one or more design parameters of the product based on the output of the one or more simulations, and generating an output indicative of the one or more optimized design parameters. The design customization module 106 may be configured (i.e., programmed) to cause the processor 104 to carry out various acts and functions described herein. For example, the described design customization module 106 may include and / or correspond to one or more components of the design customization platform 102 that is configured to generate and store customized product designs based on interactions of the avatar with a virtual model in the virtual reality environment.
[0025] By way of example, the design customization platform 102 may be cloud-based, internet-based and / or be operated by a provider providing design tools. The user may be located close to the design customization platform 102 or remote to the design customization platform 102, e.g., using a workstation for connecting to the design customization platform 102, e.g., via the internet, wherein the workstation may include an input device 112 and an output device 114. Non-limiting examples of the input device 112 include joysticks, wearable devices (such as data gloves, head mounted displays with cameras, electrodes, microphone, mouse, keyboard, pointer, touch screen, touch pad, drawing tablet, trackball, buttons, keypad, game controller, gamepad, camera, microphone, scanners, and motion sensing devices that capture motion gestures. In some examples, the design customization platform 102 may be installed and run on a user’s device, such as a computer, laptop, pad, on-premise computing facility, or the like. Examples of product systems that may be adapted to include the design customization features described herein may include tools such as NX CAD of Siemens AG, Germany. However, it should be appreciated that the systems and methods described herein may be used in other product systems (e.g., product lifecycle management (PLM), product data management (PDM)) and / or any other type of system that is used for generating product designs.
[0026] It should be appreciated that customization of product design based on humanobject interactions in a virtual reality environment, helps in creating products, with reduced design iterations compared to conventional techniques, and without the need for a physical reference product and / or humans to test the physical reference product for the purpose of identifying flaws associated with the design of the physical reference product.
[0027] To enable the enhanced customization of product designs, the described product system or system 100 may be communicatively coupled to at least one input device 112 and at least one output device 114. The at least one output device 114 may include a user interface such as a flatscreen or head-mounted display. In a preferred embodiment, the input device 112 and the output device 114 is configured to provide an immersive environment for the human operator, by combining augmented reality capabilities with the virtual reality environment. This also enables the human operator to interact with the virtual model of the product.
[0028] The described processor 104 may be configured to generate a graphical user interface (GUI) 116 through the output device 114. Such a GUI 116 may include GUI elements such as buttons, links, search boxes, lists, text boxes, images, scroll bars usable by a user to provide inputs through the input device 112 required to manipulate the avatar. By way of example, the GUI 116 may include a design UI 118 to facilitate a human operator to provide requests for customizing product designs, and for accessing design files for the customized product designs. The system 100 further includes a database 124 for storing predefined configurations associated with a product. Each of the predefined configurations include a set of values corresponding to a set of design parameters associated with the product.
[0029] In an embodiment, the design customization module 106 and / or the processor 104 is configured to receive a request for customizing a product design, from an input device 112. The request may be received in different formats, including but not limited to, a text input, eye-based control, gestures-based control, Electroencephalographic (EEG)-based control, Electromyographic (EMG)-based control and voice commands. The request comprises at least one attribute specific to a user of the product. In an implementation, the at least one attribute is associated with a physical characteristic of the user. For example, if the product is a bicycle for use by a cyclist, the attributes may be indicative of a weight and arm-reach of the cyclist. Additionally, another attribute may indicate that the cyclist has undergone a knee-replacement surgery. Similarly, any number of attributes may be specified in the request. In another embodiment, the at least one attribute is associated with a preference associated with the product. For example, the request may include preferences such as specifications or a specific model of the product. In the present example of the cyclist, the model of the product may be one of say road bike, endurance bike, mountain bike etc. In an implementation, the request may include attributes associated with physical characteristics and preferences of the user. For example, if the product is a chair, the attributes may include height, weight and lifestyle (sedentary or active) of a user of the chair. In addition to the attributes, the request may also include preferences such as requirement of armrest and leg-support on the chair. In the present embodiment, the input device 112 enables the human operator to interact with a virtual reality environment. The design customization module 106 and / or the processor 104 is further adapted to dynamically configure the virtual reality environment based on the at least one attribute specific to the user of the product. The virtual reality environment includes at least one avatar of the user and a virtual model of the product. The term ‘avatar’ as used herein refers to a digital representation of the user of the product that is manipulable, by the human operator, using the input device. In an embodiment, the virtual model of the product is a Computer-Aided Design (CAD) model. In an embodiment, dynamically configuring the virtual reality environment based on the at least one attribute in the request received, includes updating at least one of the avatar and the virtual model based on the least one attribute. For example, the avatar may be updated to mimic physical characteristics such as height and arm-reach of the cyclist, and the virtual model may be updated based on the user’s preference of the specific model of bicycle. Further, interactions between the avatar and the virtual model are simulated, upon updating, in the virtual reality environment. The virtual reality environment facilitates simulation of interactions of the user with the product. In a further embodiment, in simulating the interactions between avatar and the virtual model, the avatar is manipulable in real-time by the human operator. For example, the avatar may be moved in a specific direction to interact with the virtual model of the product. In the example of the cyclist, the avatar may be manipulated using the input device to perform a pedaling motion in relation to the virtual model of the bicycle, to simulate a pedaling action of the user on a physical bicycle. In an embodiment, interactions between the avatar and the virtual model are simulated using low-fidelity simulation models (e.g., models derived using Model Order Reduction (MOR)), high-fidelity simulation models (e.g., three-dimensional models, finite -element models, Computational Fluid Dynamics models) or a combination thereof, depending on the complexity of the product to be designed. For each type of product, a type of simulation (e.g., one / two / three- dimensional model-based simulation, finite element analysis, computational fluid dynamics analysis etc.) to be performed and the corresponding type of simulation models may be predefined. In a preferred embodiment, interactions between the avatar and the virtual model of the product in the virtual reality environment is simulated using human-object interaction simulation. In a preferred embodiment, the human-object interaction simulation is performed using inverse dynamics. Inverse dynamics is a technique for computing net forces and torques in a joint of the user’s body, based on kinematics determined from interactions between the avatar and the virtual model of the product in the virtual environment. In particular, the kinematics include orientation, angular velocity and angular acceleration of the joint estimated based on movement of coordinates of the avatar. In an example, the inverse dynamic technique uses Recursive Newton-Euler Algorithm (RNEA) to estimate the kinematics to compute linear velocity / acceleration of say, a body part of the user based on velocity / acceleration propagation. Similarly, angular veloc- ity / acceleration, orientation and other kinematics are also estimated using kinematics estimation techniques known in the art.
[0030] The kinematics thus estimated are further used for estimating the output of the human-object interaction simulation, i.e., net forces and / or torques in a joint of the user’s body. In an embodiment, the output of the human-object interaction simulation is indicative of a reaction force, on at least one joint of the user’s body, resulting from the interaction of the user with the product. The term ‘reaction force’ as used herein refers to force exerted by the body of the user on the product, in response to an action force exerted by the product on the body of the user during use. The reaction force may be distributed across muscles around a joint. In the example of the cyclist, the reaction forces may be representative of, for example, respective forces of the pedal on the heel and / or ball of each foot of the cyclist. In the example of the chair, the reaction forces may be representative of the force of a backrest of the chair on the back or head of the user. The design customization module 106 and / or the processor 104 is further configured to execute one or more biomechanical simulations based on interactions between the avatar and the virtual model of the product in the virtual reality environment to determine biomechanical load on a musculoskeletal system of the user during usage of the product. In an embodiment, executing the one or more biomechanical simulations based on interactions between the avatar and the virtual model of the product in the virtual reality environment, includes configuring a musculoskeletal simulation model of the user based on based on the reaction force on the at least one joint of the user’s body. The musculoskeletal simulation model facilitates simulation of biomechanical load on one or more muscles and / or joints of the user in response to the reaction forces resulting from the interaction with the product. Further, simulation instances of the configured musculoskeletal simulation model are generated. Non-limiting examples of the musculoskeletal model may include finite-element models, synthetic bone models, and cadaveric bone models. Each of the simulation instances are further executed in a simulation environment, to determine biomechanical load on the musculoskeletal system of the user during usage of the product.
[0031] In an implementation, the biomechanical simulation helps in identifying force experienced by one or more joints and / or muscles that result in a reaction force. The output of the biomechanical simulation is further analyzed to determine whether the biomechanical load on the musculoskeletal system meets a criterion. In an example, a predetermined criterion is such that a joint (or muscle) force is below a maximum force defined for the joint (or muscle). In another example, the criterion is such that a joint (or muscle) force is within a predefined optimal range such as in the case of exercising equipment.
[0032] The design customization module 106 and / or the processor 104 is further configured to determine one or more optimized design parameters of the product corresponding to an optimal biomechanical load on the musculoskeletal system, by implementing an optimization algorithm on a plurality of design parameters associated with the product. The design parameters are optimized to meet the criterion associated with the biomechanical load. In an embodiment, the optimization algorithm selects the one or more optimized design parameters from a plurality of predefined configurations stored in the database 124. For example, each predefined configuration may include a predetermined values for each of the design parameters. Further, the predefined configuration that provides an optimal biomechanical load is selected as the optimized design parameters for the product. In another embodiment, the optimization algorithm is at least one of Broyden- Fletcher-Goldfarb-Shanno (BFGS) algorithm, Sequential quadratic programming (SQP), Newton’s methods and Genetic Algorithms. It must be understood that the optimization of the design parameters may be performed using any optimization technique known in the art depending on the complexity of the product for which the design parameters are to be optimized. The one or more optimized design parameters correspond to a product design customized for the user. During the optimization of the design parameters, one or more predefined constraints with respect to specifications of the product may also be applied. For example, in case of a bicycle, the design parameters may include, but are not limited to, rake angle, center of gravity, trail, wheelbase, steering axis, frame weight, frame material etc. Further, one of the constraints may be that the height of the handlebar must be within a specific range. In addition, one or more constraints may also be associated with the user’s preferences. In an example, the design parameters may be related to the biomechanical load using a mathematical model (for example, a neural network model). The variables in the mathematical model that correspond to the design parameters are tuned, during optimization, to bring the biomechanical load to an optimal value that meets the criterion.
[0033] The functioning of optimization algorithms is known to a person skilled in the art, and hence no additional explanation is provided thereto. The design customization module 106 and / or the processor 104 is further configured to generate a design file based on the one or more optimized design parameters, on the output device 114. The design file may be generated in the form of Computer-Aided Design files such as formats such as, but not limited to, .dwg, .dxf, STEP, .qif, .jt, and .prt. In an implementation, the optimized design parameters are also outputted in the form of text. In another example, the virtual model of the product in the virtual reality environment is updated based on the design parameters, in order to enable the human operator to visualize the product design customized based on the at least one attribute of the user.
[0034] In an embodiment, the design customization module 106 and / or the processor 104 is further configured to provide the generated design file to a manufacturing equipment, for manufacturing of the product based on the customized product design. For example, the design file is provided to a 3D printer for printing.
[0035] As mentioned above, the design customization platform 102 may comprise the above-described functionalities and may provide an interactive user interface of the design customization platform 102 which supports customization of product designs.
[0036] Further, a computer-readable medium 160 which may comprise a computer program product 162 is shown in FIG 1, wherein the computer program product 162 may be encoded with executable instructions, that when executed, cause the system 100 or and / or the design customization platform 102 to carry out the described method.
[0037] FIG 2 shows a flowchart of a method 200 for customizing a product design, in accordance with an embodiment of the present invention. The method may start at 205 and the methodology may comprise several method steps carried out through operation of at least one processor similar to the processor 104. At step 210, a request for customizing a product design is received from an input device. The request comprises at least one attribute specific to a user of the product.
[0038] At step 215, a virtual reality environment is dynamically configured based on the at least one attribute specific to the user of the product. The virtual reality environment includes at least one avatar of the user, and a virtual model of the product.
[0039] At step 220, one or more biomechanical simulations are executed based on interactions between the avatar and the virtual model of the product in the virtual reality environment to determine biomechanical load on a musculoskeletal system of the user during usage of the product.
[0040] At step 225, determining one or more optimized design parameters of the product corresponding to an optimal bio-mechanical load on the musculoskeletal system, by implementing an optimization algorithm on a plurality of design parameters associated with the product, if the biomechanical load on the musculoskeletal system fails to meet a criterion. The one or more optimized design parameters correspond to a product design customized for the user.
[0041] At step 230, a design file is generated based on the one or more optimized design parameters, on an output device.
[0042] At step 235, the methodology may end.
[0043] It should further be appreciated that the methodology 200 may comprise other acts and features discussed previously with respect to the computer-implemented method of customizing product designs. For example, the method may further comprise the act of providing the generated design file to a manufacturing equipment, for manufacturing of the product based on the customized design.
[0044] As discussed previously, acts associated with these methodologies (other than any described manual acts such as an act of manually making a selection through the input device 112) may be carried out by one or more processors. Such processor (s) may be included in one or more data processing systems, for example, that execute software components operative to cause these acts to be carried out by the one or more processors. In an example embodiment, such software components may comprise computer-executable instructions corresponding to a routine, a sub-routine, programs, applications, modules, libraries, a thread of execution, and / or the like. Further, it should be appreciated that software components may be written in and / or produced by software environments / lan- guages / frameworks such as Java, JavaScript, Python, C, C#, C++ or any other software tool capable of producing components and graphical user interfaces configured to carry out the acts and features described herein.
[0045] The suggested approach offers several advantages over other approaches. For example, the present invention enables rectifying flaws in ergonomics of a product in design stage itself, thereby eliminating expenses associated with rectifying the flaws after production. The present invention enables customization of product designs for specific users using a virtual reality environment, without the necessity for physical testing of the product by the user. This also reduces the time-to- manufacture the product starting from design, compared to existing methods. Further, the customization is performed based on biomechanical loads on the musculoskeletal system of the user. Therefore, the customized product design ensures comfort of the user. FIG 3 illustrates a block diagram of a data processing system 1000 (also referred to as a system) in which an embodiment can be implemented, for example, as a portion of a product system, and / or other system operatively configured by software or otherwise to perform the processes as described herein. The data processing system 1000 may include, for example, the design customization platform 102 and / or the system or data processing system 100 mentioned above. The data processing system depicted includes at least one processor 1002 (e.g., a CPU) that may be connected to one or more bridges / controllers / buses 1004 (e.g., a north bridge, a south bridge). One of the buses 1004, for example, may include one or more I / O buses such as a PCI Express bus. Also connected to various buses in the depicted example may include a main memory 1006 (RAM) and a graphics controller 1008. The graphics controller 1008 may be connected to one or more display devices 1010. It should also be noted that in some embodiments one or more controllers (e.g., graphics, south bridge) may be integrated with the CPU (on the same chip or die). Examples of CPU architectures include IA-32, x86-64, and ARM processor architectures.
[0046] Other peripherals connected to one or more buses may include communication controllers 1012 (Ethernet controllers, Wi-Fi controllers, cellular controllers) operative to connect to a local area network (LAN), Wide Area Network (WAN), a cellular network, and / or other wired or wireless networks 1014 or communication equipment.
[0047] Further components connected to various buses may include one or more I / O controllers 1016 such as USB controllers, Bluetooth controllers, and / or dedicated audio controllers (connected to speakers and / or microphones). It should also be appreciated that various peripherals may be connected to the I / O controller(s) (via various ports and connections) including input devices 1018 (e.g., keyboard, mouse, pointer, touch screen, touch pad, drawing tablet, trackball, buttons, keypad, game controller, gamepad, camera, microphone, scanners, motion sensing devices that capture motion gestures), output devices 1020 (e.g., flat screens, head mounted displays, printers, speakers) or any other type of device that is operative to provide inputs to or receive outputs from the data processing system. Also, it should be appreciated that many devices referred to as input devices or output devices may both provide inputs and receive outputs of communications with the data processing system. For example, the processor 1002 may be integrated into a housing (such as a tablet) that includes a touch screen that serves as both an input device and a display device. Further, it should be appreciated that some input devices (such as a laptop) may include a plurality of different types of input devices (e.g., touch screen, touch pad, keyboard). Also, it should be appreciated that other peripheral hardware 1022 connected to the I / O controllers 1016 may include any type of device, machine, or component that is configured to communicate with a data processing system.
[0048] Additional components connected to various busses may include one or more storage controllers 1024 (e.g., SATA). A storage controller may be connected to a storage device 1026 such as one or more storage drives and / or any associated removable media, which can be any suitable non-transitory machine usable or machine- readable storage medium. Examples include nonvolatile devices, volatile devices, read only devices, writable devices, ROMs, EPROMs, magnetic tape storage, floppy disk drives, hard disk drives, solid-state drives (SSDs), flash memory, optical disk drives (CDs, DVDs, Blu-ray), and other known optical, electrical, or magnetic storage devices drives and / or computer media. Also, in some examples, a storage device such as an SSD may be connected directly to an I / O bus 1004 such as a PCI Express bus.
[0049] A data processing system 1000 in accordance with an embodiment of the present disclosure may include an operating system 1028, software / firmware 1030, and data stores 1032 (that may be stored on a storage device 1026 and / or the memory 1006). Such an operating system may employ a command line interface (CLI) shell and / or a graphical user interface (GUI) shell. The GUI shell permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application. A cursor or pointer in the graphical user interface may be manipulated by a user through a pointing device such as a mouse or touch screen. The position of the cursor / pointer may be changed and / or an event, such as clicking a mouse button or touching a touch screen, may be generated to actuate a desired response. Examples of operating systems that may be used in a data processing system may include Microsoft Windows, Linux, UNIX, iOS, and Android operating systems. Also, examples of data stores include data files, data tables, relational database (e.g., Oracle, Microsoft SQL Server), database servers, or any other structure and / or device that is capable of storing data, which is retrievable by a processor.
[0050] The communication controllers 1012 may be connected to the network 1014 (not a part of data processing system 1000), which can be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet. Data processing system 1000 can communicate over the network 1014 with one or more other data processing systems such as a server 1034 (also not part of the data processing system 1000). However, an alternative data processing system may correspond to a plurality of data processing systems implemented as part of a distributed system in which processors associated with several data processing systems may be in communication by way of one or more network connections and may collectively perform tasks described as being performed by a single data processing system. Thus, it is to be understood that when referring to a data processing system, such a system may be implemented across several data processing systems organized in a distributed system in communication with each other via a network. Further, the term “controller” means any device, system or part thereof that controls at least one operation, whether such a device is implemented in hardware, firmware, software or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely.
[0051] In addition, it should be appreciated that data processing systems may be implemented as virtual machines in a virtual machine architecture or cloud environment. For example, the processor 1002 and associated components may correspond to a virtual machine executing in a virtual machine environment of one or more servers. Examples of virtual machine architectures include VMware ESCi, Microsoft Hyper-V, Xen, and KVM.
[0052] Those of ordinary skill in the art will appreciate that the hardware depicted for the data processing system 1000 may vary for particular implementations. For example, the data processing system 1000 in this example may correspond to a computer, workstation, server, PC, notebook computer, tablet, mobile phone, and / or any other type of apparatus / system that is operative to process data and carry out functionality and features described herein associated with the operation of a data processing system, computer, processor, and / or a controller discussed herein. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure.
[0053] Also, it should be noted that the processor 104 described herein may be located in a server that is remote from the display and input devices described herein. In such an example, the described display device and input device may be included in a client device that communicates with the server (and / or a virtual machine executing on the server) through a wired or wireless network (which may include the Internet). In some embodiments, such a client device, for example, may execute a remote desktop application or may correspond to a portal device that carries out a remote desktop protocol with the server to send inputs from an input device to the server and receive visual information from the server to display through a display device. Examples of such remote desktop protocols include Te- radici's PCoIP, Microsoft's RDP, and the RFB protocol. In such examples, the processor described herein may correspond to a virtual processor of a virtual machine executing in a physical processor of the server.
[0054] As used herein, the terms “component” and “system” are intended to encompass hardware, software, or a combination of hardware and software. Thus, for example, a system or component may be a process, a process executing on a processor, or a processor. Additionally, a component or system may be localized on a single device or distributed across several devices.
[0055] Also, as used herein, the term ‘processor’ corresponds to any electronic device that is configured via hardware circuits, software, and / or firmware to process data. For example, processors described herein may correspond to one or more (or a combination) microprocessors, CPU, FPGA, ASIC, or any other integrated circuit (IC) or other type of circuit that is capable of processing data in a data processing system, which may have the form of a controller board, computer, server, mobile phone, and / or any other type of electronic device.
[0056] Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all data processing systems suitable for use with the present disclosure is not being depicted or described herein. Instead, only so much of a data processing system 1000 as is unique to the present disclosure or necessary for an understanding of the present disclosure is depicted and described. The remainder of the construction and operation of data processing system 1000 may conform to any of the various current implementations and practices known in the art. Also, it should be understood that the words or phrases used herein should be construed broadly, unless expressly limited in some examples. For example, the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Further, the term “and / or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. The term “or” is inclusive, meaning and / or, unless the context clearly indicates otherwise. The phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like.
[0057] Also, although the terms “first”, “second”, “third” and so forth may be used herein to describe various elements, functions, or acts, these elements, functions, or acts should not be limited by these terms. Rather these numeral adjectives are used to distinguish different elements, functions or acts from each other. For example, a first element, function, or act could be termed a second element, function, or act, and, similarly, a second element, function, or act could be termed a first element, function, or act, without departing from the scope of the present disclosure.
[0058] In addition, phrases such as “processor is configured to” carry out one or more functions or processes, may mean the processor is operatively configured to or operably configured to carry out the functions or processes via software, firmware, and / or wired circuits. For example, a processor that is configured to carry out a function / process may correspond to a processor that is executing the soft- ware / firmware, which is programmed to cause the processor to carry out the function / process and / or may correspond to a processor that has the software / firmware in a memory or storage device that is available to be executed by the processor to carry out the function / process. It should also be noted that a processor that is “configured to” carry out one or more functions or processes, may also correspond to a processor circuit particularly fabricated or “wired” to carry out the functions or processes (e.g., an ASIC or FPGA design). Further the phrase “at least one” before an element (e.g., a processor) that is configured to carry out more than one function may correspond to one or more elements (e.g., processors) that each carry out the functions and may also correspond to two or more of the elements (e.g., processors) that respectively carry out different ones of the one or more different functions.
[0059] Although an exemplary embodiment of the present disclosure has been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and improvements disclosed herein may be made without departing from the scope of the disclosure in its broadest form.
[0060] None of the description in the present patent document should be read as implying that any particular element, step, act, or function is an essential element, which must be included in the claim scope: the scope of patented subject matter is defined only by the allowed claims.
[0061] LIST OF REFERENCE NUMERALS
[0062] 100 system for customization of a product design
[0063] 102 design customization platform
[0064] 104 at least one processor
[0065] 106 design customization module
[0066] 108 memory
[0067] 112 input device
[0068] 114 output device
[0069] 116 graphical user interface (GUI)
[0070] 118 design UI
[0071] 124 database
[0072] 160 computer-readable medium
[0073] 162 computer program product
[0074] 1000 data processing system
[0075] 1002 processor
[0076] 1004 bridges / controllers / buses
[0077] 1006 memory
[0078] 1008 graphics controller
[0079] 1010 display devices
[0080] 1012 communication controllers
[0081] 1014 networks
Claims
CLAIMS1. A method for customizing a product design, comprising: receiving, by a processor (104), a request for customizing a product design from an input device (112), wherein the request comprises at least one attribute specific to a user of the product; dynamically configuring a virtual reality environment based on the at least one attribute specific to the user of the product, wherein the virtual reality environment includes at least one avatar of the user, and a virtual model of the product; executing one or more biomechanical simulations based on interactions between the avatar and the virtual model of the product in the virtual reality environment to determine biomechanical load on a musculoskeletal system of the user during usage of the product; if the biomechanical load on the musculoskeletal system fails to meet a criterion: determining one or more optimized design parameters of the product corresponding to an optimal biomechanical load on the musculoskeletal system, by implementing an optimization algorithm on a plurality of design parameters associated with the product, wherein the one or more optimized design parameters correspond to a product design customized for the user; and generating a design file based on the one or more optimized design parameters, on an output device (114).
2. The method according to claim 1, wherein the at least one attribute is associated with a physical characteristic of the user.
3. The method according to any of the claims 1 or 2, wherein the at least one attribute is associated with a preference associated with the product.
4. The method according to any of the claims 1 to 3, wherein dynamically configuring a virtual reality environment based on the at least one attribute in the request received, comprises ■ updating at least one of the avatar and the virtual model based on the least one attribute; and simulating interactions between the avatar and the virtual model, upon updating, in the virtual reality environment.
5. The method according to claims 1 and 4, wherein in simulating the interactions between avatar and the virtual model, the avatar is manipulable in realtime by a human operator.
6. The method according to claims 1 and 5, wherein interactions between the avatar and the virtual model of the product in the virtual reality environment is simulated using human-object interaction simulation.
7. The method according to claims 1 and 6, wherein an output of the humanobject interaction simulation is indicative of a reaction force, on at least one joint of the user’s body, resulting from the interaction of the user with the product.
8. The method according to any of the claims 1 to 7, wherein executing the one or more biomechanical simulations based on interactions between the avatar and the virtual model of the product in the virtual reality environment, comprises ■ configuring a musculoskeletal simulation model of the user based on based on the reaction force on the at least one joint of the user’s body; generating simulation instances of the configured musculoskeletal simulation model; andexecuting each of the simulation instances in a simulation environment to determine the biomechanical load on the musculoskeletal system of the user during usage of the product.
9. The method according to any of the claims 1 to 8, wherein the optimization algorithm selects the one or more optimized design parameters from a plurality of predefined configurations.
10. The method according to any of the claims 1 to 9, wherein the optimization algorithm is at least one of Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm, Sequential quadratic programming (SQP), Newton’s methods and Genetic Algorithms.
11. The method according to any of the claims 1 to 10, further comprising: providing the generated design file to a manufacturing equipment, for manufacturing of the product based on the customized design.
12. A system (100) arranged and configured to execute the steps of the computer-implemented method according to any one of the preceding claims 1 to 11.
13. A computer program product (162), comprising computer program code which, when executed by a system (100), causes the system (100) to carry out the method of one of the claims 1 to 11.
14. A computer-readable medium (160) comprising a computer program product (162) comprising computer program code which, when executed by a system (100), cause the system (100) to carry out the method of one of the claims 1 to 11.