tilegen — help

tilegen turns artwork into Framework Desktop front-panel tiles: the artwork is carved into the tile face as a recess, and a matching insert fills it exactly. You print the two in different filaments and get a crisp, flush, multi-color tile.

Everything happens in your browser. Your artwork is never uploaded anywhere.

Start here

  1. Pick an SVG (sharpest results) or a PNG/JPG.
  2. Leave everything at its defaults and press Generate.
  3. Download the .3mf and open it in Bambu Studio or OrcaSlicer.
  4. Set filament 1 to your tile color and filament 2 to your artwork color. Slice.
The .3mf is the file you want. It contains both parts with their filaments already assigned. The individual .stl files behind the fold are there if you would rather assemble it yourself.

What comes out

FileWhat it is
NAME.3mf Both parts as one object, filaments assigned. Use this.
NAME_body.stl The tile, with the artwork pocketed out of its face
NAME_ink_N_#RRGGBB.stl The insert that fills that pocket exactly

Body and inserts share the same boundary surface, so there is no gap and no overlap: together they reconstruct the original tile to within 2 × 10-5 mm³.

The options

Columns & rows

How many tiles the artwork is split across. 1 × 1 is a single tile; the full Framework Desktop panel is 3 × 7, and the use it link fills that in along with the settings that suit it.

Margin

Keep-out from each tile edge, in millimeters. Use 0 for artwork spanning several tiles so it runs across the seams; use 2–3 for a single centered logo.

Depth

How deep the artwork is recessed. 0.6 mm is three layers at 0.2 mm, which is opaque with most filaments. Go deeper for white-on-black, where three layers can still show through.

Past 1.6 mm the pocket breaks into the retention hook cut-outs on the back of the tile. tilegen warns you when you cross that line.

Fit

containthe whole artwork fits inside the grid
coverfills the grid and crops the overflow
stretchdistorts to fit exactly

Tile base

What the artwork is carved into.

BaseFace
blanksolid — the default, and what you want most of the time
horizontalhorizontal stripes
crossdiagonal stripes
gridcrossed stripes
frameno face at all, just the border
The four non-blank bases have open faces. Artwork over an opening has no material to carve, so it does not print there, and what remains is split into one fragment per opening. That is the effect — but check the preview, which shows exactly what survives.

Nozzle

Drives the thin-feature warnings. tilegen checks two things people get caught by: artwork strokes thinner than the nozzle, and gaps thinner than the nozzle. The second is the sneaky one — a logo with fine counters prints as a blob not because the ink is too thin but because the spaces between it are.

Min gap

Widens every body-colored gap narrower than this, by trimming the ink on either side of it. Gaps already this wide are left exactly as drawn, and two ink colors that touch never get a gap put between them. 0 turns it off.

Set it to your slicer's first-layer line width, not the nozzle size: the artwork prints face down, so every gap is on the first layer, and a gap narrower than one line fills with ink from both sides. Bambu Studio's default for a 0.4 mm nozzle is 0.5 mm. The default here, 0.6 mm, is that plus some room: a logo whose curves measured 0.50–0.55 mm still sliced with ink specks along them. Raise it if yours still do; lower it (or set 0) if the artwork's fine gaps matter more than a clean first layer.

Colors & background

Colors (images only) is how many colors to quantize a photo down to. Region 1 becomes filament 2, region 2 becomes filament 3, and so on.

Background is the color the tile itself is printed in, so it costs no inlay at all — saving a filament and all of its purge. auto picks the color around the outside of the artwork, #rrggbb names one, and none prints every color as inlay.

It applies to SVGs too. A two-color logo on a full-bleed backdrop is the case it is for: leave it on auto and the backdrop becomes the tile, with only the second color carved and inlaid. Set it to none and you get a pocket the size of the whole tile plus an insert to fill it.

auto only ever picks a color that owns the outside edge of the artwork, and it never drops the only color there is, so a logo floating on nothing keeps everything it has.

Blank tile for every empty cell

On by default. Ask for 3 × 7 and you get 21 tiles, including the cells your artwork never reaches — a panel needs all of them to be physically complete. Turn it off to get only the tiles that carry artwork.

Set filament colors in the 3MF

Writes your colors into the file so the slicer opens with them already assigned instead of bare slot numbers. Ink colors come from the artwork; tick also set the body color to name the spool you will load for the tile itself.

Mirror

Only if you print the tile face-up. By default the decorated face is at z = 0 with the hooks rising above it, which is the orientation you want.

Printing

Why 28.60 mm?

The tile pitch is measured from Framework's own released CAD: the openings step by exactly 28.60 mm in both axes. Several community projects use 28.5, which drifts about 0.6 mm over seven rows. The whole tile face is visible — the smaller openings deeper in the cover are for the retention hooks, not a window over the face — so artwork runs across tile boundaries nearly unbroken, with only a ~0.15 mm seam.

Not in the browser

The command-line version in the repository has a few extras: rotating and scaling artwork, bleed, inverting, plate layout, and re-rendering the tile bases from source with OpenSCAD.

Credits & licensing

The tile base is the work of Marcin Raczkowski (Marmot.Tech), licensed CC BY-SA 4.0, from jermicide/desktoptiles. It is used unmodified — vendored as a git submodule, so no copy of his work lives in this project. All tile body geometry is his: the frame, the retention hooks, the constraints, the raised edges, and the hook cut-outs that make the slicer build proper walls. tilegen only adds artwork to it.

His tile follows Framework's published tile specification.

Tiles you generate are derivative works of his tile. If you publish or sell them — on Printables, MakerWorld, Etsy, anywhere — CC BY-SA 4.0 asks you to:

  1. credit Marcin Raczkowski (Marmot.Tech) and link his project,
  2. license the tiles CC BY-SA 4.0 as well, and
  3. state that the work was modified.

Keeping the tiles to yourself? Nothing to do.

tilegen's own code is Apache 2.0. The two licenses are not compatible in either direction and cannot be merged, which is why they are kept separate — and the tile base was never ours to relicense anyway. The full notices say which license covers which file.