Skip to content

Commit 651f0db

Browse files
committed
Merge remote-tracking branch 'origin/master' into claude/cesium-ref-crate-MAOO0
2 parents 82d9caa + e9b083c commit 651f0db

2 files changed

Lines changed: 355 additions & 0 deletions

File tree

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# Crate registry + naming convention (3dgs-* family)
2+
3+
> **AUTHORITATIVE policy** (a decision, not inspiration — unlike the plans triage).
4+
> Anticipates a battery of splat/tiles crates; this is the index + the rules that
5+
> keep them tracked and stop the battery from becoming empty shells.
6+
7+
## Posture (read this first)
8+
9+
**We do not *use* ArcGIS / Cesium.** No SDK, no service integration, no
10+
API/wire compatibility, no runtime dependency. The relationship is exactly two
11+
things, and nothing else:
12+
13+
- **Reinvent** — build native CAM SoA from the data's first principles. This is
14+
the goal.
15+
- **Reverse-engineer** — one-way extraction of data out of their static files,
16+
rebuilt as CAM SoA. This is a *donkey-bridge*: transitional grounding,
17+
acceptable **only** when a native refactor isn't yet feasible, retired the
18+
moment it is.
19+
20+
Using-ArcGIS vs reinventing-and-reverse-engineering is a completely different
21+
animal. We are the latter, never the former.
22+
23+
**Optional grounding pillar (modesty clause).** We keep *one* optional,
24+
feature-gated `cesium` **reference** crate — never in the production hotpath,
25+
never a runtime dependency — whose only job is to run the real Cesium/ArcGIS
26+
path and emit reference output we diff against. This is the *runnable* form of
27+
the legacy pillar: it keeps "we're at parity / better" honest by **measuring**
28+
against a live oracle instead of asserting it from a capability matrix. It is
29+
the institutional humility against reinvention-hubris — the same "measure,
30+
don't assert" discipline we apply everywhere, turned on our own reinvention
31+
claim. It reads their JSON because it *is* the reference path; that's fine —
32+
it's dev/reference, walled off from production, so rule 3 still holds.
33+
34+
## Hard rules
35+
36+
1. **Single production crate family: `3dgs-*`.** No `cesium-*` *production*
37+
family, no `ada-*` (deprecated). Naming is `3dgs-<role>` (`3dgs-tiles`,
38+
`3dgs-ewa-syrk`, future `3dgs-render`, `3dgs-codec`, …). **One exception:** a
39+
single *optional, feature-gated* `cesium` **reference** crate — the runnable
40+
legacy pillar / parity oracle (see Posture's modesty clause), never in the
41+
production hotpath, never a runtime dependency.
42+
43+
2. **CAM SoA is the mandatory representation.** CAM SoA =
44+
- **content-addressable** — addressed by `cam_pq` (CAM-PQ) codebook index, not by position;
45+
- **structure-of-arrays**`simd_soa::MultiLaneColumn` / `cognitive-shader-driver::bindspace` columns / lane carriers;
46+
- **binary planes**`AwarenessPlane16K` (16384-bit), q8 lanes, `#[repr(C)]`.
47+
48+
Whatever a source contains is **reverse-engineered** into CAM SoA — and
49+
**ONLY** reverse-engineered: extract and rebuild, never depend on the source
50+
format as a library, never round-trip it, never emit it. No AoS, no
51+
source-native structs, no intermediate format survives past the import
52+
boundary.
53+
54+
**Refactor > reverse-engineer.** The CAM SoA layout is *refactored natively*
55+
from first principles, not derived from the source's structure.
56+
Reverse-engineering is the donkey-bridge (see Posture) — a crutch, never the
57+
design. Never let an imported format's structure calcify into ours.
58+
59+
3. **NO JSON IN THE HOTPATH. EVER.** Restates the existing W1a invariant
60+
(`no serde`, "no JSON in types", `#[repr(C)]` — see
61+
`lance-graph-contract::splat`). JSON is permitted **only** at the cold,
62+
one-time, read-only *import boundary* (reverse-engineering someone else's
63+
file); it is rebuilt into CAM SoA immediately and **never enters the hotpath,
64+
is never persisted, and is never emitted**.
65+
66+
4. **Import adapters are read-once, one-way, output-CAM-SoA.** The 3D Tiles
67+
reader (in `3dgs-tiles`) reads `tileset.json` + `KHR_gaussian_splatting` glTF
68+
+ `ESRI_crs` once, reverse-engineers into CAM SoA, and discards the source.
69+
No `cesium-*` family; nothing emits or serves their wire format.
70+
71+
5. **Rethink clause.** Our CAM SoA is canonical. An external format is
72+
reconsidered **only** on falsifiable proof it is strictly better — not by
73+
default, not for interop convenience. The optional `cesium` reference crate
74+
(Posture / rule 1 exception) is the instrument that *produces* that proof.
75+
76+
6. **Creation gate.** A crate exists **only with ≥1 real consumer** (≥2 for a
77+
generic abstraction — the `certified-field-kernel-substrate` self-fence).
78+
Until then it stays a **module inside an existing crate**. A `3dgs-*` crate
79+
with no consumer is the code version of a markdown-only plan.
80+
81+
## Registry (seed — verified first-party only)
82+
83+
`status`: shipped / planned / module-until-earned. Only crates read first-party
84+
this session carry a description; the rest are the catalogue checklist below.
85+
86+
| Crate / module | Repo | Family | Status | Purpose (verified) | Lane |
87+
|---|---|---|---|---|---|
88+
| `3dgs-tiles` | lance-graph | `3dgs-*` | planned | 3D Tiles reader. **Reverse-engineers** KHR_gaussian_splatting glTF + ESRI_crs → CAM SoA (donkey-bridge, transitional); JSON read-once at the cold boundary only | Geo |
89+
| `3dgs-ewa-syrk` | ndarray (`benches/`) | `3dgs-*` | planned | EWA-SYRK crossover bench (`project_batch` vs cblas-batched sandwich) | Kernel |
90+
| `cesium` (reference) | tbd | **optional/dev** | planned | runnable **legacy pillar / parity oracle** — runs the real Cesium/ArcGIS path, emits reference output to diff against. Feature-gated, never hotpath, never a runtime dep. The grounding + modesty instrument | tbd |
91+
| `splat3d` (module) | ndarray `src/hpc/` | — (pre-conv.) | shipped | CPU-SIMD forward renderer (`spd3`/`project`/`raster`/`sh`/`tile`/`gaussian`) ||
92+
| `cam_pq` (module) | ndarray `src/hpc/` || shipped | 6×256 CAM-PQ codebook — the **CAM** in CAM SoA ||
93+
| `simd_soa` (module) | ndarray `src/` || shipped | `MultiLaneColumn` lane carrier — the **SoA** in CAM SoA ||
94+
| `bgz17` | lance-graph | — (bare) | shipped | LOSSY golden-step recoverable sampling (BASE_DIM=17, GOLDEN_STEP=11); `ScalarCsr::spmv_min_plus` ||
95+
| `blasgraph` (module) | lance-graph `…/graph/` || shipped | **canonical bit-exact** 16384-bit GraphBLAS substrate (7 HDR semirings) ||
96+
| `jc` | lance-graph | — (bare) | shipped | 12-pillar proof-in-code (Pillar 10 `pflug`, 11 `hambly_lyons`) ||
97+
| `sigker` | lance-graph | — (bare) | shipped | path-signature kernels (`signature_truncated`, `signature_kernel_pde`) ||
98+
| `cognitive-shader-driver` | lance-graph | — (bare) | shipped | BindSpace **SoA** / mailbox / token_agreement / codec bridge ||
99+
| `lance-graph-contract` | lance-graph || shipped | SPLAT-1 CAM SoA contract types (`CamPlaneSplat`/`SplatPlaneSet`/`CamSplatCertificate`/`AwarenessPlane16K`) ||
100+
101+
**Convention note:** existing bare/`lance-graph-*` crates predate the `3dgs-*`
102+
convention and are **not force-renamed** (churn). The convention binds **new**
103+
splat-pipeline crates. CAM SoA (rule 2) and the no-JSON-hotpath rule (rule 3)
104+
bind **everyone** — old and new.
105+
106+
## Catalogue checklist (not yet first-party read — do not guess purposes)
107+
108+
lance-graph crates to add rows for, from each `lib.rs`, by lane owners:
109+
`bge-m3`, `bgz-tensor`, `causal-edge`, `deepnsm`, `highheelbgz`, `holograph`,
110+
`lance-graph-archetype`, `lance-graph-benches`, `lance-graph-callcenter`,
111+
`lance-graph-catalog`, `lance-graph-codec-research`, `lance-graph-cognitive`,
112+
`lance-graph-consumer-conformance`, `lance-graph-ontology`, `lance-graph-osint`,
113+
`lance-graph-planner`, `lance-graph-python`, `lance-graph-rbac`,
114+
`lance-graph-supervisor`, `lance-graph` (main), `learning`, `neural-debug`,
115+
`p64-bridge`, `reader-lm`, `sigma-tier-router`, `thinking-engine`.
116+
117+
## Why this exists (governance parallel)
118+
119+
Same shape as #200 Tier-4, one layer down: docs proliferated → needed "2
120+
canonical sources + perspective-docs-aren't-evidence"; crates will proliferate →
121+
need "single `3dgs-*` family + registry + creation gate + CAM SoA as the one
122+
representation." Naming + registry *track* the battery; the creation gate
123+
*prevents* the part that shouldn't exist; **CAM SoA + no-JSON-hotpath keep every
124+
crate speaking the same content-addressed SoA substrate instead of a battery of
125+
private formats — and the reinvent/reverse-engineer posture keeps us from ever
126+
becoming an ArcGIS/Cesium consumer.**

0 commit comments

Comments
 (0)