# US 12,223,471 B2 · Presence and collaboration tools for building information models

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,471 B2
- Document ID: US12223471B2
- Status: Granted
- Kind: B2
- Application number: 18/399,113
- Filed: 2023-12-28
- Published: 2024-07-11
- Granted: 2025-02-11
- Earliest claimed: 2020-03-20
- Assignees: Procore Technologies, Inc.
- Applicants: Procore Technologies, Inc.
- Inventors: Kevin McKee; Ben Burlingham
- Web page: https://patentgrep.com/patent/US12223471B2

## CPC

- G06Q 10/103: {Workflow collaboration or project management}
- G06F 30/13: Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
- G06T 17/10: Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
- G06T 17/20: Finite element generation, e.g. wire-frame surface description, {tesselation}
- G06T 19/00: Manipulating three-dimensional [3D] models or images for computer graphics
- G06F 2111/02: CAD in a network environment, e.g. collaborative CAD or distributed simulation
- G06T 2210/04: Architectural design, interior design
- G06T 2219/024: Multi-user, collaborative environment
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Facilitating collaboration on a 3D model of a construction project involves obtaining presence information that identifies each individual concurrently interacting with a respective rendered 3D model of the construction project via a respective client station and indicates a respective position and orientation at which the respective rendered 3D model is being rendered. Based on the presence information, a first client station presents a view of a first rendered 3D model including a visual representation of a second individual concurrently interacting with a second rendered 3D model and indicating the position and orientation of the second rendered 3D model. Based on a change in one or both of the position or orientation of the second rendered 3D model, the presence information is updated. The first client station updates the view of the first rendered 3D model to reflect the change in the position or orientation of the second rendered 3D model.

## Claims

### Claim 1

A computing platform comprising:
at least one processor;
at least one non-transitory computer-readable medium; and
program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
determine that a plurality of client stations each associated with a respective user are concurrently rendering a three-dimensional (3D) model of a given construction project;
provide, to each client station, respective presence information indicating (i) an identification of the respective user associated with each other client station concurrently rendering the 3D model, and (ii) a respective position and orientation at which each other client station is rendering the 3D model;
based on the respective presence information, cause each client station to display a view that includes (i) a representation of the respective user associated with each other client station concurrently rendering the 3D model and (ii) an indication of the respective position and orientation at which each other client station is rendering the 3D model;
receive, from a first client station of the plurality of client stations, an indication of a change in one or both of the position or orientation at which the first client station is rendering the 3D model;
based on the indication, update the respective presence information; and
based on updated respective presence information, cause at least a second client station of the plurality of client stations to display an updated view that reflects the change in one or both of the position or orientation at which the first client station is rendering the 3D model.

### Claim 2 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
before providing the respective presence information to each client station, receive respective initial presence information from each of the plurality of client stations.

### Claim 3 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
before causing the second client station to present the updated view that reflects the change in one or both of the position or orientation at which the first client station is rendering the 3D model, provide the updated respective presence information to at least the second client station.

### Claim 4 (depends on 1)

The computing platform of claim 1, wherein the representation of the respective user associated with each other client station concurrently rendering the 3D model comprises one or more of (i) a name of the respective user, (ii) a visual indicator of the respective user, or (iii) a real-time video of the respective user.

### Claim 5 (depends on 4)

The computing platform of claim 4, wherein the indication of the position and orientation at which each other client station is rendering the 3D model comprises the representation of the respective user being positioned at the position and orientation at which the other client station is rendering the 3D model.

### Claim 6 (depends on 1)

The computing platform of claim 1, wherein the respective presence information further comprises, for each other client station concurrently rendering the 3D model, one or more of (i) a client station type, (ii) a physical location associated with the client station, or (iii) a type of application that is being used to access the 3D model.

### Claim 7 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
detect a request from the first client station to monitor a respective view being displayed by the second client station; and
based on the request, cause the first client station to display a view that corresponds to the respective view being displayed by the second client station.

### Claim 8 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
detect a request from a given client station of the plurality of client stations to initiate a chat with each other client station concurrently rendering the 3D model; and
based on the request, facilitate the chat between the plurality of client stations.

### Claim 9 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
detect a request from a given client station of the plurality of client stations to share a captured portion of the 3D model; and
based on the request, cause each other client station of the plurality of client stations to display the captured portion of the 3D model.

### Claim 10 (depends on 1)

The computing platform of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:
determine an interaction between the respective user of a given client station of the plurality of client stations and a given physical element in the 3D model;
update the respective presence information to include information about the interaction; and
cause each other client station of the plurality of client stations to display an indication of the interaction between the respective user of the given client station and the given physical element.

### Claim 11 (depends on 10)

The computing platform of claim 10, wherein the interaction comprises creating a new coordination issue related to the given physical element, and wherein the indication of the interaction comprises a representation of the new coordination issue related to the given physical element.

### Claim 12

A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing platform to:
determine that a plurality of client stations each associated with a respective user are concurrently rendering a three-dimensional (3D) model of a given construction project;
provide, to each client station, respective presence information indicating (i) an identification of the respective user associated with each other client station concurrently rendering the 3D model, and (ii) a respective position and orientation at which each other client station is rendering the 3D model;
based on the respective presence information, cause each client station to display a view that includes (i) a representation of the respective user associated with each other client station concurrently rendering the 3D model and (ii) an indication of the respective position and orientation at which each other client station is rendering the 3D model;
receive, from a first client station of the plurality of client stations, an indication of a change in one or both of the position or orientation at which the first client station is rendering the 3D model;
based on the indication, update the respective presence information; and
based on updated respective presence information, cause at least a second client station of the plurality of client stations to display an updated view that reflects the change in one or both of the position or orientation at which the first client station is rendering the 3D model.

### Claim 13 (depends on 12)

The non-transitory computer-readable medium of claim 12, wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the computing platform to:
before providing the respective presence information to each client station, receive respective initial presence information from each of the plurality of client stations.

### Claim 14 (depends on 12)

The non-transitory computer-readable medium of claim 12, wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the computing platform to:
before causing the second client station to present the updated view that reflects the change in one or both of the position or orientation at which the first client station is rendering the 3D model, provide the updated respective presence information to at least the second client station.

### Claim 15 (depends on 12)

The non-transitory computer-readable medium of claim 12, wherein the representation of the respective user associated with each other client station concurrently rendering the 3D model comprises one or more of (i) a name of the respective user, (ii) a visual indicator of the respective user, or (iii) a real-time video of the respective user.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the indication of the position and orientation at which each other client station is rendering the 3D model comprises the representation of the respective user being positioned at the position and orientation at which the other client station is rendering the 3D model.

### Claim 17 (depends on 12)

The non-transitory computer-readable medium of claim 12, wherein the respective presence information further comprises, for each other client station concurrently rendering the 3D model, one or more of (i) a client station type, (ii) a physical location associated with the client station, or (iii) a type of application that is being used to access the 3D model.

### Claim 18

A method carried out by a computing platform, the method comprising:
determining that a plurality of client stations each associated with a respective user are concurrently rendering a three-dimensional (3D) model of a given construction project;
providing, to each client station, respective presence information indicating (i) an identification of the respective user associated with each other client station concurrently rendering the 3D model, and (ii) a respective position and orientation at which each other client station is rendering the 3D model;
based on the respective presence information, causing each client station to display a view that includes (i) a representation of the respective user associated with each other client station concurrently rendering the 3D model and (ii) an indication of the respective position and orientation at which each other client station is rendering the 3D model;
receiving, from a first client station of the plurality of client stations, an indication of a change in one or both of the position or orientation at which the first client station is rendering the 3D model;
based on the indication, updating the respective presence information; and
based on updated respective presence information, causing at least a second client station of the plurality of client stations to display an updated view that reflects the change in one or both of the position or orientation at which the first client station is rendering the 3D model.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
before providing the respective presence information to each client station, receiving respective initial presence information from each of the plurality of client stations.

### Claim 20 (depends on 18)

The method of claim 18, further comprising:
before causing the second client station to present the updated view that reflects the change in one or both of the position or orientation at which the first client station is rendering the 3D model, providing the updated respective presence information to at least the second client station.
