Skip to content

Commit a4f0fbd

Browse files
committed
Add 3DGS certified query render plan
1 parent a8d5df2 commit a4f0fbd

1 file changed

Lines changed: 159 additions & 0 deletions

File tree

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# 3DGS Certified Query and Render Plan — lance-graph
2+
3+
## Goal
4+
5+
Make 3DGS rendering and querying decisions auditable.
6+
7+
A traversal decision should not only say what to render. It should also say why the approximation is acceptable or why refinement is required.
8+
9+
## Core idea
10+
11+
```text
12+
visual error
13+
+ sampling error
14+
+ covariance error
15+
+ quantization error
16+
+ weak-dependence inflation
17+
+ query relevance
18+
= certified decision
19+
```
20+
21+
## Decision scopes
22+
23+
Certificates can apply to:
24+
25+
- tile
26+
- content payload
27+
- splat block
28+
- feature overlay
29+
- traversal decision
30+
- query result
31+
32+
## Decision report
33+
34+
```text
35+
tile_id
36+
content_id
37+
block_id optional
38+
action
39+
priority
40+
screen_space_error_px
41+
certified_error_px optional
42+
confidence optional
43+
reason_codes
44+
source_certificate_ids
45+
```
46+
47+
## Runtime stages
48+
49+
### Stage 1: metadata-only decision
50+
51+
Uses only tile metadata:
52+
53+
- bounding volume
54+
- geometric error
55+
- camera distance
56+
- content type
57+
- content size
58+
- existing stored certificates
59+
60+
### Stage 2: block preflight decision
61+
62+
Loads block stats but not full splat payload:
63+
64+
- splat count
65+
- block bounds
66+
- covariance eigenvalue range
67+
- quantization error stats
68+
- opacity/density estimates
69+
70+
### Stage 3: exact ndarray decision
71+
72+
Calls ndarray kernels:
73+
74+
- HHTL block scoring
75+
- 3DGS projection report
76+
- splat/block certificate
77+
78+
### Stage 4: persisted decision
79+
80+
Writes optional `tile_decisions` row for debug or repeatability.
81+
82+
## Query integration
83+
84+
A query should be able to influence traversal.
85+
86+
Examples:
87+
88+
- render only tiles containing buildings
89+
- refine tiles containing assets changed after a date
90+
- reject splat blocks below confidence threshold
91+
- prioritize tiles near selected feature IDs
92+
93+
SQL shape:
94+
95+
```sql
96+
SELECT tile_id
97+
FROM features
98+
WHERE class = 'building'
99+
```
100+
101+
Graph shape:
102+
103+
```cypher
104+
MATCH (t:Tile)-[:HAS_CONTENT]->(c:Content)
105+
WHERE c.content_kind = 'GaussianSplat3d'
106+
RETURN t.tile_id
107+
```
108+
109+
## Certificate aggregation
110+
111+
Block-level certificates come from ndarray.
112+
113+
Tile-level certificates aggregate:
114+
115+
- max block error
116+
- weighted mean block error
117+
- minimum confidence
118+
- failure reason union
119+
- query relevance score
120+
121+
Aggregation should be deterministic.
122+
123+
## Policy knobs
124+
125+
```text
126+
maximum_screen_space_error_px
127+
maximum_certified_error_px
128+
minimum_confidence
129+
allow_uncertified_tiles
130+
allow_metadata_only_decisions
131+
query_relevance_weight
132+
motion_relaxation_factor
133+
foveated_relaxation_factor
134+
```
135+
136+
## Failure policy
137+
138+
When certification fails, choose one:
139+
140+
- reject tile
141+
- refine tile
142+
- render coarse fallback
143+
- render with warning report
144+
- require exact projection
145+
146+
The policy should be explicit in the traversal budget.
147+
148+
## Acceptance criteria
149+
150+
- Every traversal decision has reason codes.
151+
- Metadata-only traversal works without loading splat payloads.
152+
- Exact mode can call ndarray certification kernels.
153+
- Stored certificates can be reused.
154+
- Query predicates can influence tile priority.
155+
- Decision reports can be persisted and replayed.
156+
157+
## Product implication
158+
159+
This creates a runtime where visual approximation is not a hidden heuristic. It is inspectable, repeatable, and query-aware.

0 commit comments

Comments
 (0)