art: the toy stops reading as a ball with a run of bands
One registry: game/art/planeAssets.module.parts is the toy's single list of
parts — the rig name, the mesh asset, the material, whether a hit can take it
off, and the geometry that makes it. PlaneArt.build loops it, bake loops it,
PlaneArt.partNames derives from it, and the duplicate MESHES/PAINT/METAL tables
in plane.module are gone. ensure() now asks for the LAST mesh as well as the
first, so a bake that stopped part way through is not mistaken for a finished
toy.
The hull is sampled from a profile instead of typed out as twelve rings: a
sine-series ogive nose closed by a rounded tip, a straight barrel, and a tail
cone that tapers and sweeps up, at 37 rings of 32 segments. The nose is slimmer
through its whole length, is flattened a little across the crown and droops
toward the tip, so the low front three-quarter reads as a nose rather than as a
red sphere with wings. The aerofoil loft spends its chord steps by cosine, which
crowds them at the leading and trailing edges and takes the chordwise facets off
the top of every wing.
The paint: toy767_paint gains a clearcoat over its diffuse coat, so the plastic
carries a specular roll along the crown the way the table's painted wood does,
and toy767_metal reads the atlas through a rectangle of its own. The atlas gains
a wear pass — the nose rubbed back where the toy has been landed on, the belly
scraped along its length, the wing tips and the fin chipped, grime settled in a
soft mottle, and a bright ring around the key's bow where fingers wind it. The
hull's panel lines are drawn wide apart and faint, because a line every quarter
metre reads at the chase camera's distance as banding.
The key's pivot is now at the base of its shaft, on the shaft's own axis, so
rotating the child about its local Y turns the key in place; its bow and collar
carry real UVs into the new atlas rectangle.
Geo.HALF and Geo.PART_HALF are re-stated from the bake's own measurement
(2.62 / 1.27 / 2.82 against a measured 2.62 / 1.268 / 2.812).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0139MdCaDTnP2jpG8zgk5N2N