IP Library Granted Patent US 11,023,094
Granted Patent B2
US 11,023,094 · App. 16/425,649 · Granted Jun 1, 2021

Collaborative, multi-user system for viewing, rendering, and editing 3D assets

Inventors: Thiago Dacosta (Montreal, CA); Arno Zinke (Bonn, DE); Dov Amihod (Montreal, CA)
Assignee: AUTODESK, INC.
G06F3/04815G06Q10/101G06F2111/02G06T2200/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,023,094
App. No.
16/425,649
Granted
Jun 1, 2021
Kind
B2
Abstract

Systems and methods are presented for allowing multiple users to collaboratively edit 3-D assets in real-time, using a distributed 3-D editing/rendering software application. The software application may include a lightweight, browser-based user interface that is able to run on computing devices with relatively little memory and processing power. The software application may further include a progressive rendering engine.

Claims (47)

1. A method of allowing multiple users to collaboratively edit 3-D projects in real-time using multiple client devices distributed over a network, the method including:

enabling communication between the multiple client devices, wherein the multiple client devices comprise one or more end-user client devices and one or more rendering client devices;

modifying a 3-D project using a graphical user interface running on a first end-user client device of the one or more end-user client devices by creating or changing, in accordance with capabilities of the first end-user client device, 3-D assets belonging to the 3-D project, wherein objects are associated with the 3-D project, wherein the objects comprise a set of associated properties and parameters with associated numeric values including a unique and persistent identifier (GUID) for each object that is used across all of the multiple client devices to reference each respective object when distributing information representing modifications; wherein the 3-D project further comprises binary geometric data specifying geometric locations and orientations of geometric primitives that represent the objects, wherein the modifying creates a modification, wherein the modification comprises first information representing the modification to a set of properties and parameters associated with an object of the 3-D project;

maintaining, on the first end-user client device, a first end-user client relevant project state that represents project settings and data that are relevant to the first end-user client device, the first end-user client relevant project state including the binary geometric data;

distributing the first information representing the modification to one or more additional end-user client devices, of the multiple client devices, over the network, wherein the one or more additional end-user client devices each maintain a respective additional end-user client relevant project state comprising the set of associated properties and parameters with associated numeric values;

displaying said 3-D project using a graphical user interface running on a first additional end-user client device of the one or more additional end-user client devices, wherein capabilities of the first additional end-user client device is different from the capabilities of the first end-user client device, wherein the first additional end-user client device consumes the modification;

wherein the first additional end-user client device does not download the binary geometric data but applies the modification to the set of associated properties and parameters with associated numeric values it maintains;

wherein the steps of modifying, distributing, and displaying occur in real-time, allowing the first end-user client device and the one or more additional end-user client devices to display a substantially synchronized view of the 3-D project;

wherein more than one collaborative editing session at a time is enabled;

wherein the first additional end-user client device receives renderings reflective of the modification from at least one rendering client of a pool of the one or more rendering client devices;

wherein a number of the multiple client devices that are simultaneously collaborating is scalable based on a pool of the one or more rendering client devices that are allocated to one or more editing sessions.

2. The method of claim 1 further comprising:

communicating the modification to one of the one or more rendering client devices, wherein each rendering client device of the pool of one or more rendering client devices communicates with an application server;

generating, using the one rendering client device, rendered images representing 3-D scenes relating to the 3-D project;

distributing said rendered images to the multiple end-user client devices; and

displaying said rendered images on the multiple end-user client devices, wherein at least one of the multiple end-user client devices is not capable of generating the rendered images that the one rendering client device is capable of.

3. The method of claim 1 wherein:

asynchronous communication between different client devices occurs via a channel associated with the 3-D project;

the information representing the modification is distributed to client devices in the channel;

each client device in the channel applies the modification according to its role; and

application of the modification by each client device in the channel is asynchronously distributed to other client devices in the channel such that the application is available for consumption by the other client devices.

4. The method of claim 1 wherein:

the binary geometric data is stored in a storage server where it is associated with the GUID for the object.

5. A system for allowing multiple users to collaboratively edit 3-D projects in real-time using multiple client devices distributed over a network, the system including:

(a) the multiple client devices, the multiple client devices comprising one or more end-user client devices and one or more rendering client devices;

(b) a first end-user client device, of the one or more end-user client devices, the first end-user device comprising a processor, the first end-user client device operable to:

(1) provide a graphical user interface that receives user inputs to modify a 3-D project by creating or changing, in accordance with capabilities of the first end-user client device, 3-D assets belonging to the 3-D project by creating a modification, wherein objects are associated with the 3-D project, wherein the objects comprise a set of associated properties and parameters with associated numeric values including a unique and persistent identifier (GUID) for each respective object that is used across all of the multiple client devices to reference each respective object when distributing information representing modifications; wherein the 3-D project further comprises binary geometric data specifying geometric locations and orientations of geometric primitives that represent the objects, wherein the modification comprises first information representing the modification to a set of properties and parameters associated with an object of the 3-D project; and

(2) maintain a first end-user client relevant project state that represents project settings and data that are relevant to the first end-user client device, the first end-user client relevant project state including the binary geometric data;

(c) one or more additional end-user client devices, of the multiple client devices, each additional end-user client device operable to:

(1) receive the first information representing the modification from the first end-user client device over the network;

(2) maintain a respective additional client relevant project state comprising the set of associated properties and parameters with associated numeric values;

(3) display the 3-D project using a graphical user interface running on each additional end-user client device; and wherein:

each additional end-user client device is operable to receive and display the modification to the 3-D project in real-time, allowing the first end-user client device and the one or more additional end-user client devices to display a substantially synchronized view of the 3-D project as it is modified;

capabilities of the one or more additional end-user client devices are different from the capabilities of the first end-user client device; and

the one or more additional end-user client devices consume the modification, and at least one of the one or more additional end-user client devices does not download the binary geometric data but applies the modification to the set of associated properties and parameters with associated numeric values it maintains and receives renderings reflective of the modification from at least one rendering client of a pool of the one or more rendering client devices;

more than one collaborative editing session at a time is enabled;

a number of the multiple client devices that are simultaneously collaborating is scalable based on a pool of rendering client devices, of the one or more rendering client devices, that are allocated to one or more editing sessions.

6. The system of claim 5 , wherein:

the rendering client devices, in the pool of rendering client devices, are operable to receive the modification and to generate a rendered image representing a 3-D scene relating to the 3-D project, wherein the rendering client devices communicate with an application server;

wherein said one or more additional end-user client devices are operable to receive and display said rendered image, wherein the one or more additional end-user client devices are not capable of generating the rendered image that the rendering client devices are capable of.

7. The system of claim 5 , wherein:

asynchronous communication between different client devices occurs via a channel associated with the 3-D project;

the information representing the modification is distributed to client devices in the channel;

each client device in the channel applies the modification according to its role; and

application of the modification by each client device in the channel is asynchronously distributed to other client devices in the channel such that the application is available for consumption by the other client devices.

8. The system of claim 3 wherein:

the binary geometric data is stored in a storage server where it is associated with the GUID for the object.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2019
From: DA COSTA, THIAGO; ZINKE, ARNO; AMIHOD, DOV
To: TEAMUP TECHNOLOGIES, INC.
Reel/Frame 049325/0041 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2019
From: TEAMUP TECHNOLOGIES, INC.
To: AUTODESK, INC.
Reel/Frame 049325/0049 →
Continuity (4)
Continuation 14181376 · Feb 14, 2014
Provisional Application 61771473 · Mar 1, 2013
Provisional Application 61764871 · Feb 14, 2013
Related Publication 20190278459A1 · Sep 12, 2019