The finished mesh.
A smooth solid of revolution about an axis through c: profile is a list of (radius, offset
along the axis) points (tyres, hubs, headlight buckets, tanks). paintOf(k) colours the band
between profile points k and k+1.
A hull lofted through cross-sections along z (fuselages, boat hulls, train cars). Faces whose centre
lies below split.y use split.paint (antifouling under the waterline, a belly colour).
A smooth-shaded surface through a grid of points: rows[i][j], rows along the length, points around
(closed: each row is a ring). Normals are averaged over the grid, so curved bodywork shows no
facets; paintOf(i, j) colours the cell between rows i, i+1 and points j, j+1 (colour edges stay
crisp). Faces are turned outwards (away from each row's centre); caps closes the first and last
ring with flat faces.
Builds flat-shaded low-poly meshes into typed arrays.