MakeGood

TMT Mosaic needs a wider window

This tool is built for desktop and laptop screens (900px and up). The 3D view and the controls both need real room. Try widening this window, closing split-screen, or switching to a laptop or desktop.

MakeGood

TMT Mosaic

for the MakeGood TMT · SVG or image → multicolor recess geometry
0 tris

How this works

Start here

The five-minute version

Pick a part, then drop in an SVG or a photo. Each flat color becomes its own recessed region. Export a 3MF, already mapped to filament slots. Open it in Bambu Studio, OrcaSlicer, or Snapmaker Orca.

Your session autosaves. After a reload or closed tab, you're offered a restore. Nothing applies or rebuilds until you say so.

Everything below matches a section in the left panel, in the same order.

Left panel · Part

Choosing a part

The dropdown lists the MakeGood TMT parts: Wheel, Hubcap, Footrest and Chair body. Pockets are cut directly into the part.

A part with two versions shows a picker above the list. The chair has Standard or Kit casters. Switching asks you to confirm, then reloads only the pieces that differ.

Body / blank color is the part's fallback: neutral grey or plain filament by default. A color grouped into the Base row in Colors detected prints as the body instead. That always wins.

Download design template gives the part's design face as a true-to-size SVG, with no-print gaps already cut out. Draw over it, then load the result under Artwork. If a design face spans more than one printed piece, dashed lines mark the joins and labels name each piece. Anything drawn across a dashed line is cut into both.

Hubcap diameter appears only for the Hubcap, which is built to the size you set. The four mounting clips stay put. The disc around them grows or shrinks, keeping its 1 mm angled edge. Your printer's bed caps the number, and it won't drop below what the clips need. Re-download the design template after changing it.

Plate placement is verified by hand up to 220 mm, on 256 mm and 270 mm beds. At those sizes, the part and the prime tower sit where a real print proved they both fit. Larger sizes or other beds are unverified. The part exports centred and the tower goes in the free corner. If a plate is crowded, the app writes the tower at its least-bad corner and says so. Move it in your slicer. If every plate is crowded, it saves no tower position and your slicer places it. Check both before printing.

Cut to artwork shape replaces the round disc with the artwork's own outline. A logo or character prints as its silhouette. It needs one piece of artwork with a real transparent background, which defines the cutline. An opaque image has no edge to cut to. Only Sticker placement is offered while this is on. Turn it off, or remove the artwork, to bring back a plain circle.

While it's on, Fit reshapes the part along with the artwork, so re-download the design template after adjusting Fit. Nothing may overhang the 280 mm wheel. A shape that would is scaled down until it fits, artwork included.

Any color that reaches the outline is cut the disc's full 3 mm depth instead of being recessed. Its rim prints in that color from every angle. That color still cuts at the depth you set away from the edge. Colors in the middle still recess at their normal depth. The app lists which colors this applied to.

Left panel · Artwork

Preparing your artwork

SVG, PNG, JPG, WebP, GIF and BMP load directly. The format is detected from the file itself, so the extension doesn't need to be right. TIFF won't open in a browser: re-export it as a PNG.

For an SVG, use flat, distinct fill colors. Gradients and pattern fills are flagged and skipped. Each unique fill becomes a candidate color region.

Photos work too. The app reduces a photo to flat colors and traces the edges, with smoothing set from the image's own detail. A transparent background cuts nothing.

A loaded image gets two sliders. Colors sets how many flat colors to reduce to, though a simple logo may find fewer. A readout under it shows how many colors and regions it found. Detail trades fineness against printability: lower merges small specks away, higher keeps them down to what your nozzle can print. Both re-trace on release, not while dragging.

Colors and Auto-merge do different jobs. Colors decides which regions exist. Auto-merge decides which of them share a filament slot.

For an assembly part, design over the template from the Part section, with your editor set to millimeters. Some editors drop the mm size on export (Affinity writes width="100%"). The app then scales the drawing to fit the part face.

Each design you load appears as a named row below the dropzone. Click a row to make it active: the fit sliders and the on-face gizmo always edit that design. A part with several design zones adds one option to a row's dropdown. On the chair it's Whole chair: design across every zone from one sheet. While that row is active, the 3D view cross-hatches any surface the sheet cuts on a different zone. Give that zone a row of its own to design there. Some rows also show a Mirror checkbox. On a side zone it cuts a reflected copy onto the other side. On the front or back it keeps the half you placed and reflects it across the centre line.

A design placed where one already sits steps across and down, so it isn't hidden. If two designs still overlap, a warning names both until you move, rescale or separate them. Two designs set to Fill always warn, since moving them can't help: switch one to Sticker.

  • Sticker places the design once.
  • Fill repeats it across the part as tiles, one tile per SVG document. Scale sets each tile's size, and Offset shifts the pattern. The chair body offers Sticker only, so this row shows no choice there.

If a fill can't be tiled, the app says why and leaves you one tile. Colors still pool across every design in the scene: a black pattern shares its filament slot with black artwork elsewhere.

Left panel · Artwork fit

Positioning artwork on the part

The design maps 1:1 onto the part face. Scale multiplies on top of that: over 100% bleeds past the part's edge. Rotation spins the artwork about its own center. Flip H mirrors left to right, useful when text reads backwards after import. Flip V mirrors top to bottom. Both are mirrors, not rotations, so use Rotation to turn artwork upright.

You can also grab the artwork in the 3D view. Drag inside the frame to move it, a corner handle to scale, or the green handle to rotate. The frame follows the design face, so it curves on a curved part. If it turns amber, the design's center has moved off that face, and part of the artwork won't be cut.

Left panel · Depth

How deep recesses cut

Depth is measured down from the top face. Set a default for all colors, then override individual ones in Colors detected for fine detail.

A color with its own depth is highlighted in the list. "Reset all" clears every override, and a row's own "↺" clears just that one.

A depth of 0 cuts nothing, so it is raised to 0.2 mm. Anything below 0.2 mm still cuts as asked, but needs a layer height finer than the usual 0.2 mm.

A depth deeper than the material under a color is cut as deep as it can go. The app says so. Some faces can't be measured, including the chair's. Check the cut in the 3D view before printing.

To stop cutting a color entirely, use "→ base" on its row to print it in the body.

Left panel · Colors detected

Merging into filament slots

Auto-merge groups colors that look alike. None turns it off. Slight (the default) catches near-identical copies of one color. Medium or Strong pull gradients down to fewer filaments. Drag the slider back down to pull colors apart again.

To merge by hand, drag one color onto another, or pick the other color from a row's "Merge with…" dropdown. The ⠿ grip marks what's draggable. A merged slot has one depth and prints in the group's main color, not a blended average. Click a merged color's "×" to pull it back out.

The Base row pinned at the top is a slot too. It prints as the body instead of being cut as a recess. "→ base" on a color, or a whole group, adds it to the base. Click a base color's "×" to send it back to being cut. Empty the base and the body falls back to the Body / blank color picker in Part.

The line below the list ("N colors → M slots needed") counts the body's own slot. That's the "+1" you see before anything is merged. Every AMS or toolchanger unit holds 4 slots.

Past 4, the line stands out and a pill offers to merge two colors. That's one option, not the only one:

  • print a color in the body with "→ base"
  • add a second unit, where the printer takes one
  • swap filament by hand at a pause
Bambu (daisy-chained) up to 16, or 25 on an H2D
Snapmaker U1 4 toolheads, a hard ceiling

Only going past your printer's real maximum turns the line red, and exporting still works. Both update when you switch printers in Export. Dismissing the pill hides it until the count or the printer changes.

Left panel · Export

Getting a printable file

Pick your printer, then export. The 3MF is print-ready for Bambu Studio, OrcaSlicer, or Snapmaker Orca, with colors pre-assigned to filament slots.

A long rebuild shows a curtain with a Cancel button. You can still turn the view and change settings while it runs. Cancel stops the rebuild straight away. The last result stays on screen, and Export switches off until you build again. Your settings stay saved.

The box above the button shows part and plate counts and a swatch per filament, plate by plate. It follows the design on screen, so a change updates it before you commit. Some parts have no fixed plate, such as a hubcap cut to artwork shape. They show parts and filaments without a plate count.

About

The TMT

TMT Mosaic prepares color-inlay artwork for the free, open-source Toddler Mobility Trainer (TMT), a 3D-printable device for children ages 1–8. Printable part files and assembly instructions live at 3d-mobility.org.

Telling us something went wrong

Bug reports go to GitHub issues. On the hosted app, a Feedback button sits in the bottom right of the 3D view. It sends a note straight to us. Leave an email if you want a reply.

Part
mm
Pockets are cut into each part's real mesh. Load artwork to see it on the part.
The body color used when no artwork color is grouped into the base.
Artwork
Drop an SVG (sharpest) or photo here, or click to browse
SVG: flat, distinct fill colors only. Gradients and patterns are flagged and skipped. PNG/JPG: reduced to flat colors. Set Colors and Detail on the loaded row.
Artwork fit
%
mm
mm
°
Scale multiplies the artwork; over 100% bleeds past the part face. Flip H mirrors it left to right, which fixes text that reads backwards. Flip V mirrors it top to bottom.
Depth
mm
Measured down from the top face. Individual colors can override it.
Colors detected
NoneSlightMediumStrong
Load artwork to detect color regions. Each flat color becomes its own recess in its own filament slot.
Auto-merge groups near-identical colors into one filament slot. Drag one color onto another to merge them by hand.
Export
Exports a Bambu Studio project 3MF. Parts are spread across build plates, with colors pre-assigned to filament slots.