- Bend
- The GPU's stand-in for skinning until M7: each frame a compute pass rewrites a Renderable's own Mesh, the bent Mesh, from a rest Mesh of the same vertices, its middle curved into an arc by a curvature the fixed schedule sets each Tick.
- Bend pass
- The compute pass that bends Meshes on the GPU, first in each frame's encoder: a row of 64-vertex workgroups per bend (#269).
- Rest Mesh
- The Mesh a bend reads and never writes: its +Y axis runs up its middle from y = 0, and every Mesh bent from it holds as many vertices.
- Bent Mesh
- A Renderable's own Mesh, whose vertices the bend pass overwrites from its rest Mesh's each frame; the main pass draws it as it draws any Mesh.
- Curvature
- The radians a bent middle turns through per metre of its height. The crowd sways between −0.35 and 0.35.
- Azimuth
- The direction a bent middle leans towards: radians about +Y, from +X towards +Z.
- Skinning
- Deforming a Mesh by a skeleton: each vertex follows a weighted blend of a few bones' transforms, recomputed every frame. Real-Time Rendering calls it vertex blending.
- Shadow proxy
- A Mesh that rays trace and no pass draws, standing in for part of a Renderable whose own BLAS would not hold the shape it is drawn in, such as a bent figure's bone.
- Bone
- One of 16 equal lengths of a crowd figure's middle, 0.1125 m each, numbered from the foot. Each has a shadow proxy, placed every Tick.
- MeshUse
- What a Mesh is loaded for: drawn and traced, the default; drawn alone, a bent Mesh, which gets no BLAS; or traced alone, a shadow proxy, which gets no Meshlets and no Material (#208).
- Culling box
- The box a Mesh's Blob holds for culling (ADR 0018). The culling pass tests it, placed by the Instance's transform, against the view and the depth pyramid.
- Index stream
- A Mesh's cooked u32 indices in the index Arena. No pass draws from it; only a BLAS build reads it.
- TLAS
- Top-level acceleration structure: the GPU's search structure over Instances, each placing a BLAS with its transform. A ray walks it down to the triangles it meets.
- BLAS
- Bottom-level acceleration structure: the GPU's search structure over one Mesh's triangles, built when the Mesh loads, then compacted (#202). Since #208 a Mesh no ray traces gets none.
- Static TLAS
- The top-level acceleration structure over every static Instance whose Mesh rays trace, each placing its Mesh's BLAS and tagged with its slot, in a frame anchored where the scene loads (#202).
- Dynamic TLAS
- The top-level acceleration structure over the Moving Instances, at most 10,000 of them, those in the lowest slots, each tagged with its slot. It is rebuilt every frame, in the static TLAS's frame (#204).
- Rebuild
- Building an acceleration structure again from scratch, from its current contents. Through wgpu-core 30 it is the only way to update one.
- Refit
- Updating an acceleration structure in place after its contents move: the tree keeps its shape and only its bounds are recomputed. Cheaper than a rebuild, and the tree traces more slowly the further things have moved. wgpu-core 30 does not implement it.
- wgpu-hal
- wgpu's lower layer, one unsafe implementation per backend, beneath the safe API. ADR 0007 permits it for a subsystem that exceeds wgpu's safe API.
- Moving Instance
- An Instance whose entity the fixed schedule moves, so the entity carries its previous World transform. It is rewritten each frame and rebuilt into the dynamic TLAS; every other Instance is static.
- PreviousWorldTransform
- The component holding an entity's World transform after the previous Tick. An entity that carries it is drawn blended between Ticks, and its Instance is a Moving Instance (#204).
- Instance
- One Renderable's data on the GPU: its World transform, as an Anchor plus an f32 offset, its Mesh, and the Material ID that overrides its Mesh's Materials, if any, in a slot of the Instance buffer that the Renderable keeps while it is one.
- Renderable
- An entity that has a Transform and a Mesh Handle, and optionally a Material Handle that overrides the Materials of its Mesh's Primitives. The renderer pulls Renderables; entities never render themselves.
- Mesh
- An ordered list of Primitives that are rendered together.
- Meshlet
- A small group of one Primitive's triangles, bounded in vertex and triangle count, that the GPU draws as a unit and can cull as one.
- Arena
- A GPU buffer of fixed capacity, created at startup and never grown, from which a Pool sub-allocates ranges; the Mesh pool's hold vertices, indices, and Meshlets with their vertices and triangles.
- Blob
- One cooked Asset's bytes, named by their content hash.
- Cook key
- The hash of everything that determines a Blob: what it cooks from, dependencies, settings and cooker versions. A changed Cook key means the Asset is cooked again.
- QTangent
- A vertex's normal, tangent and bitangent sign packed as one quaternion in four Snorm16 values, its w kept off zero so that its sign can carry the bitangent's (ADR 0018).
- Snorm16
- A signed 16-bit integer read as a number from −1 to 1, in steps of 1/32767.
- sinc
- sin(x) / x, which tends to 1 as x tends to 0. The bend pass takes its Taylor series below 0.5 rad.
- Fast math
- A compiler's licence to trade floating-point exactness for speed. Metal compiles shaders with it unless told otherwise, and its sin is then accurate only to within an absolute error, at most 2⁻¹³ from −π to π.
- Workgroup
- The group of invocations a compute dispatch runs together; the bend pass's holds 64, one per vertex.
- Oracle
- A slow, plainly correct computation that a test checks the fast one against. The bend's sums the bent middle's direction in small steps, in f64.
- Golden angle
- π(3 − √5) rad, about 137.5°: the turn that divides a full turn in the golden ratio. It is an irrational share of a turn, so no multiple of it lands exactly on another.
- Tick
- One fixed step of the simulation, 1/64 s; rendered frames draw a blend of the two newest Ticks.
- Fixed schedule
- The schedule that runs once per Tick and holds everything that changes game state: gameplay, physics, AI and Lua event reactions (ADR 0022).
- Blend weight
- How far a frame lies between the two newest Ticks, from 0 at the older to 1 at the newer. Prepare blends each moving entity's two World transforms, and each Bend's two curvatures, by it (ADR 0022).
- Frame data
- The per-frame collection of changed Instances, lights, camera and the Meshes the GPU bends that the renderer consumes in place of reading the ECS World. It lists no draws: the GPU culls Instances and builds its own.
- Frame stats
- What one frame cost, measured by the engine itself: CPU time per system and stage, GPU time per pass and of the dynamic TLAS's build, and the GPU frame total (that build plus the span from the start of the first pass to the end of the last), draw calls, Instances and triangles drawn, Instances the draw had no room for, Instances written, Renderables refused, lights the light buffer had no room for, lights the Froxel lists had no room for and lights the shadow mask had no bit for, the lit pixels and the point lights their Froxels list and whose range reaches them (where counted), static Instances left out of the static TLAS and Moving Instances left out of the dynamic TLAS, bends the bend pass had no room for, bytes uploaded, heap allocations, GPU memory, Arena bytes in use, dropped time and the readbacks of GPU stats it skipped.
- ECS World
- The container of entities, components and resources. A code concept, never the playable space.
- Reference scene
- A Scene paired with a fixed camera path and injected time, so that every run produces the same frames. Used for Goldens and Baselines.
- Baseline
- The recorded measurements of a Reference scene on one adapter: the reference machine, where Budgets are judged against it, or CI's lavapipe, where only its counters are judged.
- Golden
- A committed image that a Reference scene must reproduce within tolerance.
- Budget
- A numeric limit on one metric of a Reference scene (CPU ms, GPU ms, GPU memory, Input latency) that a change must not regress. The GPU memory Budget splits into one Budget per kind of GPU memory, such as the geometry Arenas, the texture pool and staging, which caps what that kind may hold (ADR 0017). Counters such as draw calls and bytes uploaded are held to their Baselines instead.
- Shadow mask
- A bit per light at each pixel, set where that light is hidden from the surface the pixel's nearest sample shows, by the surface itself where it faces away or by what its shadow ray finds, in the order the lit pass sums the pixel's lights, up to 59 of them. A compute pass traces it from the depth target; the lit pass reads it.
- Render switches
- The variants a Renderer is created with and keeps: whether Instances are culled, whether lights are culled into Froxels or all reach every pixel, whether shadow rays are traced, whether a pass counts each lit pixel's point lights, and the form the crowd scene's deforming meshes take in the TLAS. Their defaults are what ships; scene content such as ambient and background is not a switch.
- M4 Pro
- The Apple M4 Pro on which the project's Budgets are judged and its Baselines recorded; wgpu runs on Metal there.