IP Library Granted Patent US 9,223,593
Granted Patent B2
US 9,223,593 · App. 13/676,304 · Granted Dec 29, 2015

Efficient distribution of functional extensions to a 3D modeling software

Inventors: Tyler Miller (Denver, CO); John M. Bacus (Boulder, CO)
Assignee: Trimble Navigation Limited
G06F9/44526G06F3/1225G06F8/20G06F8/71G06F17/50
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 9,223,593
App. No.
13/676,304
Granted
Dec 29, 2015
Kind
B2
Abstract

Functional extensions are provided for use with a modeling software. The functional extensions provide functionality not otherwise provided by the modeling software. The functional extensions are received from a client device by a server and stored in a database. Thereafter, the server transmits the functional extensions to a second client device, sometimes in response to receiving a request for the functional extension from the second client device. The server may update a user profile to indicate that a functional extension was received from a user operating the client device and, additionally, may transmit the functional extension to the second client device when the server receives an indication that the user is operating the second client device.

Claims (97)

1. A method in a network server for extending functionality of three-dimensional (3D) modeling software, the method comprising:

receiving a functional extension to the 3D modeling software from a first client device via a communication network, wherein (i) the functional extension includes computer-readable instructions compatible with the 3D modeling software, (ii) the functional extension includes an identifier of a first user, and (iii) the functional extension provides a modeling function not provided by the 3D modeling software;

storing the functional extension in a database and updating a record associated with the first user in a client profile server to associate the received functional extension with the first user, wherein the record associated with the first user includes a list of functional extensions currently installed on the first client device and a list of extensions created by the first user, wherein the list of functional extensions currently installed on the first client device and the list of extensions created by the first user are different;

receiving from a second client device, via the communication network, a request to provide the functional extension; and

in response to receiving the request, providing the functional extension to the second client device.

2. The method of claim 1 , wherein receiving the functional extension includes receiving a plurality of non-compiled instructions interpretable at runtime.

3. The method of claim 2 , wherein:

the modeling software includes an application programming interface (API) that provides access to a plurality of functions of the 3D modeling software, and

the plurality of non-compiled instructions include a call to the API.

4. The method of claim 1 , wherein receiving a request to provide the functional extension from a second client device via the communication network comprises:

receiving from the second client device the identifier of the first user.

5. The method of claim 4 , wherein receiving a request to provide the functional extension from a second client device via the communication network comprises:

in response to receiving from the second client device the identifier of the first user, sending to the second device a list of extensions associated with the first user; and

receiving a request for the functional extension.

6. The method of claim 4 , wherein receiving a request to provide the functional extension from a second client device via the communication network comprises:

in response to receiving from the second client device the identifier of the first user, requesting a list of extensions currently installed on the second device;

receiving the list of extensions currently installed on the second device;

comparing the list of extensions currently installed on the second device to the record associated with the first user in the client profile server; and

determining that the functional extension is not installed on the second client device.

7. The method of claim 1 , wherein the 3D modeling software operates as a plug-in within a browser application.

8. A method in a network server for extending functionality of three-dimensional (3D) modeling software, the method comprising:

receiving a functional extension to the 3D modeling software from a first client device operated by a registered user via a communication network, wherein (i) the functional extension includes computer-readable instructions compatible with the 3D modeling software, (ii) the functional extension provides a modeling function not provided by the 3D modeling software, and (iii) the functional extension is installed on the first client device;

storing the functional extension in a database;

updating a record associated with the registered user in a profile server, including storing an indication that the functional extension was received from the registered user and that the functional extension has been installed on the first client device;

receiving an indication that the registered user is operating a second client device;

in response to receiving the indication that the registered user is operating the second client device, requesting a list of extensions currently installed on the second client device;

receiving the list of extensions currently installed on the second client device;

comparing the list of extensions currently installed on the second client device to the record associated with the first user in the profile server;

determining that the functional extension is not installed on the second client device;

and providing the functional extension to the second client device.

9. The method of claim 8 , wherein:

the 3D modeling software operates as a plug-in within a browser application, and the functional extension is a script interpreted at runtime within the browser application.

10. The method of claim 8 , further comprising providing the functional extension to a second user operating a third client device in response to receiving a request for the functional extension from the second user.

11. The method of claim 8 , further comprising:

in response to receiving the indication that the registered user is operating the second client device, sending to the second device a list of extensions associated with the first user.

12. A tangible, computer-readable medium storing instructions, executable by a processor to perform a method in a network server for extending functionality of three-dimensional (3D) modeling software, the instructions operable to cause the processor to:

receive a functional extension to the 3D modeling software from a first client device via a communication network, wherein (i) the functional extension includes computer-readable instructions compatible with the 3D modeling software, (ii) the functional extension includes an identifier of a first user, and (iii) the functional extension provides a modeling function not provided by the 3D modeling software;

store the functional extension in a database and update a record associated with the first user in a client profile server to associate the received functional extension with the first user, wherein the record associated with the first user includes a list of functional extensions currently installed on the first client device;

receive from a second client device, via the communication network, a request to provide the functional extension; and

in response to receiving the request, providing the functional extension to the second client device.

13. The computer-readable medium of claim 12 , wherein instructions operable to cause the processor to receive the functional extension include instructions operable to cause the processor to receive a plurality of non-compiled instructions interpretable at runtime.

14. The computer-readable medium of claim 13 , wherein:

the 3D modeling software includes an application programming interface (API) that provides access to a plurality of functions of the 3D modeling software, and

the plurality of non-compiled instructions include a call to the API.

15. The computer-readable medium of claim 12 , wherein the instructions operable to cause the processor to receive a request to provide the functional extension from a second client device via the communication network comprise instructions operable to cause the processor to receive from the second client device the identifier of the first user.

16. The computer-readable medium of claim 15 , wherein the instructions operable to cause the processor to receive a request to provide the functional extension from a second client device via the communication network comprise instructions operable to cause the processor to:

in response to receiving from the second client device the identifier of the first user, send to the second device a list of extensions associated with the first user; and

receive a request for the functional extension.

17. The computer-readable medium of claim 15 , wherein the instructions operable to cause the processor to receive a request to provide the functional extension from a second client device via the communication network comprise instructions operable to cause the processor to:

in response to receiving from the second client device the identifier of the first user, request a list of extensions currently installed on the second client device;

receive the list of extensions currently installed on the second client device;

compare the list of extensions currently installed on the second client device to the record associated with the first user in the client profile server; and

determine that the functional extension is not installed on the second client device.

18. The computer-readable medium of claim 12 , wherein the 3D modeling software operates as a plug-in within a browser application.

19. A tangible, computer-readable medium storing instructions, executable by a processor to perform a method in a network server for extending functionality of three-dimensional (3D) modeling software, the instructions operable to cause the processor to:

receive a functional extension to the 3D modeling software from a first client device operated by a registered user via a communication network, wherein (i) the functional extension includes computer-readable instructions compatible with the 3D modeling software, (ii) the functional extension provides a modeling function not provided by the 3D modeling software, and (iii) the functional extension is installed on the first client device;

store the functional extension in a database;

update a record associated with the registered user in a profile server, including storing an indication that the functional extension was received from the registered user and that the functional extension has been installed on the first client device;

receive an indication that the registered user is operating a second client device;

in response to receiving the indication that the registered user is operating the second client device, send to the second device a list of extensions associated with the first user;

receive a request for the functional extension; and

provide the functional extension to the second client device.

20. The computer-readable medium of claim 19 , wherein:

the 3D modeling software operates as a plug-in within a browser application, and the functional extension is a script interpreted at runtime within the browser application.

21. The computer-readable medium of claim 19 , further comprising instructions operable to cause the processor to provide the functional extension to a second user operating a third client device in response to receiving a request for the functional extension from the second user.

22. The computer-readable medium of claim 19 , further comprising instructions operable to cause the processor to:

in response to receiving the indication that the registered user is operating the second client device, request a list of extensions currently installed on the second device;

receive the list of extensions currently installed on the second device; and

compare the list of extensions currently installed on the second device to the record associated with the first user in the profile server.

23. A method in a network server for extending functionality of three-dimensional (3D) modeling software, the method comprising:

storing in a database a functional extension to the 3D modeling software, wherein (i) the functional extension includes computer-readable instructions compatible with the 3D modeling software, and (ii) the functional extension provides a modeling function not provided by the 3D modeling software;

receiving a request from a first client device operated by a first user to provide the functional extension via the communication network;

receiving a list of extensions currently installed on the first client device;

comparing the list of extensions currently installed on the first client device to a record associated with the first user;

determining that the functional extension is not in the list of extensions currently installed on the first client device;

providing the functional extension to the first client device;

receiving a list of extensions currently installed on the second client device;

comparing the list of extensions currently installed on the second client device to the record associated with the first user;

determining that the functional extension is not in the list of extensions currently installed on the second client device; and

providing the functional extension to the second client device operated by the first user.

24. The method of claim 23 , further comprising:

receiving from the first client device an identifier of the first user; and

updating a record associated with the first user in a client profile server to associate the received functional extension with the first user.

25. The method of claim 24 , further comprising:

receiving an indication that the first user has installed the functional extension on the first client device; and

updating the record associated with the first user in the client profile server to reflect that the functional extension is installed on the first client device.

26. The method of claim 24 , further comprising:

receiving from the second client device the identifier of the first user.

27. The method of claim 23 , wherein the functional extension includes receiving a plurality of non-compiled instructions interpretable at runtime.

28. The method of claim 27 , wherein:

the 3D modeling software includes an application programming interface (API) that provides access to a plurality of functions of the 3D modeling software, and

the plurality of non-compiled instructions include a call to the API.

29. The method of claim 23 , wherein the 3D modeling software operates as a plug-in within a browser application.

30. The method of claim 23 , wherein providing the functional extension to the second client device operated by the first user comprises:

sending to the second device a list of extensions associated with the first user.

31. The method of claim 23 , wherein providing the functional extension to the second client device operated by the first user comprises:

requesting a list of extensions currently installed on the second client device.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE REMOVAL OF THE INCORRECTLY RECORDED APPLICATION NUMBERS 14/149802 AND 15/419313 PREVIOUSLY RECORDED AT REEL: 44144 FRAME: 1. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 4, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 068092/0502 →
CHANGE OF NAME Recorded Oct 6, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044144/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2013
From: GOOGLE INC.
To: TRIMBLE NAVIGATION LIMITED
Reel/Frame 029898/0723 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2012
From: MILLER, TYLER; BACUS, JOHN M.
To: GOOGLE INC.
Reel/Frame 029304/0915 →
Continuity (2)
Provisional Application 61560086 · Nov 15, 2011
Related Publication 20130124700A1 · May 16, 2013