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.

drag to turn it
75.6 by 16.2 by 3 mmcode 48.4 mmchange at layer 133.7 g PLA
Shape
The keyring bar. The original shape, sized to sit flat against a key.
Filament, body then code
contrast 21.0 to 1, good
TextRaised, in the code's filament. The tag grows to fit it.
Spotify mark
Off by default. Spotify's guidelines forbid adding depth to the logo, and the bars are what a scanner reads.
how it prints

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.

01

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 1
02

The 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 2
03

Then 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 height
75.6 mm16.2 mmcode 48.38 mm3 mm thick, one filament change at z 2.4
five shapes

Same 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.

bar75.6 by 21.1 by 3 mmThe keyring bar. The original shape, sized to sit flat against a key.
coin50 by 50 by 3 mmA round tag, code across the middle, hole at twelve o'clock.
card85.6 by 54 by 2.4 mmWallet sized, with two lines of text under the code.
ornament70 by 70 by 3 mmA hanging disc with room for a title under the code.
magnet75.6 by 16.2 by 4.2 mmBar without the keyring hole, two 6 by 2 mm magnet seats in the back.
what is actually true

Numbers that were measured.

1
filament change

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.

4
runtime dependencies

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.

92
tests, 0.8 seconds

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.