Thirty corgi keychains in three-colour PLA, each roughly 3 × 3 × 3 cm. That was the brief: turn a client's concept art into a batch of multi-colour FDM keychains on the Prusa Core One+ with its MMU. The project took four to six rounds of test prints to get right, and most of those iterations solved problems we did not anticipate from the screen.

Modelling for Print from the Start
The concept art showed a squat, rounded corgi with oversized ears, simple eyes, and just enough personality to make people smile. We modelled it in Blender using a sub-d workflow: low-poly base meshes with subdivision surface modifiers, kept as simple as possible for as long as possible.
Every modelling choice had to account for what FDM can resolve at 3 cm. The eyes and mouth that looked proportionally correct on screen printed as barely visible marks at keychain scale. We went through several iterations, enlarging these features each time and running a test print to check readability. The final version has eyes and mouth noticeably larger than the concept art suggested, but at print scale they look right.
We designed for support-free printing from the beginning. The corgi's rounded body and flat base made this achievable for most of the geometry. The one exception was the snout, which overhung enough to need support. Rather than relying on auto-generated slicer supports, we modelled a single support feature directly in Blender: a thin bridge connecting the snout to the body that snaps off cleanly after printing. Designed supports give more control over placement and break-away points than anything a slicer generates automatically.
Colour Separation with Booleans

The corgi needed three colours: orange for the body, beige for the face and chest, and black for the eyes and mouth. Multi-colour FDM on the Prusa MMU requires each colour to be a separate mesh object.
We used boolean modifiers in Blender to cut the model into colour regions. The objects overlap slightly at their boundaries to ensure no gaps appear between colours during printing. Without that overlap, tiny gaps between colour regions show as visible lines on the finished piece. Blender's batch STL export made the handoff straightforward: it exports each object as a separate file. When importing multiple STL files into PrusaSlicer, it asks whether the files belong to a single multi-part object. We confirmed, assigned filament colours per part, and the slicer handled toolpath generation from there.
First Prints and the Scale Problem

The first test print used leftover filament in colours that did not match the final palette. Structurally, it printed well. No colour bleed, no failed features. This gave us false confidence.
When the final filaments arrived (beige, orange, and black, all from a cheaper brand) the problems started. The black filament bled visibly across entire layers, staining both the orange and beige regions. At 3 cm, there was nowhere to hide the contamination. Every surface was visible, and a fraction of a millimetre of staining stood out immediately. The combination of darker, cheaper filament and small geometry amplified every imperfection in the colour transitions.
Taming Colour Bleed on the MMU
Since this was our first MMU production run, solving the colour bleed meant learning the purge system from scratch.
The first attempt was the obvious one: increase the wipe tower size. More purging should mean cleaner transitions. It helped marginally, but the black filament was persistent enough that even a larger tower could not flush it completely before the next colour started printing.
The second attempt was to use infill as additional purge space, routing the contaminated filament into the inside of the model rather than wasting it on a tower. This worked mechanically, but the dark purge material was visible through the beige outer walls. For an opaque or darker model this approach is fine. For a light-coloured keychain, it was a non-starter.
The solution was the Purging Volumes matrix in PrusaSlicer. This feature lets you set a specific purge volume for each filament-to-filament transition independently. Black-to-beige needed significantly more purging than orange-to-beige. Once we dialled in the per-transition volumes, the bleed disappeared. This is the setting most people miss when starting with MMU printing, and it is the single most effective fix for colour contamination.
The Keychain Attachment Problem

A keychain needs a way to attach a ring. We modelled a small hole in the corgi's head and planned to thread in a small eye-screw directly into the PLA.
The first screw snapped before it was fully seated. The PLA held; the screw did not. We tried again with a second screw. It snapped too. The geometry was too tight for the screw to cut threads without the shaft breaking under torsion. We enlarged the hole, but then the screw had no grip and pulled straight out. The eye-screw was simply too thin to survive the torque required to self-tap into PLA at this scale.
The fix was heat-set inserts. We heated the eye-screw and pressed it into the PLA, which softened and flowed around the metal as it cooled. The result was a solid mechanical bond with no broken hardware and no looseness. For anyone designing small PLA parts that need threaded hardware, heat insertion is the reliable approach. Self-tapping screws at keychain scale are not worth the risk.
Packing the Plate and Running the Batch

Once the prints were done, each keychain ring was opened with two pairs of pliers, threaded through the eye-screw, and closed again. Thirty keychains, one at a time.

With the model finalised and the purge settings dialled in, the last step was scaling to a full batch. We packed 15 corgi keychains onto a single Prusa Core One+ build plate, each with its designed support structure.
Tight plate packing with multi-colour prints increases the risk of stringing between parts during tool changes. The designed supports helped here as well: they gave the nozzle clean travel paths between pieces and reduced the chance of dragging filament across the plate.

The final prints came off the bed clean, consistent, and ready for keychain rings. No sanding, no painting, just the print straight off the plate. Thirty corgis in orange, beige, and black PLA, each with a heat-set eye-screw and a metal keychain ring.
What We Took Away

The corgi keychain was our first multi-colour production run, and most of what we learned came from problems we had to solve mid-project. We now have a tested workflow for small-scale MMU batches: boolean colour separation in Blender, per-transition purge tuning in PrusaSlicer, designed supports for plate packing, and heat-set inserts for hardware attachment. Each of those techniques was figured out through iteration on this project, and each one applies directly to the next multi-colour character or mascot piece that comes through the door.
The larger takeaway is that multi-colour FDM at keychain scale is viable for small production runs, but it demands more upfront iteration than single-colour work. The modelling, slicing, and assembly all need to account for the fact that every imperfection is visible at 3 cm. Getting those details right once means the process is repeatable. We are ready for the next one.
