IP Library › Granted Patent US 12,737,990
Granted Patent B1
US 12,737,990 · App. 19/381,531 · Granted Sep 15, 2026

Systems and methods for dynamic three-dimensional content prefetching and cache eviction

Inventors: Daniel T. Vijayakumar (Peterborough, CA); Rodney David Smith (Draper, UT)
Assignee: Miris, Inc.
G06T19/003
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 12,737,990
App. No.
19/381,531
Granted
Sep 15, 2026
Kind
B1
Abstract

Disclosed is a system and associated methods for dynamic three-dimensional (3D) content prefetching and cache eviction. The prefetching includes a streaming system receiving the 3D content and determining navigable paths within the 3D space of the 3D content. The streaming system receives a request to present the 3D content from a particular field-of-view and streams a first set of primitives that are positioned within the particular field-of-view to the requesting client device in response to the request. The streaming system prefetches a second set of primitives that are positioned outside the particular field-of-view, that are positioned nearest to a particular navigable path in the particular field-of-view, and that have proximity to a current position about the particular navigable path associated with the particular field-of-view, and streams the second set of primitives to the client device while the particular field-of-view remains unchanged.

Claims (73)

1 . A method comprising:

receiving three-dimensional (3D) content comprising a plurality of primitives defined in a 3D space;

determining one or more navigable paths within the 3D space of the 3D content without user input, wherein determining the one or more navigable paths comprises detecting connected regions in the 3D space of the 3D content that do not obstruct movement of a virtual camera based on an analysis of the plurality of primitives;

receiving a first request from a client device to present the 3D content from a first field-of-view based on a first position about a particular navigable path from the one or more navigable paths;

providing the client device with a manifest that lists first priority values for the plurality of primitives, wherein the first priority value for a first priority value primitive from the plurality of primitives is adjusted based on a distance of the first priority value primitive to the first position about the particular navigable path and an amount by which the first priority value primitive is obstructed from the particular navigable path;

streaming a first set of primitives from the plurality of primitives that are positioned within the first field-of-view to the client device over a data network;

prefetching a second set of primitives from the plurality of primitives that are positioned outside the first field-of-view based on the first priority values of the second set of primitives in the manifest being greater than the first priority values of other primitives listed in the manifest, wherein the first priority values of the second set of primitives indicate that the second set of primitives are exposed to the particular navigable path in the first field-of-view without another primitive being positioned between each primitive of the second set of primitives and the particular navigable path;

streaming the second set of primitives to the client device over the data network while the first field-of-view remains unchanged;

receiving a second request from the client device to present the 3D content from a second field-of-view based on a second position about the particular navigable path; and

providing the client device with an updated manifest that adjusts the first priority values to second priority values for the plurality of primitives, wherein the second priority value for a second priority value primitive from the plurality of primitives is adjusted based on a distance of the second priority value primitive to the second position and an amount by which the corresponding second priority value primitive is obstructed from the particular navigable path.

2 . The method of claim 1 further comprising:

adjusting the first priority value for each particular primitive of the plurality of primitives based on a degree with which a surface normal of the particular primitive is directed to the first position about the particular navigable path.

3 . The method of claim 2 further comprising:

adjusting the first priority value for each individual primitive of the plurality of primitives based on a distance between the individual primitive and the particular navigable path.

4 . The method of claim 1 further comprising:

adjusting the first priority value for each primitive based on an offset between a direction that each primitive of the plurality of primitives faces and the particular navigable path.

5 . The method of claim 4 further comprising:

receiving prefetch requests from the client device for the second set of primitives that have greater first priority values in the manifest than the other primitives of the plurality of primitives.

6 . The method of claim 1 , wherein determining the one or more navigable paths further comprises:

defining the one or more navigable paths in between different sets of primitives that are separated by a distance.

7 . The method of claim 1 , wherein determining the one or more navigable paths further comprises:

defining the one or more navigable paths based on regions in the 3D space in which the plurality of primitives are not positioned above a ground plane.

8 . The method of claim 1 further comprising:

detecting a third set of primitives from the plurality of primitives that are closer to the first position about the particular navigable path than the second set of primitives and that are obstructed from the particular navigable path by one or more other primitives; and

decreasing the first priority values of the third set of primitives to be less than the first priority values of the second set of primitives based on the third set of primitives being obstructed from the particular navigable path and the second set of primitives being unobstructed from the particular navigable path.

9 . The method of claim 1 further comprising:

prioritizing the plurality of primitives for prefetching based on their distance from the particular navigable path;

receiving a request for an updated field-of-view that is associated with a second navigable path of the one or more navigable paths that is different than the particular navigable path; and

reprioritizing the plurality of primitives for prefetching based on their distance from the second navigable path.

10 . The method of claim 9 ,

wherein prioritizing the plurality of primitives comprises assigning a first set of priority values to the plurality of primitives based on their distance from the particular navigable path; and

wherein reprioritizing the plurality of primitives comprises assigning a second set of priority values to the plurality of primitives based on their distance from the second navigable path.

11 . The method of claim 9 further comprising:

streaming a third set of primitives from the plurality of primitives that are positioned within the updated field-of-view to the client device;

prefetching a fourth set of primitives from the plurality of primitives that are positioned outside the updated field-of-view, that are positioned nearest to the second navigable path in the updated field-of-view, and that have proximity to a current position about the second navigable path associated with the updated field-of-view; and

streaming the fourth set of primitives to the client device over the data network while the updated field-of-view remains unchanged.

12 . The method of claim 1 , wherein streaming the second set of primitives comprises:

streaming a first subset of the second set of primitives at a first level-of-detail (LoD); and

streaming a second subset of the second set of primitives at a second LoD that is less than the first LoD in response to the first subset being closer to the first position about the particular navigable path than the second subset.

13 . The method of claim 1 , wherein streaming the second set of primitives comprises:

streaming a first subset of the second set of primitives at a first LoD; and

streaming a second subset of the second set of primitives at a second LoD that is less than the first LoD in response to the first subset being closer to the particular navigable path than the second subset.

14 . The method of claim 1 further comprising:

adjusting the first priority values for the plurality of primitives by increasing the first priority value for a primitive with a surface normal that is directed towards the particular navigable path and by decreasing the first priority value for a primitive with a surface normal that is directed away from the particular navigable path.

15 . A streaming system comprising:

one or more hardware processors configured to:

receive three-dimensional (3D) content comprising a plurality of primitives defined in a 3D space;

determine one or more navigable paths within the 3D space of the 3D content without user input, wherein determining the one or more navigable paths comprises detecting connected regions in the 3D space of the 3D content that do not obstruct movement of a virtual camera based on an analysis of the plurality of primitives;

receive a first request from a client device to present the 3D content from a first field-of-view based on a first position about a particular navigable path from the one or more navigable paths;

provide the client device with a manifest that lists first priority values for the plurality of primitives, wherein the first priority value for a first priority value primitive from the plurality of primitives is adjusted based on a distance of the first priority value primitive to the first position about the particular navigable path and an amount by which the first priority value primitive is obstructed from the particular navigable path;

stream a first set of primitives from the plurality of primitives that are positioned within the first field-of-view to the client device over a data network;

prefetch a second set of primitives from the plurality of primitives that are positioned outside the first field-of-view based on the first priority values of the second set of primitives in the manifest being greater than the first priority values of other primitives listed in the manifest, wherein the first priority values of the second set of primitives indicate that the second set of primitives are exposed to the particular navigable path in the first field-of-view without another primitive being positioned between each primitive of the second set of primitives and the particular navigable path;

stream the second set of primitives to the client device over the data network while the first field-of-view remains unchanged;

receive a second request from the client device to present the 3D content from a second field-of-view based on a second position about the particular navigable path; and

provide the client device with an updated manifest that adjusts the first priority values to second priority values for the plurality of primitives, wherein the second priority value for a second priority value primitive from the plurality of primitives is adjusted based on a distance of the second priority value primitive to the second position and an amount by which the corresponding second priority value primitive is obstructed from the particular navigable path.

16 . The streaming system of claim 15 , wherein the one or more hardware processors are further configured to:

adjust the first priority value for each particular primitive of the plurality of primitives based on a degree with which a surface normal of the particular primitive is directed to the first position about the particular navigable path.

17 . The streaming system of claim 16 , wherein the one or more hardware processors are further configured to:

adjust the first priority value for each individual primitive of the plurality of primitives based on a distance between the individual primitive and the particular navigable path.

18 . The streaming system of claim 15 , wherein the one or more hardware processors are further configured to:

adjust the first priority value for each primitive based on an offset between a direction that each primitive of the plurality of primitives faces and the particular navigable path.

19 . The streaming system of claim 18 , wherein the one or more hardware processors are further configured to:

receive prefetch requests from the client device for the second set of primitives that have greater first priority values in the manifest than the other primitives of the plurality of primitives.

20 . A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a streaming system, cause the streaming system to perform operations comprising:

receiving three-dimensional (3D) content comprising a plurality of primitives defined in a 3D space;

determining one or more navigable paths within the 3D space of the 3D content without user input, wherein determining the one or more navigable paths comprises detecting connected regions in the 3D space of the 3D content that do not obstruct movement of a virtual camera based on an analysis of the plurality of primitives;

receiving a first request from a client device to present the 3D content from a first field-of-view based on a first position about a particular navigable path from the one or more navigable paths;

providing the client device with a manifest that lists first priority values for the plurality of primitives, wherein the first priority value for a first priority value primitive from the plurality of primitives is adjusted based on a distance of the first priority value primitive to the first position about the particular navigable path and an amount by which the first priority value primitive is obstructed from the particular navigable path;

streaming a first set of primitives from the plurality of primitives that are positioned within the first field-of-view to the client device over a data network;

prefetching a second set of primitives from the plurality of primitives that are positioned outside the first field-of-view based on the first priority values of the second set of primitives in the manifest being greater than the first priority values of other primitives listed in the manifest, wherein the first priority values of the second set of primitives indicate that the second set of primitives are exposed to the particular navigable path in the first field-of-view without another primitive being positioned between each primitive of the second set of primitives and the particular navigable path;

streaming the second set of primitives to the client device over the data network while the first field-of-view remains unchanged;

receiving a second request from the client device to present the 3D content from a second field-of-view based on a second position about the particular navigable path; and

providing the client device with an updated manifest that adjusts the first priority values to second priority values for the plurality of primitives, wherein the second priority value for a second priority value primitive from the plurality of primitives is adjusted based on a distance of the second priority value primitive to the second position and an amount by which the corresponding second priority value primitive is obstructed from the particular navigable path.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2025
From: VIJAYAKUMAR, DANIEL T; SMITH, RODNEY DAVID
To: MIRIS, INC.
Reel/Frame 072810/0618 →
References Cited (4)
US 12380647B1 · Looper · 2025 [cited by examiner]
US 20160155260A1 · Jenkins · 2016 [cited by examiner]
US 20210375062A1 · Fleischman · 2021 [cited by examiner]
US 20250157132A1 · Morel · 2025 [cited by examiner]