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.