Published September 2025 as part of the proceedings of the first Alpaca conference on Algorithmic Patterns in the Creative Arts, according to the Creative Commons Attribution license. Copyright remains with the authors.
doi:10.5281/zenodo.17084402
This short paper considers how a focus on algorithmic pattern can open new creative possibilities in digital fabrication. Using 3D printing as a case study, we share example prints which fundamentally depend on a variety of physical factors including the material that was printed, the machine settings used, and the state of the machine. We briefly introduce design tools we have previously developed to programmatically generate machine toolpaths and interactively edit print settings using MIDI controllers. By editing machine settings in realtime, we can explore a vast material design space that is not traversable with traditional software. The resulting printed patterns are not fully designed a priori but discovered through material exploration. We use our examples to discuss the relationship between notation, documentation, and community in exploratory fabrication processes. Altogether, we put emerging digital fabrication practices in conversation with algorithmic pattern to sketch out future directions for design tools and community.
Figure 1 recounts the standard story of how a digitally fabricated object is made: first, a designer models geometry in computer-aided design (CAD) software; then, they use computer-aided manufacturing (CAM) software to convert this abstract geometry into the physical toolpaths that describe machine motion; finally, CAM software outputs a flattened instruction set to execute on the machines (computer-numeric control, or CNC).
Bending creative goals to fit into this linear process incurs significant overhead. In particular, geometry is disconnected from physical settings. The separation of a program from the physical fabrication process is inherited from the industrial contexts in which these technologies were developed. Automated tools sought to reduce human involvement with materials in manufacturing processes1. As a result, automation technologies embody social relations that persist in contemporary CAD/CAM software. When material output unintentionally deviates from a model, practitioners must develop manufacturing skills to debug any physical or digital problems which have occurred2. When material output intentionally deviates from a model, it becomes hard for practitioners to employ their domain-specific knowledge to accomplish their fabrication goals. Both of these cases are derived from the separation of abstract geometry from physical output.
Artists have been exploring the gap between model and material since the inception of computer-controlled machines. In developing one of the first sculptures made with a milling machine in the 1960s3, artist Charles Csuri wrote that “the rigid program-part correspondence [of existing software] was not suited for our purposes”4. Nearly fifty years later, LIA’s Filament Sculptures5 turned assumptions about in 3D printing on their head to explore the material possibilities of plastic filament. Our work here is invested in further enabling creative investigations into machines and materials.
We can see the gap between model and material output by 3D printing a
line. To print a line with standard software, we might create a
rectangular geometry with a width that matches the nozzle diameter
installed on our machine. The resulting machine instruction for a single
line represented in G-Code might look like G1 X200 E0.5
.
This represents a linear move (G1
) to an X position of
200mm while extruding 0.5mm of filament. However, settings like
extrusion rate, print speed, nozzle geometry, and heating profiles
produce profound material effects. All of these settings must be
configured up front for successful fabrication. Usually these settings
are optimized such that the physical output best matches the intended
model. They can alternatively be used as a design space to explore:
Figure 2: Video - 3D Printing with a MIDI controller. Buttons and knobs on the MIDI controller (bottom left) are tied to machine settings. At the end of the video, repeatable coil structures are apparent given the right choice of machine settings.
In Figure 2, the underlying toolpath geometry is a straight line. In the bottom left corner, we tweak knobs on a MIDI controller which have been tied to various machine parameters including the deposition height, speed, and extrusion rate. The material output belies geometric representation; it instead depends on the physics of the machine and the material. This technique shown is known as viscous thread printing (VTP)6. Using VTP, we can print objects with different mechanical properties by taking advantage of the natural coiling behavior of viscous fuids extruded during additive fabrication (see Figure 5). The design of these metamaterials are typically achieved by designing a geometric pattern that is repeated within the object. As opposed to traditional metamaterial design which relies on complex geometries, viscous thread instabilities occur naturally through the appropriate choice of print settings.
The print in Figure 2 was made using tools we have developed for material exploration in 3D printing. p5.fab7 is a Javascript library we developed for the creative coding environment p5.js. Using p5.fab, we can generate machine toolpaths using code and stream commands directly to a printer using a wired USB connection. Our MIDI interface extends p5.fab to modify commands based on input from a MIDI controller8. We choose to use MIDI controllers due to their widespread usage in live musical performance. Not only are MIDI controllers readily available, but they grant musicians precise, improvisatory control over their performance. We strive for a similar creative control over fabrication processes. Our code is open-source and more information can be found on the documentation site.
Returning to our viscous thread printing example, Figure 3 uses p5.fab and our MIDI interface to demonstrate a range of coiling patterns. The graph shows a recording of parameters changed using a MIDI controller over the course of fabrication. In the orange region, we see how extrusion from a small height (~2mm above the printer bed) creates sinusoidal wave patterns. By increasing the deposition height and extrusion, we can create alternating coiling patterns (green region) and coils of different sizes (purple region). As demonstrated in the accompanying graph of incoming values, these designs are highly sensitive to process parameters. Small changes can have dramatic effect.
Crucially, we want to be able to tie relevant sets of parameters to what is actually happening on the machine at a given time. To do so, we synchronize video documentation of the printing process with the machine instruction being executed, the Javascript code which generated the machine instruction, and the realtime MIDI adjustments. The idea is to have a ‘transcription’ of the print job which we can scrub through, refer back to, and share with others. Changes in material and machine can have a large effect on the material output. This log is therefore not meant to be a definitive account of the fabrication process. Instead, it’s a generative starting point that can be shared with others for further exploration. Figure 4 shows this interface in action.
Figure 4: Video - Our ‘Fabscription’ interface, named in analogy to video transcription. Video of the fabrication process (right) is synced with the machine instruction being executed (top left), the Javascript code that generated the machine instruction (middle left), and any realtime adjustments made (bottom).In the examples shown, prints are not entirely pre-planned. Instead, material behaviour is discovered through active exploration. Viscous thread printing is just one example—there is a massive design space to be explored by creatively exploring machine settings alongside geometry. We see productive alignment between the creative sensibilities of the exploratory fabrication processes shown here and established algorithmic pattern practices. From weaving to livecoding, simple transformations can give rise to complex results which exceed notation9. Printed patterns highlight the role of materials in the fabrication process. It would be impossible to intuit a final print solely from a given set of parameters. It is only when geometry, material, and machine come together that a pattern crystallizes. Here we briefly unpack the tripartite relationship between notation, documentation, and community to consider future directions for design tools and community.
Sharing standard digital fabrication processes revolves around documentation. Design repositories like Thingiverse10 or Printables11 provide a library of digital models. The object of interest is usually constrained to a single digital fabrication process (e.g. an stl for 3D printing) and authors only need to share a design file to contribute to the community. On the other hand, communities like Instructables12 or Hackaday13 provide long-form explanations. The scope of a project tends to exceed a single fabrication process and instead works to communicate how various systems were integrated. Across these product- and process-oriented communities, we see practitioners making up for inexpressive standards. In the former, the practitioner who is replicating an object has to reckon with any issues that arise during fabrication. In the latter, the practitioner who is making the documentation must spend significant time and energy to explain their approach.
Compare the current status of fabrication documentation with the distribution of audio/visual explorations in a language like TidalCyles. Creative practices emerge from the gap between a notated pattern and the resulting embodied experience of its output. The work of definitive documentation is displaced by open-ended exploration. We see printed patterns like the ones shared here as an opportunity for practitioners to build computational, manufacturing, and craft skills through iterative material testing. In discovering new patterns, practitioners build an intimate understanding machine and material behaviour. This runs counter to current trends to abstract machine operations away from practitioners. Rather than black-boxing machines, we aim to make automation processes more flexible, adaptable, and legible. We are particularly excited about the possibilities for online community based around machine settings to help domain experts share designs and knowledge with one another.
To this end, we see rich opportunties for future projects exploring printed patterns. While the work presented here incorporates elements of realtime control, p5.fab was not explicitly developed with livecoding in mind. LivePrinter14 is an existing project which provides a live coding language for 3D printing. Future work can develop computational abstractions for interactive control in tandem with documentation approaches. Moreover, fabrication processes are unlike other digital practices in the time it takes to physically create an object. Visualization strategies that complement material iteration, rather than supplant it, can further catalyze creative practice.
We have presented printed patterns that are characterized by iterative material and machine exploration. We see this work to be allied with other algorithmic pattern practices. We only briefly experimented with FFF 3D printing here; other fabrication processes and materials provide more opportunities. By considering the design, documentation, and distribution of fabrication processes simultaneously, we aim to broaden participation in, and the possibilities of, digital fabrication.
Llach, Daniel Cardoso. “Software Comes to Matter: Toward a Material History of Computational Design.” Design Issues 31, no. 3 (July 2015): 41–54. https://doi.org/10.1162/desi_a_00337.↩︎
Subbaraman, Blair, and Nadya Peek. “3D Printers Don’t Fix Themselves: How Maintenance Is Part of Digital Fabrication.” Proceedings of the 2023 ACM Designing Interactive Systems Conference, July 10, 2023, 2050–65. https://doi.org/10.1145/3563657.3595991.↩︎
Csuri, Charles. Numeric Milling. https://digitalartarchive.siggraph.org/artwork/charles-a-csuri-numeric-milling/↩︎
Csuri, Charles, and James Shaffer. “Art, Computers and Mathematics.” Proceedings of the December 9-11, 1968, fall joint computer conference, part II on - AFIPS ’68 (Fall, part II), 1968, 1293. https://doi.org/10.1145/1476706.1476759.↩︎
LIA. Filament Sculptures. https://www.liaworks.com/theprojects/filament-sculptures/↩︎
Lipton, Jeffrey I., and Hod Lipson. “3D Printing Variable Stiffness Foams Using Viscous Thread Instability.” Scientific Reports 6, no. 1 (August 9, 2016). https://doi.org/10.1038/srep29996.↩︎
Subbaraman, Blair, and Nadya Peek. “P5.Fab: Direct Control of Digital Fabrication Machines from a Creative Coding Environment.” Designing Interactive Systems Conference, June 13, 2022, 1148–61. https://doi.org/10.1145/3532106.3533496.↩︎
Subbaraman, Blair, Nathaneal Bursch, and Nadya Peek. “It’s Not the Shape, It’s the Settings: Tools for Exploring, Documenting, and Sharing Physical Fabrication Parameters in 3D Printing.” Proceedings of the 2025 CHI Conference on Human Factors in Computing Systems, April 25, 2025, 1–19. https://doi.org/10.1145/3706598.3713354.↩︎
McLean, Alex. “Algorithmic Pattern.” Proceedings of the International Conference on New Interfaces for Musical Expression, July 2020. https://doi.org/10.5281/zenodo.4813352.↩︎
https://www.thingiverse.com↩︎
https://www.printables.com↩︎
https://www.instructables.com↩︎
https://hackaday.io↩︎
Raskob, Evan S. “Space as Time. A Study in Improvisational Interactive Computational Sculpting.” Trópos. Journal of Hermeneutics and Philosophical Criticism, 2023. https://doi.org/10.13135/2036-542X/9040.↩︎