A fused filament fabrication system comprising: a build surface; a number of print heads (31,32,33), each print head comprising an extrusion channel and a nozzle at the end of the extrusion channel; a print head mount arranged for releasable connection with any of the print heads; a gantry arranged to move the print head mount relative to the build surface in an X, Y and Z direction; a number of filament modules (61,62,62) each of which comprising a filament channel for passing through of a filament, and arranged to be releasably connected to a respective one of the print heads (31,32,33), wherein in a connected configuration, the filament channel is aligned with the extrusion channel; a number of filament docks (71,72,72) each of which arranged for docking one of the filament modules (61,62,62); a print head dock arranged for docking any of the print heads (31,32,33); a number of filament feeders, each of the filament feeders being connected via a Bowden tube to a respective one of the filament modules and configured for feeding the filament to the respective one of the filament modules; a control system arranged to control the gantry so as to select one print head from the number of print heads, to obtain a selected print head, wherein each of the print heads (31,32,33) can be docked in the print head dock, and alternatively, via one of the filament modules (61,62,63), in any of the filament docks (71,72,73), wherein, starting from a parking state in which the selected print head is docked in one of the filament docks via a currently attached filament module, the selected print head together with the currently attached filament module can be separated from the filament dock by way of locking the selected print head to the currently attached filament module, by coupling the selected print head to the print head mount, and by then moving the selected print head away from its corresponding filament dock, or the selected print head can be separated from the currently attached filament module by way of unlocking the selected print head from the currently attached filament module, by coupling the selected print head to the print head mount, and by then moving the selected print head away from its corresponding filament dock. a build surface; a number of print heads (31,32,33), each print head comprising an extrusion channel and a nozzle at the end of the extrusion channel; a print head mount arranged for releasable connection with any of the print heads; a gantry arranged to move the print head mount relative to the build surface in an X, Y and Z direction; a number of filament modules (61,62,62) each of which comprising a filament channel for passing through of a filament, and arranged to be releasably connected to a respective one of the print heads (31,32,33), wherein in a connected configuration, the filament channel is aligned with the extrusion channel; a number of filament docks (71,72,72) each of which arranged for docking one of the filament modules (61,62,62); a print head dock arranged for docking any of the print heads (31,32,33); a number of filament feeders, each of the filament feeders being connected via a Bowden tube to a respective one of the filament modules and configured for feeding the filament to the respective one of the filament modules; a control system arranged to control the gantry so as to select one print head from the number of print heads, to obtain a selected print head, wherein each of the print heads (31,32,33) can be docked in the print head dock, and alternatively, via one of the filament modules (61,62,63), in any of the filament docks (71,72,73), wherein, starting from a parking state in which the selected print head is docked in one of the filament docks via a currently attached filament module, the selected print head together with the currently attached filament module can be separated from the filament dock by way of locking the selected print head to the currently attached filament module, by coupling the selected print head to the print head mount, and by then moving the selected print head away from its corresponding filament dock, or the selected print head can be separated from the currently attached filament module by way of unlocking the selected print head from the currently attached filament module, by coupling the selected print head to the print head mount, and by then moving the selected print head away from its corresponding filament dock.