Reference
Glossary.
One-paragraph definitions for the jargon that pops up across the X-GIS docs. Each entry links into the full treatment elsewhere.
A
- Anchor
- Where a point/symbol is positioned relative to its [lon, lat] coordinate. The default
centerputs the centre of the symbol on the coordinate;bottomputs the bottom edge on it (typical for marker icons that should "stand on" the location). - AST (Abstract Syntax Tree)
- The structured tree representation of an
.xgissource after the parser runs. Every block (source,layer,match, …) becomes a typed AST node. Thelower()pass walks this tree to produce the IR.
See: Anchor utility
See: Compile pipeline
B
- Binding (utility binding)
- Wrapping an expression in
[ … ]after a utility name to make the value runtime-evaluated.fill-stone-200is constant;fill-[interpolate(zoom, 8, white-100, 14, gray-500)]is bound — the runtime samples the expression each frame or per feature.
C
- Camera
- The viewing state —
lon,lat,zoom,bearing,pitch. Live-mutable; the runtime picks up changes on the next frame. The MVP matrix used by every shader is derived from these five numbers. - Coalesce (`??`)
- Operator that yields its right-hand side only when the left-hand side is
null/undefined/ non-finite. The standard "explicit fallback" idiom for sparse vector-tile features:.height ?? 5. - Compile-on-demand
- GeoJSON sources stream + tile lazily — only tiles the camera reaches get tessellated. Reduces idle memory + CPU on large datasets at the cost of a brief tile-fetch lag at first sight.
See: JavaScript API
See: Operators
D
- DSFUN (double-single function)
- Numeric trick: split an f64-magnitude number into a high half + a low remainder, both stored as f32 attributes. The vertex shader subtracts the camera high half before adding the low — recovering f64-equivalent precision inside an f32 GPU pipeline. Used together with RTC.
E
- EPSG:3857 (Web Mercator)
- The projection identifier for spherical Mercator — the de-facto web tile coordinate system. Coordinates measure in metres from the equator/prime meridian, clamped at ±85.05° to keep the cylinder finite. X-GIS stores all tile vertices in this projection regardless of which projection is displayed.
- Extrusion
- 3D height baked onto polygon features.
fill-extrusion-height-[runs the expression per feature at decode time and produces walls + a roof. The Mapbox] fill-extrusionpaint property maps onto the same utility.
See: Projections
F
- Feature
- A single geometry + property bag (GeoJSON
Feature). Tiles ship arrays of features; xgis layers filter them, style them, optionally extrude them. Property access via.fieldreads the bag. - Filter
- A boolean expression on a layer's
filter:block-property. Only features satisfying the predicate flow through to the renderer. Same expression grammar as paint bindings —filter: .class == "highway" && .level >= 3.
See: Filter predicate
G
- GeoJSON
- JSON-encoded feature collection (RFC 7946). Geometry types: Point / LineString / Polygon / Multi*. xgis sources of
type: geojsonaccept a.geojsonURL; the runtime tiles it client-side in a worker before routing through the same MVT compile pipeline PMTiles archives use.
See: geojson source
I
- IR (intermediate representation)
- The Scene record produced by
lower()— a flat list ofRenderNodeentries with utility classes already resolved into structured fields (fill,stroke,opacity,extrude, …). The optimizer reads + writes IR; codegen consumes IR.
See: Compile pipeline
L
- Layer
- An xgis
layerblock — references a source, optionally narrows bysourceLayer:+filter:, and stacks utilities. One layer = one render node = one (or two, with stroke) GPU draw per visible tile. - LOD (level of detail)
- Mapping camera zoom to a tile-pyramid level. X-GIS picks the deepest level whose tiles still project to ≥ 320 device pixels on screen — coarser ones get magnified, finer ones get sub-tile-generated.
See: Language reference
M
- Match block
- Categorical lookup syntax:
match(.kind) { "park" -> green-500, "water" -> blue-500, _ -> gray-300 }. Semantically equivalent to a sequence of==checks, but the compiler emits a single switch. - Modifier
- A prefix on a utility (
) that makes the utility conditional on a feature property being truthy. Tailwind-shaped — multiple modifiers stack, leftmost wins. Distinct from utility BINDINGS, which run an expression.:utility-… - MVT (Mapbox Vector Tile)
- The de-facto vector tile binary format (Mapbox open spec). Each tile is a Protocol-Buffer-encoded set of layers, each layer a list of features with geometry + properties. Backs both PMTiles archives and TileJSON-served XYZ tile servers.
See: Match block
See: pmtiles source
O
- OIT (Order Independent Transparency)
- Rendering technique for translucent fills where the final colour shouldn't depend on draw order. X-GIS uses weighted-blended OIT (rgba16float accum + r16float revealage) for translucent fill-extrusion buildings.
P
- Pitch
- Camera tilt angle in degrees —
0= looking straight down (top-down), higher values lean toward looking forward. At pitch ≥ 30° the LOD selector switches from the flat-pitch sampled algorithm to a frustum DFS so the horizon gets coarser tiles. - PMTiles
- A single-file vector-tile archive format (open spec by Brandon Liu). Reads via HTTP byte-range requests — no per-tile HTTP roundtrip. Scales to planet-sized basemaps without splitting into millions of tiny files.
- Preset
- A reusable utility stack named at top level:
preset road_base { | stroke-zinc-600 stroke-linecap-round }. Splat into a layer withapply-road_base. Layer-level utilities placed after the apply override the preset values. - Projection
- Function that maps lon/lat onto a flat 2D plane for display. Seven ship: Mercator, Equirectangular, Natural Earth, Orthographic, Azimuthal Equidistant, Stereographic, Oblique Mercator. Switching is a single uniform write.
See: pmtiles source
See: Projection switching
R
- RTC (relative-to-center)
- Coordinate trick: the renderer subtracts the camera position from each vertex on the CPU side, so vertices arrive at the GPU as small offsets in metres relative to the camera. Combined with DSFUN gives sub-cm precision at any zoom.
See: RTC + DSFUN
S
- Shader
- A program that runs on the GPU. X-GIS emits WGSL (the WebGPU shading language) — vertex shaders for geometry transform, fragment shaders for per-pixel colour. The compiler writes them; you don't.
- Source
- An
.xgissourceblock that names a data origin (URL + type). Layers reference sources by name. One source can back many layers — the runtime decodes each tile once and slices it per source-layer. - Source-layer (`sourceLayer:`)
- For multi-layer vector-tile sources (PMTiles / TileJSON / MVT), the named slice of features inside one tile. e.g.
sourceLayer: "water"says "this xgis layer styles only thewaterfeatures inside the source's tiles". Distinct from xgis "layer" — same word, different scope. - Step
- Builtin gate:
step(value, threshold, below, above). Returnsbelowwhenvalue < threshold,aboveotherwise. Discrete sibling ofinterpolate(which blends linearly). - Stop
- A
(input, value)pair insideinterpolate(input, x1, y1, x2, y2, …). The runtime blends linearly between adjacent stops. Mapbox's interpolate paint expressions map onto the same model. - Sub-tile
- A virtual child tile generated at runtime by clipping a parent tile's geometry. Used for over-zoom past the source's
maxZoom— the renderer keeps showing finer detail by sub-dividing what data already exists. - Symbol
- A reusable SVG-path glyph defined at top level:
symbol arrow { path "M 0 0 L 10 5 L 0 10 z" }. Reference withshape-arrow. Stroke + fill render via SDF so glyphs stay crisp at every zoom.
See: Source types
See: Function reference
T
- Tile pyramid
- The hierarchy of tile zoom levels — z=0 is one tile (the whole world), z=1 is 4 tiles, z=N has 4ⁿ tiles. Each tile at zoom N is one quadrant of its z=N-1 parent. The renderer picks tiles from across the pyramid based on screen-space size.
- TileJSON
- A JSON manifest describing a tile service — declares the tile URL template, zoom range, attribution, and (for vector tiles) the schema of available source layers. X-GIS's
type: tilejsonsource kind reads this manifest then drives the same backend as PMTiles.
See: tilejson source
U
- Utility (utility class)
- A Tailwind-shaped style atom —
fill-stone-200,stroke-1.5,opacity-80,shape-circle. Stacked on a layer's|-prefixed line; later utilities win on conflict. The full catalogue is auto-generated at build time.
See: Utility catalog
W
- Web Mercator
- See EPSG:3857.
- WebGPU
- The modern browser GPU API (W3C spec, Chrome 113+, Safari 17+, Firefox 130+). Replaces WebGL with explicit pipelines, compute shaders, and a closer-to-metal model. X-GIS targets WebGPU; falls back to Canvas 2D when no adapter is available.
- WGSL (WebGPU shading language)
- The GPU shader language WebGPU mandates. Modern, type-safe, derived from Rust-ish + GLSL ancestry. X-GIS's codegen emits WGSL; you don't hand-write it unless you're extending the compute pipeline.
- Worker (web worker)
- Off-main-thread JavaScript. X-GIS runs MVT decoding + GeoJSON tessellation in workers so a slow tile decode never stalls the render loop. Each source kind has its own worker pool.
Z
- Zoom
- Camera magnification level. Each integer step doubles the resolution — z=0 fits the whole world in 256 px, z=1 in 512 px, z=14 in 4 194 304 px. Continuous between integers (z=14.5 is a smooth interpolation). Available as a runtime accessor inside
interpolate(zoom, …).