A functionally graded 3D print is one where a property changes gradually through the part instead of jumping at a boundary. The property can be density, material composition or both, for example a part that goes from stiff to soft. On a desktop FDM printer you can do this in three realistic ways: vary infill density in one material, switch between filaments in steps using an AMS, MMU or toolchanger, or blend two or three filaments in a mixing hotend. Standard multi-material setups can only produce steps, and every filament change costs purge material.
Smooth material gradients at fine scale are mainly the domain of industrial material jetting. Stratasys PolyJet printers combine a rigid and a rubber-like resin inside the machine to make “digital materials” from about 40 to 95 Shore A. With the GrabCAD Voxel Print add-on, you can assign a material to each voxel. Below: what each approach can do, with figures from manufacturer documentation, and how to design for it. For bonding TPU to PLA or PETG, see our separate rigid and flexible multi-material guide.
The consumer toolchanger 3D printer: the SnapSwap 4-toolhead system swaps heads in 5 seconds for true multi-color and multi-material printing, with smart calibration and auto filament loading.
- 4 toolheads · 5 s swap
- Up to 500 mm/s · 20,000 mm/s²
- 270 mm cube build volume
- Multi-color & multi-material

Which gradient method fits your project
- Stiffer here, lighter there, one material: use infill modifiers or height ranges in your slicer. Works on any FDM printer.
- Hard zone and soft zone in one part: print stepped regions with a multi-material system and design mechanical interlocks at the boundary.
- A visual color fade: filament painting (thin layers of translucent filament) or a mixing hotend. Both change the look, not the mechanical properties.
- A blend of two filaments that changes with height: a mixing hotend with firmware support, such as Marlin’s gradient mix.
- Shore hardness gradients or voxel-level control: a PolyJet service bureau or industrial printer. For a grip that goes smoothly from rigid to rubbery, this is currently the practical route.
What “graded” means in practice
An open-access overview of functionally graded additive manufacturing by Loh et al. (Additive Manufacturing, 2018) sorts graded parts into three types:
- Variable density in one material: porosity or lattice density changes through the part.
- Changing composition: two or more materials combined with a gradual transition.
- Both at once: density and composition vary together.
Transitions can be stepped, with discrete zones, or continuous, where the mixing ratio changes smoothly. The point of a gradual transition is to avoid a sharp jump in properties at an interface. The authors note that abrupt material changes in conventional multi-material printing are a source of delamination and cracks.
| Method | What changes | Transition | Hardware | Main limitation |
|---|---|---|---|---|
| Infill modifiers, gradual infill | Density and stiffness of one material | Stepped | Any FDM printer | Same material throughout |
| Filament switching (AMS, MMU) | Material or color per region | Stepped, one filament per line | Single nozzle with filament changer | Purge on every change; bonding between materials |
| Toolchanger or IDEX | Material or color per region | Stepped | One nozzle per filament | Idle nozzles still need priming; higher hardware cost |
| Filament painting | Apparent color | Visual blend through thin translucent layers | Any FDM printer with filament swaps | Optical effect only |
| Mixing hotend | Ratio of 2–3 filaments in one extrusion | Continuous along Z | 2-in-1-out or 3-in-1-out hotend, mixing firmware | One nozzle temperature for all inputs; mixing is not perfectly uniform |
| PolyJet digital materials | Shore A hardness, color | Discrete presets | Stratasys Connex, J7 and J8 series | Industrial machines and proprietary resins |
| PolyJet Voxel Print | Material per voxel | Near-continuous at millimeter scale | Stratasys J750 plus paid add-on | You generate the slice images yourself |
Density gradients on a single-material FDM printer
The easiest graded part changes only its internal structure, putting stiffness and mass where you need them without multi-material hardware.
- PrusaSlicer modifiers: a modifier shape (box, cylinder, sphere or your own mesh) changes settings such as infill density and perimeters where it overlaps the model. Height range modifiers do the same for a Z interval, and you can stack several to make a stepped gradient.
- Cura infill mesh and cutting mesh: an infill mesh replaces the infill of the model where they overlap. A cutting mesh can print a region with different settings, including a different extruder.
- Cura Gradual Infill Steps: halves the infill density for each step further below a top surface; the default step height is 1.5 mm. With 20% infill and two steps, the deeper regions drop to 10% and then 5%. This is a material-saving feature that keeps dense infill under top skins, not a structural gradient. Check that the dense zone ends up where the loads actually are.
Our guide to infill density for strength helps you choose the values for each zone.
Stepped material changes with an AMS, MMU or toolchanger
Consumer multi-material systems print one filament at a time. A “gradient” here is a series of zones: bands of different materials, or a region where two filaments alternate before switching over completely. In PrusaSlicer, a modifier can also assign a different extruder to a region, so you can shape the zones independently of the model’s parts.
On a single-nozzle system, every change costs material. Bambu Lab’s wiki explains the waste:
- Flushing volume depends on the color pair. Going from dark to light needs much more flushing than light to dark. Material properties also count: for support filaments, Bambu Studio calculates flushing to prevent contamination that would make supports stick to the part.
- The multiplier is 1.00 by default. Bambu Lab says the defaults err on the side of quality, and 0.8 or 0.9 can save filament, but you should run a test print. Too little flushing shows up as discolored layers.
- The prime tower has to reach the highest layer with a filament change. In Bambu’s example, flipping a part so its color changes were at the bottom cut the tower from 14.76 g to 9.05 g, about 40% less.
- Flush into infill reuses purge material inside the part, but it can show through light or transparent colors.
- Smaller nozzles flush more slowly. A 0.2 mm nozzle can’t extrude as fast as a 0.4 mm one, so each change takes longer.
Prusa’s Knowledge Base shows the same effect in PrusaSlicer’s purge matrix. In its example, black to white takes 150 mm³ of purge and white to black only 50 mm³. Filaments with glitter or other additives, and soluble supports, usually need more. For ways to shrink the tower, see purge tower optimization.
Printers with one nozzle per filament avoid flushing the shared melt zone, which suits designs with many material changes. Idle nozzles still need priming, though: Prusa describes the XL’s priming tower as very small in footprint but potentially very tall. A four-toolhead machine like the Snapmaker U1 is one example of this layout; our overview of MMU, IDEX and Palette systems compares the others.
Color gradients without mixing: filament painting
Software such as HueForge stacks thin layers of translucent filaments so that the colors blend visually. It relies on each filament’s transmission distance (TD), which describes how much light it lets through. Prusa publishes TD values for its filaments on a scale from 0.1 to 100. Prusament PETG Clear is rated 100 and PLA Jet Black 0.3. The result is a convincing color fade, but mechanically the part is still made of separate layers of whole filaments.
Mixing hotends: blending filaments in one nozzle
A mixing hotend feeds two or more filaments into a shared melt chamber and extrudes the blend through one nozzle. The extruders’ relative feed rates set the ratio. Examples from the hobby market:
- RepRap Diamond hotend (Kickstarter, 2015): three filament inputs, one 0.4 mm nozzle and a deliberately small mixing chamber. It was designed to mix translucent cyan, magenta and yellow into other colors.
- Geeetech A10M and A20M: sold as mix-color printers with a two-in, one-out hotend.
Marlin supports this hardware with the MIXING_EXTRUDER option (two mixing steppers and 16 virtual tools by default). M163 sets each filament’s share and M164 saves the mix as a virtual tool; M163 S0 P0.6, M163 S1 P0.4, M164 S5 stores a 60/40 blend as tool 5. With GRADIENT_MIX enabled, M166 fades from one virtual tool to another between two Z heights. Marlin’s documentation example for a tall vase is M166 A0 Z250 I0 J1 S1: pure tool 0 at Z0, changing to tool 1 by Z250.
The limits are physical. All inputs share one nozzle temperature, so the filaments need a common printing window. The Loh overview also notes that FDM “suffers from inconsistent material mixing”. These hotends were marketed for color blends, and we did not find manufacturer documentation for mechanical gradients such as a rigid-to-flexible blend.
Industrial systems: PolyJet digital materials and voxel printing
PolyJet printers jet droplets of photopolymer and cure them with UV light. Because several resins are deposited in the same layer, the printer can combine a rigid and a soft resin into intermediate materials.
- Base soft material: Stratasys lists Agilus30 at 30–35 Shore A (black and translucent) with 220–270% elongation at break.
- Digital materials: combining Agilus30 with Vero rigid resins gives preset grades from FLXA-xx40 to FLXA-xx95, which measure 40–45 up to 90–95 Shore A in printed parts, according to Stratasys’s Agilus30 best-practice guide. These are discrete steps you select in the software.
- Voxel Print: Stratasys describes this paid add-on for GrabCAD Print as a way to set the material “for each individual point throughout the whole volume”, which enables gradients. On the J750 you supply your own slice images (the guide suggests tools such as MATLAB), at least 30 slices, at 600 × 300 DPI and a 14 or 27 µm layer thickness, with up to six materials per slice.
Research shows what that control enables. Ituarte et al. (Additive Manufacturing, 2019) arranged soft and rigid voxels of about 90 µm into digital materials at about 1 mm scale, then used those to build graded structures at about 10 mm scale. Other research routes change microstructure rather than material: a 2023 study in Polymers built a modified extrusion printer that graded PEEK crystallinity by controlling chamber temperature, and noted that low-crystallinity regions still need work so they don’t lose interlayer strength.
Designing a graded part: practical rules
- Name the property and the direction. Stiffness along a gripper finger, hardness from a handle core to its surface, or color with height need different methods.
- Match the gradient to the machine’s axis. Marlin’s built-in gradient mix (M166) works along Z, and so do height range modifiers. Modifier meshes and PolyJet voxels can grade in any direction.
- Avoid a single hard boundary between very different materials. Use intermediate steps or interlocking geometry so loads don’t concentrate at one flat interface. The rigid-flexible guide covers interlocks and compatible filament pairs.
- Plan the change order and height. Put material changes low in the part where you can, and order them light to dark, to reduce the prime tower and flush volumes.
- Keep the material data with the model. STL and OBJ store only geometry. The AMF format (ISO/ASTM 52915) can describe materials, including mixed and graded ones, but in desktop slicers you usually assign filaments per part or with modifiers instead.
- Print a test coupon of the transition before the full part. and bend it by hand to see whether it fails at the interface (general good practice, not a published test method).
Common mistakes and when desktop gradients aren’t enough
- Expecting an AMS or MMU to blend filaments. These systems switch filaments; any “mix” you see is purge contamination, which is exactly what flushing removes.
- Treating a color fade as a property gradient. Filament painting and CMY mixing change appearance. Stiffness only changes if the materials or the internal structure change.
- Cutting flush volumes to save filament without a test. Bambu Lab warns that too low a multiplier shows up as discolored layers, and with support filaments contamination can make supports stick to the part.
- Relying on gradual infill for strength. Cura’s feature puts the densest infill under top surfaces, which may not be where the part is loaded.
- Skipping calibration on two-nozzle machines. Offsets between nozzles show up as gaps or overlaps at every material boundary. See the dual extrusion calibration guide.
Frequently asked questions
Can a Bambu Lab AMS print a gradient?
Not a true blended gradient. The AMS feeds one filament at a time into a single nozzle and flushes between changes, so you can only print stepped zones or color bands. For smooth-looking color fades, filament painting with translucent filaments is the usual workaround.
What is a functionally graded material in 3D printing?
It is a part whose density, composition or both change gradually through its volume to meet a function, such as a stiff base that turns flexible at the tip. Transitions can be stepped or continuous. The gradual change avoids the sharp property jump at a single material boundary, which is a common place for delamination and cracks.
Does Marlin still support mixing hotends?
Yes. Current Marlin configuration files still include the mixing extruder option and the M166 gradient mix command. Hardware examples include the RepRap Diamond hotend with three inputs and Geeetech’s two-in, one-out A10M and A20M. They are mainly used for color blends, since all inputs share one nozzle temperature.
Can PolyJet print a smooth hardness gradient?
Standard digital materials come in preset steps, from about 40 to 95 Shore A when Agilus30 is combined with Vero resins. Truly per-voxel material control needs Stratasys’s GrabCAD Voxel Print add-on, where you prepare the slice images yourself. Research groups have used voxel-level material jetting to build graded structures from soft and rigid voxels.
Sources
- Loh et al., An overview of functionally graded additive manufacturing, Additive Manufacturing (2018, accepted manuscript PDF)
- Bambu Lab Wiki: Reduce waste during filament change
- Marlin Firmware: M166 Gradient Mix
- Stratasys: Agilus30 rubber-like materials best practice (PDF)
- Stratasys GrabCAD Support: Guide to Voxel Printing



