A song,as an object.
Paste a Spotify link and get a 3MF with the filament change already assigned, a binary STL, and an SVG with separate cut and engrave layers. No upload, no account, no environment variables.
Showing Sweater Weather by The Neighbourhood. Paste a link to replace it.
One change, and the object is done.
Scroll, and the tag arrives the way the printer builds it. The example is Sweater Weather by The Neighbourhood, read from Spotify's own code image.
The plate prints first
Everything below the change height is one solid: the outline, the keyring hole, the magnet seats when the shape has them. Nothing of the code exists down here.
z 0.00 to 2.40 mm, filament 1The code starts exactly at the change
The bars are Spotify's own geometry, scaled uniformly and never redrawn. They begin at the height the plate stops at, so the printer swaps filament once and never again.
z 2.40 to 3.00 mm, filament 2Then the numbers you need
Outside size, code width, thickness and the layer the change lands on. Every one of them comes from the geometry that was just built, not from a table someone typed.
layer 13 at a 0.2 mm layer heightSame code, different object.
Each shape answers four questions: the outline, the holes, where the code may go and where text may go. Everything else, including the laser file, follows from that.
Numbers that were measured.
Not one per layer. The plate stops at a height and the code starts there, and the build asserts it rather than the documentation claiming it.
React, React DOM, Next and a motion library. The triangulator, the ZIP writer, the 3MF writer and the font are in this repository, each with the reason it is there written at the top.
Closed surfaces, outward normals, deterministic bytes, and a manifold check that measures the mesh the way a slicer does rather than the way the builder does.
One thing is not measured yet: whether a printed tag scans, at what size and with which filament pair. That depends on a camera, a light and two plastics, so it is not claimed anywhere. The log is here, and it says so.