Patent Description:
Document <CIT> discloses a collaborative method of generating a design representation of an object between a first user and a second user is described. The method comprises: designating, at a first user terminal, a set of design object variables relating to different aspects of the design representation; specifying, at the first user terminal, constraints for the set of design object variables, the constraints comprising a range of first user designated values for each of the designated object variables of the set; receiving at a second user terminal, the set of design object variables, the constraints for the set and the design representation via a communication network; enabling, at the second user terminal, manipulation of the design object representation, the enabling step comprising enabling selection of a particular value of at least one of the designated object variables only within the constrained value range specified by the first user; and presenting on the second user terminal a graphical representation of the design object representation as specified by the second user selection.

Document "<NPL>, discloses according to the authors: The aim of this article is to investigate the changes brought about by online 3D printing platforms in co-creation and user innovation. As doing so requires a thorough understanding of the level of user involvement in productive processes and a clear view of the nature of co-creative processes, this article provides a 'prosumption' framework and a typology of co-creation activities. Then, based on case studies of <NUM> online 3D printing platforms, a service-based taxonomy of these platforms is constructed. The taxonomy and typology are then matched to investigate the role played by online 3D platforms in regard to the various types of co-creation activities and, consequently, how this impacts user innovation.

Document <CIT> discloses a method for interacting with a database having data related to modeled products and product parts, the method comprising; (a) displaying a graphical user interface on a display of a computer, the graphical user interface being adapted to allow a user to access the database; (b) providing within the graphical user interface a toolbar with at least one field suitable for displaying an argument, the toolbar being adapted for allowing a user to execute a function using said argument; the method further comprising the steps of: (c) querying the database; and (d) updating the argument displayed in the field, using a result of the querying step.

In current systems, only one consumer can personalize a product using a single session or at a single device (e.g., a computer, mobile device). If a first person desires to share her personalized product with a second person, she has to show it to the second person on the same screen, by a screen shot that is shared via email or other messaging application. No current solution enables more than one person to personalize the same product at a same time while at multiple locations or on multiple devices.

Google™ Docs and similar tools allow collaboration on workplace documents from multiple people, such as text documents, spreadsheets, and slide presentations. However, such solutions do not offer the ability for consumers to collaborate to customise or edit a 3D-object. Google™ Docs, for example, further requires authentication using a single Google login, and does not allow for logins using alternative authentication.

In an embodiment of the present invention, multiple customers of an online retail store can connect to discuss and collaborate on a 3D-product by employing invitations from and authentication by social media. For example, an engaged couple can invite each other, via social media, to collaborate in a 3D environment to personalize wedding rings on a retail website together, or multiple family members can collaborate to create a customised product for another family member.

In an embodiment, a method includes, by a server with a processor, providing, at a user device via a network, a user interface displaying a three-dimensional (3D) model of a consumer product selected by a user. The method further includes customising the 3D model of the consumer product based on selections and manipulations of the consumer product received at the provided user interface from at least two users. The method further includes, responsive to finalization of the customised 3D model by one of the users, submitting the customised 3D model for 3D printing.

In an embodiment, the method further includes enabling a first user to send an invite to a second user. The method further includes, responsive to the invitation, enabling customisation of the consumer product by the first user and the second user through a first user device and a second user device, respectively.

In an embodiment, sending the invite to the second user is through an authentication service of a third-party.

In an embodiment, customising the 3D model of the consumer product further includes enabling selection in the user interface by a first user of at least one aspect of the 3D model for customisation, and, responsive to the selection, locking selection and customisation from any user other than the first user.

In an embodiment, an aspect of the 3D model can include colour, material, shape, or rotation of an element of the 3D model.

In an embodiment, the customisable elements are created by a separate system.

In an embodiment, providing the user interface includes displaying a unique avatar for each of the plurality of users customising the 3D model. The unique avatar can correspond to a colour or a pattern representing the user, such that the user interface displays the colour or pattern corresponding to the user avatar of a particular user to indicate that an element of the 3D model is being customised by the particular user corresponding to the unique avatar.

In an embodiment, providing the user interface further includes enabling each of the plurality of users to view the 3D model from a different viewpoint in a 3D domain.

In an embodiment, a system includes a processor and a memory with computer code instructions stored therein. The memory can be operatively coupled to said processor such that the computer code instructions configure the processor to implement modules configured for performing the method. The modules may comprise a user interface module configured to provide, at a user device via a network, a user interface displaying a 3D model of a consumer product selected by a user. The modules may further comprise a customisation module configured to customise the 3D model of the consumer product based on selections and manipulations of the consumer product received at the provided user interface from at least two users. The modules may further comprise a printing module configured to, responsive to finalization of the customised 3D model by one of the users, submit the customised 3D model for 3D printing. In examples, the modules may further comprise an invitation module configured to enable a first user of the plurality of users to send an invitation to a second user of the plurality of users, wherein the customisation module is further configured to, responsive to the invitation, enable customisation of the consumer product by the first user and the second user through a first user device and a second user device, respectively. In examples: the invitation module is further configured to send the invitation to the second user through an authentication service of a third party, the customisation module is further configured to enable selection in the user interface by a first user of at least one aspect of the 3D model for customisation, and responsive to the selection, lock selection and customisation from any user other than the first user of the plurality of users; the at least one aspect of the 3D model can include at least one of colour, material, shape, and rotation of an element of the 3D model; the customisable elements are created by a separate system; and/or the user interface module is further configured to display a unique avatar for each of the plurality of users customising the 3D model, the unique avatar corresponding to at least one of a colour and a pattern representing the user, such that the user interface can display the colour or pattern corresponding to the user avatar of a particular user to indicate that an element of the 3D model is being customised by the particular user corresponding to the unique avatar.

In an embodiment, a non-transitory computer-readable medium is configured to store instructions for customising a 3D product. The instructions, when loaded and executed by a processor, cause the processor to provide, at a user device via a network, a user interface displaying a 3D model of a consumer product selected by a user. The instructions further cause the processor to customise the 3D model of the consumer product based on selections and manipulations of the consumer product received at the provided user interface from at least two users. The instructions further cause the processor to, responsive to finalization of the customised 3D model by one the users, submit the customised 3D model for 3D printing.

The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments of the present invention.

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. A user <NUM> can collaborate with subsequent users 106a-c on a model of a 3D product <NUM> displayed on a user device <NUM>. The user device <NUM> is operatively connected to a retail server <NUM> and one or more social media platforms <NUM>, and other user devices <NUM> via a cloud <NUM>. The user <NUM> can select a 3D product offered by the retailer for customisation. The user <NUM> can send updates to the 3D model <NUM> to the retail server <NUM> via the cloud <NUM>. Examples of social media platforms <NUM> can include Facebook®, Twitter®, Instagram®, Pinterest™, Google+™. The user <NUM> can also invite subsequent users 106a-c by sending collaboration invitations <NUM> to the users' 106a-c corresponding user devices <NUM>. The subsequent users 106a-c enter authentication credentials <NUM> on the user devices <NUM>, which are forwarded through the cloud <NUM> to the social media platforms <NUM>. The social media platforms can then grant access to the subsequent users 106a-c, if the authentication credentials <NUM> are correct, and send an authentication access token <NUM> to the retail server <NUM> for each authenticated user. A person of ordinary skill in the art can recognize that the collaboration invitations <NUM> can be sent to the user devices <NUM> via initiation from the social media platforms <NUM> in another embodiment as well.

Once the subsequent users 106a-c are authenticated, the retail server <NUM> allows the subsequent users 106a-c to enter updates to the 3D model <NUM> at the retail server <NUM>. The user <NUM> can receive updates <NUM> from other users and the subsequent users 106a-c can receive updates <NUM> from other users. These updates <NUM> and <NUM>, respectively, update the displays of the model of the 3D product <NUM> on the user devices <NUM> and <NUM>.

In this manner, the initial user <NUM> and subsequent users 106a-c can all edit, customise, and collaborate on the model of the 3D product <NUM>. Further, inviting subsequent users 106a-c is performed by employing already existing authentication from the subsequent users 106a-c social media accounts, simplifying the process of inviting the subsequent users 106a-c by:.

Upon each user <NUM> and subsequent users 106a-c beginning customisation of an element of the model of 3D product <NUM> by selecting the element for editing, the system locks all other users from customising that element of the object. This prevents conflicts with multiple users editing the same element at the same time. Such simultaneous editing of the same element can cause problems, such as user's attempting to change the same element to different shapes, colours, or materials. A person of ordinary skill in the art can recognize, however, that each user can modify separate/different elements of the model of the 3D product <NUM> simultaneously.

When the users <NUM> and 106a-c finalize the 3D product <NUM>, they can signal to the retail server <NUM> that the product is finalized and further to issue an order of the product. In various embodiments, the initial user <NUM> may be the only user who can finalize the product, any user <NUM> or 106a-c can finalize the product, or the group of users as a whole <NUM> or 106a-c can vote or unanimously decide to finalize the product. The retail server <NUM> can then issue a final 3D model <NUM> to a 3D printing service <NUM> via the cloud <NUM>. The 3D printing service <NUM> then creates a 3D printed product <NUM>, which can be shipped to one of the users <NUM> and 106a-c or to a third party, for example, as a gift. In this manner, multiple users can electronically collaborate on a customised 3D product that is printed as a tangible object and shipped to the customer.

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. A first user <NUM> visits a retail web site, which presents user interface <NUM> to the first user <NUM>. The user interface <NUM> displays a 3D product <NUM>, in this instance, a ring with a gemstone. The user interface further presents customisation options <NUM>, allowing the user to change different aspects of the ring, such as the material of the ring, the type of gemstone(s), or colour(s), shapes, or patterns on various parts of the rings. The user can further also customise an engraving on the ring. The user interface also shows a first user avatar <NUM> of the user to show that the first user <NUM> is editing the 3D product <NUM>. A first user communication controls panel <NUM> can be presented on the user interface <NUM> and allow the first user to start a webcam communication session, microphone communication session, or adjust speaker or microphone volume. The first user <NUM> can also be associated with a first user social network <NUM>. In this instance, the first user social network <NUM> is Facebook®, but a person of ordinary skill in the art can recognize the social network can be any other social network such as Twitter®, Blogger®, LinkedIn®, YouTube®, Instagram® and Snapchat®.

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. The retailer's website presents user interface <NUM> having multiple users logged in, but otherwise similar to the user interface <NUM> of <FIG>. The multiple users include first user <NUM> associated with a first user social network <NUM> and invited users 264a-c. Each invited user 264a-c can belong to a respective invited social network 268a-c, and is associated with an invited user avatar 266a, which is shown on the user interface <NUM> indicating that its respective user is editing the 3D product. Further, each invited user has an invited user communication control 270a-c allowing the invited user to initiate webcam or audio communications, or control volume of their speaker or microphone.

The first user <NUM> can issue invitations 280a-b to invited users 266a-c. Then, each invited user has the power to invite other users. For example, invited user 264a can send invite 280c to invited user 264c. Once accepted, all users <NUM> and 264a-c can customise various aspects of the 3D product. In addition, all users <NUM> and 264a-c are enabled to see the product from a customised viewpoint, which includes a customised rotation viewpoint and a customised zoom level. Each user, therefore, may see the 3D product from a different viewpoint in the 3D domain.

<FIG> is a diagram <NUM> illustrating an example embodiment of a user interface <NUM>. The user interface <NUM> presents a 3D product <NUM> having a connecting structure <NUM> and drop pendant <NUM> to the user. The user interface further presents multiple controls to the user:.

Multiple users may collaborate to customise the 3D product <NUM>, as shown in <FIG> and <FIG>. Each element of the 3D product <NUM> may have a particular border indicating a colour or pattern showing which user is customising that element. For example, the connecting structure <NUM> has a border showing that particular element of the 3D product is being edited by a user having an avatar associated with the colour or pattern of the border. Alternatively, the entire element could be shaded by a certain colour, pattern, or brightness to indicate which user is editing it as well.

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. The user has selected the rotation control <NUM> of the user interface <NUM>, similar to the user interface <NUM> of <FIG>. The user interface <NUM> in turn presents a rotated 3D product <NUM> and a rotated connecting structure <NUM>.

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. <FIG> presents a user interface <NUM> similar to the user interface <NUM> of <FIG>. In this example, the user interface <NUM> presents a 3D product <NUM> having a connecting structure <NUM> corresponding to the user selection of the selected structure <NUM> of the available structures 416a-c from the structure selection bar <NUM>. The user can select different available structures and materials for each element, customising the 3D product <NUM>.

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. <FIG> presents a user interface <NUM> similar to the user interface <NUM> of <FIG> and <FIG>. The user interface <NUM> presents a rotated 3D product <NUM> responsive to the user selecting the selected rotation control <NUM>, such that the connecting structure <NUM> has been rotated <NUM> degrees.

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. User interface <NUM> is similar to the user interface <NUM> of <FIG> and <FIG>; however, user interface <NUM> shows the drop-pendant <NUM> being edited via the highlighting specific to a given user. Specifically, after the user selected the drop pendant <NUM>, the user chose selected structure <NUM> of the available structures 516a-c from the structure selection bar. The user interface <NUM> responsively presents drop pendant <NUM> having the selected structure <NUM>.

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. User interface <NUM> is similar to the user interface <NUM> of <FIG>, <FIG>, and user interface <NUM> of <FIG>; however, user interface <NUM> shows the gemstone of the drop pendant <NUM> being edited. In response to the user selecting the gem of the drop pendant <NUM>, the user interface <NUM> displays gem toolbar <NUM>. The user then chooses selected gem <NUM> (e.g., emerald) of the available gems 628a-e in the gem toolbar <NUM>. The user interface <NUM> responsively presents the drop pendant <NUM> having the selected gem <NUM> (e.g., emerald).

<FIG> is a diagram <NUM> illustrating an example embodiment of the present invention. User interface <NUM> is similar to the user interface <NUM> of <FIG>, <FIG>, user interface <NUM> of <FIG>, and user interface <NUM> of <FIG>; however, user interface of <FIG> shows multiple gemstones of the drop pendant <NUM> being edited. As the drop pendant <NUM> in <FIG> has multiple gems, the user interface presents multiple gem selection controls 652a-f. The user can select each gem separately and then choose an available gemstone 628a-f from the gem selection toolbar <NUM>. The user interface <NUM> then presents, responsively, ruby gem <NUM>, topaz gem <NUM>, amethyst gem <NUM>, diamond gem <NUM>, sapphire gem <NUM>, and emerald gem <NUM>.

<FIG> is a flow diagram <NUM> illustrating an example embodiment of a process employed by the present invention. The process includes providing a user interface displaying a 3D model of a consumer product selected by a user (<NUM>). A server can provide the user interface at a user device of a user or multiple user devices of multiple users. Then, the process allows customisation of the 3D model of the consumer product based on selections and manipulations of the consumer product received at the provided user interface from at least two users of the plurality of users (<NUM>). This customisation can occur after an initial user has sent invitations to other users to also customise the product. The method further includes, responsive to finalization of the customised 3D model by at least one of the plurality of users, submitting the customised 3D model for 3D printing (<NUM>).

<FIG> is a block diagram <NUM> illustrating an example embodiment of the present invention. One or more user interface modules <NUM> enable a user to send one or more invitations 810a to an invitation module <NUM>. In response, the invitation module <NUM> sends an invitation 810b to an appropriate different user and user interface module <NUM>. Then, all invited users, via their corresponding user interface module <NUM>, can send customisations <NUM> to a customisation module <NUM>. The customisations <NUM> are to different elements of the 3D model, but each separate element can be customised simultaneously. However, as described above, two users cannot customise the same element at the same time. In response to receiving the customisations <NUM>, the customisation module <NUM> provides updates <NUM> to 3D model to each of the user interface modules <NUM>. Then, when the users finalize the 3D model, one or more of the user interface modules <NUM> send the final 3D model <NUM> to a 3D printing module <NUM> for printing. Then, the customised 3D printed product can be shipped to the customer.

<FIG> illustrates a computer network or similar digital processing environment in which embodiments of the present invention may be implemented.

Client computers and/or devices <NUM> and one or more server computers <NUM> provide processing, storage, and input/output devices executing application programs and the like. The client computers/devices <NUM> can also be linked through a communications network <NUM> to other computing devices, including other client computers/devices <NUM> and server computers <NUM>. The communications network <NUM> can be part of a remote access network, a global network (e.g., the Internet), a worldwide collection of computers, local area or wide area networks, and gateways that currently use respective protocols (TCP/IP, Bluetooth®, etc.) to communicate with one another. Other electronic device/computer network architectures are suitable.

<FIG> is a diagram of an example internal structure of a computer (e.g., client computer/device <NUM> or server computers <NUM>) in the computer system of <FIG>. Each computer <NUM>, <NUM> contains a system bus <NUM>, where a bus is a set of hardware lines used for data transfer among the components of a computer or processing system. The system bus <NUM> is essentially a shared conduit that connects different elements of a computer system (e.g., processor, disk storage, memory, input/output ports, network ports, etc.) that enables the transfer of information between the elements. Attached to the system bus <NUM> is an I/O device interface <NUM> for connecting various input and output devices (e.g., keyboard, mouse, displays, printers, speakers, etc.) to the computer <NUM>, <NUM>. A network interface <NUM> allows the computer to connect to various other devices attached to a network (e.g., network <NUM> of <FIG>). Memory <NUM> provides volatile storage for computer software instructions or routines 92A and data <NUM> used to implement an embodiment of the present invention (e.g., user interface module, invitation module, customisation module code detailed above). Disk storage <NUM> provides non-volatile storage for computer software instructions or operating system (OS) programs 92B and data <NUM> used to implement an embodiment of the present invention. A central processor unit <NUM> is also attached to the system bus <NUM> and provides for the execution of computer instructions.

In one embodiment, the processor routines 92A, programs 92B, and data <NUM> are a computer program product (generally referenced <NUM>), including a non-transitory computer-readable medium (e.g., a removable storage medium such as one or more DVD-ROM's, CD-ROM's, diskettes, tapes, etc.) that provides at least a portion of the software instructions for the invention system. The computer program product <NUM> can be installed by any suitable software installation procedure, as is well known in the art. In another embodiment, at least a portion of the software instructions may also be downloaded over a cable communication and/or wireless connection. In other embodiments, the invention programs are a computer program propagated signal product embodied on a propagated signal on a propagation medium (e.g., a radio wave, an infrared wave, a laser wave, a sound wave, or an electrical wave propagated over a global network such as the Internet, or other network(s)). Such carrier medium or signals may be employed to provide at least a portion of the software instructions for the present invention routines/programs <NUM>.

Claim 1:
A method comprising:
providing, by a server with a processor to at least two user devices via a computer network, respective user interfaces displaying a three-dimensional (3D) model of a consumer product selected by at least one user of a plurality of users, the 3D model including a plurality of elements;
simultaneously enabling selection, in a first user interface on a first user device by a first user of the plurality of users, of a first element of the 3D model for customisation and enabling selection, in a second user interface on a second user device by a second user of the plurality of users, of a second element of the 3D model for customisation;
responsive to the selection, locking selection and customisation of the first element of the 3D model from any user other than the first user of the plurality of users and locking selection and customization of the second element of the 3D model from any user other than the second user of the plurality of users;
customising, by the server, the 3D model of the consumer product based on selections of elements of the 3D model of the consumer product received at the provided user interface from at least two users of the plurality of users and manipulations of the elements of the 3D model of the consumer product received at the provided user interface from the at least two users of the plurality of users, the manipulations of the elements of the 3D model of the consumer product sent to the server; and
responsive to finalization of the customised 3D model by at least one of the plurality of users, submitting, by the server, the customised 3D model for 3D printing.