Collaborative development of a model on a network

US9323871B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9323871-B2
Application numberUS-201113169705-A
CountryUS
Kind codeB2
Filing dateJun 27, 2011
Priority dateJun 27, 2011
Publication dateApr 26, 2016
Grant dateApr 26, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An application programming interface (API) is provided for use with a modeling software. The API allows users at several devices operating on a network to collaboratively develop a model of an object or a group of objects. The API receives an indication that a selected component has been modified by the modeling software in accordance user commands, generates component data indicative of the modifications of the selected component, and causes an update indication to be transmitted to a collaboration server via a communication network to synchronize the selected component between the first computing device and a second computing device. The update indication may include a component identifier, such that the component identifier uniquely identifies the selected component in the model.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer usable memory storing an application programming interface (API) thereon for use with a software application for developing a three-dimensional (3D) model that is stored as model data and includes a plurality of components, each component having one or more elements, wherein the API includes a set of instructions that, when executed on a processor of a first computing device, cause the processor to: receive an indication that a selected one of the plurality of components has been modified by the software application in accordance with a set of one or more modification commands received from a user interface of the first computing device; generate component data including a linear listing of the one or more elements of the selected component such that the set of one or more modification commands applied to the selected component is specified relative to the one or more elements included in the selected component; and cause an update indication to be transmitted to a collaboration server via a communication network to synchronize the selected component between the first computing device and a second computing device, wherein the collaboration server is communicatively coupled to the first computing device and the second computing device, and wherein the update indication includes: the component data, and a component identifier that uniquely identifies the selected component. 2. The computer usable memory of claim 1 , wherein the instructions further cause the processor to: generate an operational transformation (OT) representation of the set of one or more modification commands applied to the selected component; and provide the OT representation in the update indication. 3. The computer usable memory of claim 1 , wherein the instructions further cause the processor to: receive an indication that the component has been selected for modification; and cause a lock request to be transmitted to the collaboration server in response to receiving the indication that the component has been selected for modification, including provide the component identifier in the lock request, whereby the collaboration server prevents modifications of the selected component by the second computing device. 4. The computer usable memory of claim 1 associated with a first memory component included in the first computing device, wherein: the second computing device includes a second memory component; each of the first computing device and the second computing device stores a respective copy of the model data respectively in the first memory component or the second memory component; and the instructions cause the processor to generate the component data using the copy of the model data stored in the first memory component. 5. The computer usable memory of claim 1 , wherein: the software application runs as a compiled executable on the first computing device; the API is provided as a plugin that extends a functionality of the software application; and the API is invoked from a script interpreted by the software application at runtime. 6. The computer usable memory of claim 1 , wherein the instructions further cause the processor to: generate an invitation for a user operating the second computing device to collaboratively develop the model, including: provide in the invitation an identifier of a user operating the first computing device, and provide in the invitation an identifier of the user operating the second computing device; cause the invitation to be transmitted to the collaboration server to be forwarded to the second computing device. 7. The computer usable memory of claim 2 , wherein the model data includes a hierarchical tree data structure having a plurality of branches corresponding to the plurality of respective components of the model. 8. The computer usable memory of claim 2 , wherein the OT representation is a first OT representation, and wherein the instructions further cause the processor to: receive an indication that the selected component has been modified at the second computing device, wherein the indication includes a second OT representation of modification commands applied to the selected component at the second computing device; and use the first OT representation and the second OT representation to modify the selected component in accordance with the set of modification commands applied to the selected component at the first computing device and the set of one or more modification commands applied to the selected component at the second computing device. 9. A method in a first computing device for developing a three-dimensional (3D) model in collaboration with a second computing device operating independently of the first computing device, wherein the model includes a plurality of components and wherein each component has one or more elements, the method comprising: causing the model to be stored on a computer-readable medium as model data including a hierarchical tree data structure having a plurality of branches corresponding to the plurality of respective components; in response to a selected component having been modified at the first computing device, generating a serialized representation of the branch that corresponds to the modified component; and causing the model to be synchronized between the first computing device and the second computing device, including causing an update indication to be transmitted to a collaboration server communicatively coupled to the first computing device and the second computing device, wherein the update indication includes the serialized representation of the branch and an indication of a set of transformation operations corresponding to modifications applied to particular elements within the modified component. 10. The method of claim 9 , wherein generating the serialized representation of the branch includes generating an entity identifier to uniquely identify the modified component at the first computing device and the second computing device. 11. The method of claim 9 , wherein generating the serialized representation of the branch includes generating a sequence of basic 3D shapes that make up the modified component to which the branch corresponds. 12. The method of claim 9 , further comprising: receiving a selection of the one of the plurality of components from a user interface of the first computing device; receiving a plurality of modification commands from the user interface, wherein the plurality of modification commands correspond to a set of one or more transformation operations to be performed on the selected component; and modifying the selected component in accordance with the set of one or more transformation operations. 13. The method of claim 9 , wherein causing the selected component to be synchronized comprises not including a serialized representation of unmodified components of the model in the update indication. 14. The method of claim 9 , further comprising causing a lock request to be transmitted to the collaboration server in response to receiving the selected component, wherein: a lock indication identifies the branch, and the collaboration server prevents modifications of the selected component by the second computing device. 15. The method of claim 9 , further comprising: receiving a selection of a plurality of elements from a user interface; receiving a request to group the selected plurality of elements; and in response to receiving the request, associating the selected plurality of elements with a single component. 16. The method of claim 9 , furth

Assignees

Inventors

Classifications

  • CAD in a network environment, e.g. collaborative CAD or distributed simulation · CPC title

  • G06F30/13Primary

    Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads · CPC title

  • Physics · mapped topic

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9323871B2 cover?
An application programming interface (API) is provided for use with a modeling software. The API allows users at several devices operating on a network to collaboratively develop a model of an object or a group of objects. The API receives an indication that a selected component has been modified by the modeling software in accordance user commands, generates component data indicative of the mo…
Who is the assignee on this patent?
Lininger Scott, Trimble Navigation Ltd
What technology area does this patent fall under?
Primary CPC classification G06F30/13. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 26 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).