medieval-kit/my-registry/models/core
CRT 96defca639 Stop createTinter sharing one Color, and fix what that was hiding
The tinter returned a single Color and mutated it on every call. The
reasoning was sound -- the geometry helpers read the colour immediately, so
an allocation per call is waste -- and it holds right up until two tints
appear as arguments of the SAME call:

    latheGeometry(profile, 7, origin, tint('char', 0.06),
      { colourTop: tint('charHot', -0.12) })

Both arguments are the same object and both carry whatever the second call
computed. That is why the torch's pitch head rendered hot orange instead of
black: the char never reached the geometry. The same mistake turned up
twice more in one session -- the anvil's stump came out painted in end
grain on every face, and the shovel nearly went the same way. Three
occurrences means the hazard belongs to the helper, not to the callers, and
a few hundred allocations at build time is not a price worth one class of
silent, invisible bug. `steelTint` and `ironTint` already allocate; the two
disagreeing was itself part of the trap.

With the colour actually arriving, the torch head is also fatter -- at 2.5
shaft radii it was a spindle, where a torch head is a fist of tow and rags
bound on, and it is the whole reason the object is not a stick -- and its
flame is shorter than the head that feeds it rather than twice its height.

The cart wheel's tyre was 23 mm of iron on a 0.52 m radius, set wider than
the wheel itself, and read as a pneumatic. A real tyre is 8 to 12 mm of bar
shrunk onto the felloe. It could not simply be narrowed: the felloe's axial
thickness jitters by ±7%, so anything from 0.93 to 1.07 of the width will
sooner or later share a plane with some piece, and the earlier fix for that
flicker was to go wider than the whole range at 1.1 -- which is what made it
look pneumatic. Going UNDER the range solves it the same way and is the
truer shape: the hoop is set into the tread, and on a worn wheel a sliver
of felloe shows at each edge where the iron has bedded in.

27 models, 19007 triangles, all checks pass, 0 floating cases, GLB
round-trip clean, Conformant, build clean.
2026-08-23 12:10:20 +07:00
..
geometry.ts Make bendGeometry refuse geometry it cannot bend 2026-08-23 11:07:43 +07:00
index.ts Kit'i 26 modele çıkar, doğrulamayı ve inceleyiciyi genişlet 2026-08-21 09:44:58 +07:00
kit.ts Translate the whole repository to English 2026-08-21 14:35:13 +07:00
materials.ts Stand the bell's frame clear of the bell, and stop painting it brass 2026-08-22 14:02:22 +07:00
occlusion.ts Translate the whole repository to English 2026-08-21 14:35:13 +07:00
parts.ts Translate the whole repository to English 2026-08-21 14:35:13 +07:00
random.ts Translate the whole repository to English 2026-08-21 14:35:13 +07:00
tint.ts Stop createTinter sharing one Color, and fix what that was hiding 2026-08-23 12:10:20 +07:00
tool.ts Translate the whole repository to English 2026-08-21 14:35:13 +07:00