The whole terrain above lives in GIGI as data. The surface is one
hill and one hollow — a bump and a dip in an otherwise flat sheet
— and every point of it becomes one record, indexed by its
(x, z) footprint. Each record carries the fields the picture
is painted from: h (height above the sheet),
kappa (curvature — positive orange on the hilltop,
negative violet on the skirt and saddle), normal (which way
the ground faces at that spot), and, once you drag a loop over it,
holonomy_debt (how far a carried arrow rotates by the time
it walks back to where it started).
Because GIGI is a fiber-bundle database, the curvature (κ) and its confidence ride along with every read — no sidecar service to compute them. Walking the loop and integrating the curvature underneath it are two different calculations that share no code; the queries below show both sides of that equation printing the same number, which is what Gauss–Bonnet has always promised.
Levers & receipts
Two things to try. First: shrink the loop onto flat ground far from
the hill — the deficit dies, because flat transport is trivial (the first of
Chapter 11's five named call sites). Second, the sneaky one: grow the loop
until it swallows the hill entirely, skirt and all. The deficit heads back toward
zero — a bump's positive summit and negative skirt cancel exactly, so a loop that
encloses all of it remembers nothing. The arrow’s come-home rotation has a name — holonomy, the memory a loop keeps of the curvature it swept over. Holonomy is not "did I walk near
something curved"; it is a signed ledger of exactly what the loop surrounds.
In the engine the loop is a cycle of shards and this ledger is
holonomy_debt — same math, less scenery.
The same thing in GQL — run it against an engine
Holonomy rides along per bundle; CURVATURE prints the κ
ledger the deficit is built from. The tetmesh bundle is live on the public
instance right now.
—