fullcontrol allows you to control 3D printers, or other cnc systems, in ways that are not possible using conventional software
you design everything about the print path and print settings, giving you the design freedom to do anything you want
get started without installing anything: go through the interactive tutorial notebooks then use the design template - or install and run things locally as described below
(youtube playlist)
</a>
think beyond 'normal' 3D printing
the conventional method to generate gcode is: create cad model -> export stl -> slice into layers -> create paths for each layer -> output path as gcode
FullControl offers a different approach where the print path is explicitly designed. imagine being given a hotmelt glue-gun and told to move it around to ‘print’ layers resulting in a 30-mm cube. you could design lots of different paths that would achieve the cube. FullControl allows you to design and preview print paths and convert them to machine-code instructions for a 3D printer (a gcode file)
the overall printing procedure may be considered to be predominantly a stream of points. then a few extra things are sprinkled in occasionally, like changes to speed, temperature, fans, etc.
all of these things together (points and the extra things) are referred to as state in FullControl. state is basically any property of interest that can change
FullControl allows designs to be created that control changes the state of things, where things are anything with state - this initial release of FullControl is focused on the thing being an extrusion 3D printer that is instructed by gcode. however, things really could be anything (laser cutters, assembly lines, non-physical things like a 3D visualization, etc.)
“FullControl gcode designer” (2020) (website, github, journal paper)
“www.fullcontrol.xyz” (2022):
“FullControl” (2023) - this repository:
jupyter notebooks are provided in the docs folder of this github repository (repo) to introduce FullControl and demonstrate its use - browse tutorials: github / colab
you can either use a cloud-based jupyter notebook environment like google colab, or run things locally by installing python and then either jupyterlab or vscode with python and jupyter extensions
a future update of this repo will give more details about the python code
new to python? don’t install - just use the colab design template and get designing straight away online
alternatively, to run locally, install miniconda/anaconda/python and git - if you run into any installation problems, update your versions of python/git/pip
pip install git+https://github.com/FullControlXYZ/fullcontrol
you can also clone this git repo and run “pip install .” from the repo directory
to use FullControl, create a python script or jupyter notebook and import the fullcontrol package
import fullcontrol as fc
the FullControl repository is organized as follows:
docs
: jupyter notebooks describing FullControl and its use. For more details, check the readme here or jump straight in to the 1-minute demofullcontrol
: the FullControl python package. For more details, check the readme heremodels
: example models that use FullControl. For more details, check the readme herelab
: the FullControl lab python package for experimental features. For more details, check the readme herebin
: scripts for FullControl development activitiesthe anticipated workflow for new content is:
please use the github issues tab for this repository to give feedback.
please submit pull requests for bugfixes, optimizations, documentation corrections/clarifications, etc., and for minor additions and new features such as functions, objects, and modules that fit into the existing package structure
for revisions that change the structure, behaviour, or usage of the software, please email us (info@fullcontrol.xyz) prior to submitting a pull request. this is to ensure alignment between the changes and any planned/unpublished revisions already in progress. note that this version of FullControl is not targeted at developers - the structure of the repo may change and more information about the code structure will be provided at a later date to accommodate contribution more readily
note that the docs folder of this repo contains tutorial notebooks. executing cells in these notebooks leads to timestamp changes, even if the cell content remains unchanged. this may cause unexpected issues and complications for pull requests. until a more automated solution is implemented, consider two options before submitting a pull request:
FullControl is released under the GPL v3 License.
FullControl, FullControlXYZ, copyright 2023 Andrew Gleadall and Dirk Leas
until the journal paper for FullControl is available, please cite the paper for ‘FullControl GCode Designer’:
Gleadall, A. (2021). FullControl GCode Designer: open-source software for unconstrained design in additive manufacturing. Additive Manufacturing, 46, 102109.