Variable geometryArrayLengthsConst

geometryArrayLengths: inspect.sceneModel.Inspection = ...

Opt-in (InspectSceneModelParams.checkGeometryArrayLengths). Emits one GEOMETRY_ARRAY_OVERSIZED warning per geometry whose raw positionsCompressed, indices, normalsCompressed, or uvsCompressed array length exceeds the matching configured threshold.

Distinct from denseGeometries, which measures vertex / primitive counts — this check measures the raw .length of each typed array, because that's the unit the WebGLRenderer's GPUMemoryBatch.addMesh allocator measures against. A geometry that survives denseGeometries can still trip the batch portion limits (e.g. a Lines primitive whose indices array is huge but whose triangle count is zero), so the two cover different failure modes.

Catches the renderer's

GPUMemoryBatch.addMesh: Unable to allocate indices portion (of length 147804) for geometry 78 - limit is 90000 indices

class of error before the GPU upload, so the user can split the offending geometry via splitOversizedGeometry or raise MemoryConfigs.maxBatchVertices / maxBatchIndices ahead of time.

Pairs with splitOversizedGeometry. Pieces that still exceed any threshold after the split surface as new issues on the next inspection pass — the user (or optimizeSceneModel) re-runs inspect → applyFixes until the report converges.