Beer–Lambert through the wall. This is the picture the lamp makes, and it is not the heightfield: the map is exponential, so the thin end spreads and the thick end crushes.
Beer–Lambert through the wall. This is the picture the lamp makes, and it is not the heightfield: the map is exponential, so the thin end spreads and the thick end crushes.
0.12 mm layers, 100 % infill, Concentric, wall loops to maximum, white PLA, brim, no supports. Vase mode is impossible — the wall thickness is the picture. Do not scale the STL in the slicer: scaling changes the wall, which is the tone map.
On the outward shell, paint the seam. The picture's own hard edges are sharper corners than any groove the wall can afford, so the seam channel loses to them on almost every layer.
A JavaScript port of the lamp path of painting2model, verified field by field against cylinder.py: worst deviation anywhere on the object 1.1e-5 mm, which is 3e-5 of a bead. The reference's own sort ambiguity moves it 170 times further than the port does.
Everything runs in this page. No upload, no server, no network.
It is the lamp path of a longer write-up: the build guide takes a painting to a flat panel, and From Panel to Cylinder is where this shell, its seam and the printed pair that settled which way the relief faces are worked out.