# US 12,217,355 B1 · Systems and methods for optimized streaming of three-dimensional content

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

- Number: US 12,217,355 B1
- Document ID: US12217355B1
- Status: Granted
- Kind: B1
- Application number: 18/412,666
- Filed: 2024-01-15
- Granted: 2025-02-04
- Earliest claimed: 2024-01-15
- Assignees: Illuscio, Inc.
- Applicants: Illuscio, Inc.
- Inventors: Pedro Alfonso
- Web page: https://patentgrep.com/patent/US12217355B1

## CPC

- G06T 15/20: Perspective computation
- G06T 9/00: Image coding (bandwidth or redundancy reduction for static pictures H04N1/41; coding or decoding of static colour picture signals H04N1/64; methods or arrangements for coding, decoding, compressing or decompressing digital video signals H04N19/00)
- G06T 9/001: {Model-based coding, e.g. wire frame}
- 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
- H04L 65/613: for the control of the source by the destination (control signals issued by the client directed to the server or network components specially adapted for selective content distribution H04N21/637)
- H04L 65/80: Responding to QoS
- G06T 2200/16: involving adaptation to the client's capabilities
- G06T 2210/56: Particle system, point based geometry or rendering
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A three-dimensional (3D) streaming system and associated methods optimize 3D content streaming to remote devices by receiving 3D data that is distributed across a 3D space. The system partitions the 3D space into different regions, and compresses a different subset of the 3D data that is within each partitioned region as a separate compressed file. The system receives a request for a particular field-of-view in the 3D space and streams a set of compressed files that contain the different subset of 3D data for a set of the partitioned regions within the particular field-of-view. In response to a request for an updated field-of-view with a region that is not within the particular field-of-view, the system selects the compressed file that contains the 3D data within that region and streams the selected compressed file in response to the request for the updated field-of-view.

## Claims

### Claim 1

A method comprising:
receiving a three-dimensional (3D) animation that defines a plurality of 3D data distributed across a 3D space at different times of the 3D animation;
partitioning the 3D space into a plurality of regions;
generating a plurality of compressed files by compressing a different subset of 3D data from the plurality of 3D data that is within one or more different regions of the plurality of regions at a different time of the 3D animation as a separate compressed file of the plurality of compressed files based on the amount of 3D data contained in the one or more different regions;
associating each compressed file of the plurality of compressed files with an identifier and a time element, wherein the identifier of a particular compressed file identifies the one or more regions represented by the particular compressed file, and wherein the time element of the particular compressed file specifies the different time of the 3D animation at which the different subset of 3D data in the one or more regions represented by the particular compressed file is presented in the 3D animation;
receiving a request for a first region, a second region, and a third region of the plurality of regions that form all or part of a particular field-of-view in the 3D space at a first time in the 3D animation; and
streaming a set of compressed files from the plurality of compressed files that contain the different subset of 3D data for the first, second, and third regions within the particular field-of-view at the first time in the 3D animation, wherein streaming the set of compressed files comprises:
streaming a first compressed file with the different subset of 3D data for the first region and with the time element associated with the first compressed file corresponding to the first time that is specified in the request for the 3D animation; and
streaming a second compressed file with the different subset of 3D data for the second region and the different subset of 3D data for the third region and with the time element associated with the second compressed file corresponding to the first time that is specified in the request for the 3D animation.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
determining that the particular field-of-view spans the 3D space encompassed by the first, second, and third regions;
selecting, in response to the request, a first set of compressed files from the plurality of compressed files that were generated from compressing the different subset of 3D data in the first, second, and third regions at the different times of the 3D animation; and
filtering the first set of compressed files to a second set of compressed files by retaining the set of compressed files from the first set of compressed files with the time element being associated with the first time requested for the particular field-of-view and by excluding one or more compressed files in the first set of compressed files from the second set of compressed files with the time element being associated with a different time of the 3D animation than the first time.

### Claim 3 (depends on 1)

The method of claim 1 further comprising:
generating a tree-based representation for the 3D space of the 3D animation, wherein the tree-based representation comprises a plurality of nodes at different layers that map to different sized regions in the 3D space.

### Claim 4 (depends on 3)

The method of claim 3, wherein generating the tree-based representation comprises:
defining each node of the plurality of nodes with an index that corresponds to a different region of the plurality of regions and a time at which the node applies to the 3D animation.

### Claim 5 (depends on 3)

The method of claim 3 further comprising:
receiving a request to access the 3D animation prior to receiving the request for the particular field-of-view;
providing the tree-based representation in response to the request to access the 3D animation; and
wherein receiving the request for the particular field-of-view comprises receiving indices of a set of nodes from the plurality of nodes that map to the first, second, and third regions and a value for the first time.

### Claim 6 (depends on 5)

The method of claim 5, wherein streaming the set of compressed files comprises:
selecting the first compressed file from a node at a first level in the tree-based representation and the second compressed file from a node at a different second level in the tree-based representation based on the indices of the set of nodes.

### Claim 7 (depends on 1)

The method of claim 1 further comprising:
mapping each region of the plurality of regions to a different node from a plurality of nodes of a tree-based representation of the 3D space; and
wherein generating the plurality of compressed files comprises:
associating a common identifier to a particular compressed file that contains the different subset of 3D data in a particular region of the 3D space and to a particular node of the plurality of nodes that maps to the particular region.

### Claim 8 (depends on 7)

The method of claim 7, wherein receiving the request comprises:
receiving the common identifier as part of the request; and
selecting the particular compressed file.

### Claim 9 (depends on 1)

The method of claim 1,
wherein partitioning the 3D space comprises:
defining each region of the plurality of regions to span an equal sized volume of the 3D space;
wherein generating the plurality of compressed files comprises:
defining each file of the plurality of compressed files with the different subset of 3D data from one or more neighboring regions until a total amount of 3D amount within the one or more neighboring regions is no more than a threshold amount of the plurality of 3D data.

### Claim 10 (depends on 1)

The method of claim 1, wherein partitioning the 3D space comprises:
selecting each region of the plurality of regions so that the different subset of 3D data associated with each region that is selected does not exceed a threshold amount of 3D data.

### Claim 11 (depends on 1)

The method of claim 1,
wherein the plurality of 3D data comprises a plurality of points of a point cloud that are disconnected from one another and that are each defined with a position in the 3D space and visual characteristics for the position in the 3D space; and
wherein generating the plurality of compressed files comprises:
encoding the first compressed file with the position and the visual characteristics of two more points from the plurality of points that are defined in the first region for the first time of the 3D animation, wherein the first compressed file contains all positional and color data contained in the first region for the first time of the 3D animation.

### Claim 12 (depends on 1)

The method of claim 1 further comprising:
receiving a request for an updated field-of-view with one or more regions that are not within the particular field-of-view;
selecting a second set of compressed files from the plurality of compressed files that contain the different subset of 3D data that is within each region of the one or more regions; and
streaming the second set of compressed files in response to the request for the updated field-of-view.

### Claim 13 (depends on 1)

The method of claim 1, wherein a given compressed file from the set of compressed files comprises:
coordinates of two or more point cloud points that are defined in the region of the 3D space spanned by the given compressed file; and
color values for the two or more point cloud points, wherein the coordinates and the color values of the given compressed file comprise all data for rendering a visualization of the region spanned by the given compressed file.

### Claim 14 (depends on 1)

The method of claim 1 further comprising:
receiving a request for the first, second, and third regions of the particular field-of-view in the 3D space at a second time that is after the first time in the 3D animation;
determining that the different subset of 3D data associated with the first region and the different subset of 3D data associated with the second region do not change from the first time to the second time;
determining that the different subset of 3D data associated with the third region changes from the first time to the second time; and
streaming a third compressed file without any compressed files for the first and second regions in response to the request for the particular field-of-view at the second time, wherein the third compressed file comprises 3D data that has changed in the third region from the first time to the second time.

### Claim 15 (depends on 1)

The method of claim 1 further comprising:
determining that the different subset of 3D data associated with the first region and the different subset of 3D data associated with the second region do not change from the first time to a second time that is after the first time in the 3D animation;
determining that the different subset of 3D data associated with the third region changes from the first time to the second time;
generating a manifest that lists the first compressed file for the first region at the first time and the second time, the second compressed file for the second region at the first time and the second time, the second compressed file for the third region at the first time, and a third compressed file for the third region at the second time; and
streaming the manifest in response to a request to access the 3D animation prior to receiving the request for the particular field-of-view.

### Claim 16 (depends on 1)

The method of claim 1 further comprising:
receiving a request for the first, second, and third regions of the particular field-of-view in the 3D space at a second time that is after the first time in the 3D animation;
determining that no compressed file is defined for the first region or the second region at the second time and that a third compressed file is defined for the third region at the second time; and
streaming the third compressed file in response to the request for the particular field-of-view in the 3D space at the second time.

### Claim 17

A three-dimensional (3D) streaming system comprising:
one or more hardware processors configured to:
receive a 3D animation that defines a plurality of 3D data distributed across a 3D space at different times of the 3D animation;
partition the 3D space into a plurality of regions;
generate a plurality of compressed files by compressing a different subset of 3D data from the plurality of 3D data that is within one or more different regions of the plurality of regions at a different time of the 3D animation as a separate compressed file of the plurality of compressed files based on the amount of 3D data contained in the one or more different regions;
associate each compressed file of the plurality of compressed files with an identifier and a time element, wherein the identifier of a particular compressed file identifies the one or more regions represented by the particular compressed file, and wherein the time element of the particular compressed file specifies the different time of the 3D animation at which the different subset of 3D data in the one or more regions represented by the particular compressed file is presented in the 3D animation;
receive a request for a first region, a second region, and a third region of the plurality of regions that form all or part of a particular field-of-view in the 3D space at a first time in the 3D animation; and
stream a set of compressed files from the plurality of compressed files that contain the different subset of 3D data for the first, second, and third regions within the particular field-of-view at the first time in the 3D animation, wherein streaming the set of compressed files comprises:
streaming a first compressed file with the different subset of 3D data for the first region and with the time element associated with the first compressed file corresponding to the first time that is specified in the request for the 3D animation; and
streaming a second compressed file with the different subset of 3D data for the second region and the different subset of 3D data for the third region and with the time element associated with the second compressed file corresponding to the first time that is specified in the request for the 3D animation.

### Claim 18 (depends on 17)

The 3D streaming system of claim 17, wherein the one or more hardware processors are further configured to:
determine that the particular field-of-view spans the 3D space encompassed by the first, second, and third regions;
select, in response to the request, a first set of compressed files from the plurality of compressed files that were generated from compressing the different subset of 3D data in the first, second, and third regions at the different times of the 3D animation; and
filter the first set of compressed files to a second set of compressed files by retaining the set of compressed files from the first set of compressed files with the time element being associated with the first time requested for the particular field-of-view and by excluding one or more compressed files in the first set of compressed files from the second set of compressed files with the time elements being associated with a different time of the 3D animation than the first time.

### Claim 19 (depends on 17)

The 3D streaming system of claim 17, wherein the one or more hardware processors are further configured to:
generate a tree-based representation for the 3D space of the 3D animation, wherein the tree-based representation comprises a plurality of nodes at different layers that map to different sized regions in the 3D space.

### Claim 20

A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a three-dimensional (3D) streaming system, cause the 3D streaming system to perform operations comprising:
receiving a 3D animation that defines a plurality of 3D data distributed across a 3D space at different times of the 3D animation;
partitioning the 3D space into a plurality of regions;
generating a plurality of compressed files by compressing a different subset of 3D data from the plurality of 3D data that is within one or more different regions of the plurality of regions at a different time of the 3D animation as a separate compressed file of the plurality of compressed files based on the amount of 3D data contained in the one or more different regions;
associate each compressed file of the plurality of compressed files with an identifier and a time element, wherein the identifier of a particular compressed file identifies the one or more regions represented by the particular compressed file, and wherein the time element of the particular compressed file specifies the different time of the 3D animation at which the different subset of 3D data in the one or more regions represented by the particular compressed file is presented in the 3D animation;
receiving a request for a first region, a second region, and a third region of the plurality of regions that form all or part of a particular field-of-view in the 3D space at a first time in the 3D animation; and
streaming a set of compressed files from the plurality of compressed files that contain the different subset of 3D data for the first, second, and third regions within the particular field-of-view at the first time in the 3D animation, wherein streaming the set of compressed files comprises:
streaming a first compressed file with the different subset of 3D data for the first region and with the time element associated with the first compressed file corresponding to the first time that is specified in the request for the 3D animation; and
streaming a second compressed file with the different subset of 3D data for the second region and the different subset of 3D data for the third region and with the time element associated with the second compressed file corresponding to the first time that is specified in the request for the 3D animation.
