FullControl is open source software made by Loughborough’s Andrew Gleadall. It’s slicing software, but, at the same time, it’s not completely slicing software. Under development for a few years now, FullControl is a new way to make things. It is not widely known and has few adherents, but more should consider it.
You see, FullControl lets you manage all relevant parameters of a sliced 3D printing file’s Gcode. You can make prints where the path changes all throughout the print. For example, you can have a part of a print where layer height is altered along with speed, acceleration, and the rate of extrusion. Any number of other parameters can be modified as well.
FullControl allows you to perform non-planar printing or come up with very specific extrusion profiles for materials, applications, or parts. You can design new structures and strategies for your printer, as well. More than this, however, FullControl is a new way of making. Now, we author in CAD, change the geometry to an STL, slice it with Cura, then the Gcode controls our printer. With FullControl, you design a “print procedure” in the software and this powers your machine. It’s so so simple it’s crazy. Andrew calls it a Gcode Designer, but its also a new paradigm.
As we design, we can control for change and adapt to process limitations and forces that will act on our print. We design within the process and shape this process. This is a much more direct way of making and designing in a way that replaces two or three software packages with one. I highly recommend that you watch the detailed video below and download FullControl. There are tutorials here. A paper about it can be found here.
Another way to think about FullControl is as Notepad for Gcode. Or, to give it another metaphor, imagine we’re all using Adobe Dreamweaver and now you can code parts in HTML. Now, this is super-mega not for everyone, nor will it be in your daily workflow, even if you’re 3girati or a 3D printing mega nerd. But, if you’re making something that cannot be made, this is amazing.
The software Allows you make custom Gcode for completely new methods of extruding completely new materials or parts that will fuse in an entirely novel way. Think of adjusting layer width throughout a part to optimize for intra layer adhesion. Or we could compensate for weight to change layer height and make layers adhere better. Or maybe we could extrude a material more quickly or perform a kind of pulse extrusion to improve adhesion to another material. We could slow down and make cooling stops at particular points where we think more adhesion might be required. You can change how bridging is done. Or you could avoid stringing for one particular model for one particular material. Or we could make very particular tweaks to a model to improve its repeatability.
What also excites me is the prospect of recoding models for manufacturing. Imagine you just have one headphone model made in CAD. Now, you’ve gotten 100 orders for it. You look at the errors your printer is making in over extrusion or examine parts where the print doesn’t look nice and then you recode the entire model in FullControl to optimize it. You can adjust the particular parameters specifically for one location by optimize the settings for that location.
Now, imagine you get 10,000 orders for the model. You can place ten on a bed and now you can recode each individual model per bed placement to optimize them all. You can change all of the specific parameters to optimally 3D print that one particular model. You can also use this to make very specific textures or internal structures. You could generate a variable infill structures at every single location. It’s like printing directly from the command line while also allowing you to modify every voxel.
I reached out to Andrew to find out why he started FullControl. He explained:
“My research has always been about intricate 3D printed structures, like tissue engineering scaffolds with highly controlled pores, mechanical characterization of the bonds between individual filaments, etc. Slicing software did not allow the level of control needed to make these structures work. So I always wrote scripts to generate my own GCode, in MATLAB for example.
I made FullControl because I wanted my students to be able to design explicit print paths without needing to write scripts and learn GCode from scratch. They spent too much time doing things they didn’t want to do (programming, understanding GCode commands) when they really wanted to be 3D printing. After making it, I realized how much better it was that writing scripts. I started using it for more unusual printing strategies. Far beyond what I originally envisioned. I also never planned to release it – I wanted to use it to give my group a research advantage. But ended up releasing it because I realized the capabilities of FullControl were so broad that people would use it for things that are completely unrelated to my personal research. It’s important because it allows 3D printing systems to be used in ways that are just impossible for the conventional work flow of CAD > STL > slicer > GCode. For example, extruding a vertical column directly up from the print bed, which we do for medical stent research. You can’t achieve that kid of print path by slicing a model into layers. You need to think differently. You need to thinking about exactly what you need to printer to do to achieve the structure you want. FullControl forces you to think in that way. You have control over every aspect of printing. That make design difficult for many structures but it also allows you to produce whole new ranges of previously impossible structures.”
FullControl really does give you control over every movement of your nozzle. I knew FullControl existed, but I never really realized how impactful it could be until now.