Circular Threads

Pen Plotter Midterm 

Concept and Inspiration

For my midterm, I developed a computational drawing system inspired by Emirati Al Sadu. I was drawn to its repeated geometric patterns and the way individual motifs are organized into bands. These relationships offered a starting point for a drawing system: I could define a small collection of shapes, establish rules for their repetition, and generate variations through code.

I also chose Al Sadu because I wanted to bring a traditional visual language into a physical computing project. Al Sadu has a long history as a material practice, while the pen plotter works through digital instructions, electronics, and controlled movement. Bringing them together allowed me to explore a contrast between an established cultural tradition and a contemporary method of making.

What interested me was that the connection was not only visual. Both processes involve repeated physical actions that gradually build a pattern. In weaving, the design emerges through the handling and organization of threads. In my project, it emerges through the movement of a pen following programmed paths. The processes are different, but repetition provides a connection between them.

Rather than copying a particular textile, I worked with diamonds, nested outlines, zigzag borders, and parallel lines. I wanted to reinterpret the organization of Al Sadu through a new medium while keeping the cultural reference recognizable. The project does not reproduce weaving or claim that these circular arrangements are traditional Al Sadu designs. The circular format is my own compositional choice.

My guiding question was: How can a traditional geometric visual language be reinterpreted through physical computing, and what happens when its repeated patterns become machine controlled pen movements?

From Straight Bands to Circular Designs

My first version arranged the patterns in straight bands. It included rows of small diamonds, a central band of nested diamonds, and closely spaced longitudinal lines. This established the visual elements of the project and stayed relatively close to the band structure that informed my reference.

I later decided to make the final compositions circular. The bands remained separate, but they wrapped around a shared center instead of running vertically. This changed how the drawing could be read. The eye could follow a ring continuously or move outward from the middle and compare the different layers.

The circle also gave the series a consistent overall form. I could vary the motifs, density, and colors while maintaining a clear relationship between the drawings. I wanted each piece to feel complete individually, but also to look like it had developed from the same system.

Moving into a circular format introduced practical design decisions. The inner ring has a smaller circumference, so it cannot comfortably hold the same number of motifs as an outer ring. I used fewer repetitions in the inner band and adjusted motif width according to the space available. This helped maintain separation between shapes rather than crowding the center.

The change also affected the machine’s movement. Straight bands mainly relied on long strokes and repeated corners. The circular version required coordinated movement along both axes, alongside the direction changes needed for diamonds and zigzags. The composition became a way of investigating the plotter as well as developing the artwork.

The Algorithm in p5.js

p5.js code link: https://editor.p5js.org/meera.alshamsi/sketches/yzyNEx_wn

I built the drawing system in p5.js using geometry, repetition, rotation, symmetry, and adjustable parameters. Rather than positioning every shape separately, I defined rules that generated the composition.

The main structure consists of three concentric motif bands, nested diamond outlines, groups of circular strands, and zigzag borders. The drawings share this structure, while changes in repetition, nesting, alignment, color, and selective removal create variations within the series.

The circular placement uses polar coordinates. Each position is calculated from a radius and an angle, then converted into an x and y position using sine and cosine. Dividing a full rotation by the number of motifs gives evenly spaced positions around the ring. This means that changing the repeat count automatically changes the arrangement.

Each diamond begins as a small set of local points. These points are mapped into the circular band using radial and tangential offsets. The width responds to the available space around the ring, while nested outlines repeat the construction at progressively smaller scales.

The circles are generated from many connected points around a circumference. The zigzags follow a different rule: their points alternate between slightly smaller and larger radii as the angle increases. Connecting them creates a sawtooth border that contrasts with the smooth circular strands.

The interface included controls for repetition and nesting. These allowed me to compare levels of detail without rebuilding the entire sketch. The original presets increased the main repetition count from 16 to 20 to 24, alongside increasing the number of nested outlines.

My system does not use randomness or noise. I chose controlled variation because the regular geometric rhythm was important to the concept. Identical settings produce identical digital coordinates. This also gave me a consistent basis for testing: differences in the physical output could be investigated separately from intentional changes in the design.

The final series developed beyond numerical variation alone. In the pink-and-purple drawing, I removed some enclosing elements and opened the center. This helped me explore how simplifying the system could change the composition while preserving its shared visual language.

SVG and G Code Workflow

I exported the generated drawings from p5.js as SVG files. The export used the same coordinates as the canvas preview, preserving the design as vector paths rather than turning it into a flat image.

The SVG contained outlines with no fill. The background color from the preview was not exported because the paper would provide that area physically. Paths were also separated into color groups, allowing me to inspect the full composition or export individual pen layers.

I opened the SVGs in Inkscape and used the J Tech Photonics Laser Tool extension provided through our professor’s GitHub resource to generate G-code. Although the extension includes “Laser Tool” in its name, it was used within our classroom pen-plotter workflow. The final marks were made with physical pens.

I then opened the converted files in Universal Gcode Sender and sent the instructions to the plotter. The classroom setup used an Arduino Uno with custom grbl-servo firmware. Pen-up and pen-down commands were particularly important because the design contained many separate outlines. The machine needed to travel between motifs without drawing unintended connecting lines.

This workflow involved more than changing file formats. The page size, drawing scale, template dimensions, machine origin, and pen behavior all affected the result. The circular design had to remain correctly positioned through each stage, and separate color layers needed to use consistent coordinates.

The course notes provided starting settings for conversion and plotting. These gave me a basis for preparing the files, but the physical tests still required investigation when the results did not match the preview.

Physical Tests and Troubleshooting

(expirements) (trigger warning: failed attempts)

The early tests made it clear that the drawing system depended on several connected parts working correctly.

The straight-band test included incomplete diamonds, uneven line darkness, and extra strokes passing through parts of the pattern. In the early circular test, some circles were irregular and motifs appeared displaced from their intended bands. Other attempts produced open shapes and unwanted connecting marks.

The difficult part was that these problems did not always have the same cause. Sometimes the pen was positioned too high or too low in the holder. Its height affected whether it contacted the paper properly and whether it could lift clear of the surface during travel.

At other times, the issue involved the wiring between the Arduino and its shield. This meant that troubleshooting had to include the electronics, rather than focusing only on the drawing file or pen holder.

There were also problems with software settings and the sizing of the template or document in Inkscape. Even when the design looked correct in p5.js, the way it was prepared and converted could affect where and how it was plotted.

Because there were so many possible causes, it took time to work out which part needed attention. A poor result did not immediately tell us whether the problem was mechanical, electrical, or digital. We had to investigate the pen placement, wiring, settings, and file preparation rather than assume that one adjustment would fix everything.

This became an important part of the project. I learned to think about the workflow as a connected system. The geometry could be correct while the pen contact was wrong, or the machine could move while the sizing and positioning were incorrect.

The repeated patterns helped make inconsistencies visible. A missing corner stood out against neighboring diamonds, and a shifted circle disrupted the relationship between the bands. The structure of the design therefore became a way of examining the machine’s behavior.

I kept the unsuccessful tests because they explain the development of the final work. They show the investigation behind the drawings and why the plotter needed to be treated as part of the creative process.

Drawing Tools and Material Experiments

One of the most useful experiments was comparing markers with fineliners.

I initially tested markers because their stronger marks could make the patterns more visible. However, the thicker lines made the smaller details harder to distinguish. Nested outlines lost some of their separation, and closely spaced elements became visually heavier.

This mattered because the design depended on the spaces between lines. The smaller outlines inside each motif were part of its structure, rather than simply extra decoration. When the marks became too thick, those relationships were less clear and the pattern looked less intricate.

The tests showed me that a more prominent line was not necessarily a more effective line. I needed a tool that could preserve the detail generated by the algorithm.

I chose fineliners for all three final drawings because they maintained clearer separation between neighboring paths. This allowed density to build through repetition while keeping the individual shapes readable.

I also expirmented with different papers and paper thickness and found that normal paper doesnt really respond to tension and pressure of the plotter if it presses down to hard or goes to fast, so I found thicker art paper works the best for the pen plotter drawings.

The decision came from physical testing rather than from the digital preview. The screen could show thin outlines, but it could not fully predict how a particular pen would reproduce them on paper. The drawing tool directly shaped which version of the design could work successfully.

Color and Layering

Color allowed me to explore different readings of the shared geometric structure.

In the monochrome drawing, the elements came together as one continuous visual family. The warm-red version made the relationship between layers more apparent, while the pink-and-purple version gave the simplified composition a different character.

Physical layering also introduced practical considerations. Changing color meant replacing the pen and drawing another group of paths in the same coordinate space. The layers needed to remain aligned so that the nested outlines and circular strands retained their relationships.

This made color part of the fabrication process. It was not only a palette selected in p5.js; it involved physical tools, pen placement, and registration.

Keeping fineliners across the final series helped maintain a consistent emphasis on fine detail. I could vary the colors and compositions without losing the delicate line quality that the marker tests had shown was important.

The Final Series

The final series consist of three physical circular drawings. They share repeated diamond like motifs, concentric organization, nested outlines, and an emphasis on line rather than fill. Their differences come from density, palette, and the amount of enclosing structure.

The first drawing uses a dark monochrome treatment. Its circles, diamonds, and zigzags read as parts of one structure. Closely spaced outlines create denser areas, while the gaps between bands keep the composition readable. This drawing establishes the visual grammar of the series without a strong color hierarchy.

The second drawing combines warm red with darker outlines. The contrasting colors make the patterned areas and parallel strands more distinct. Its denser detail creates more activity within the bands, while the fineliner marks preserve separation between the smaller outlines. This version shows how color can change the reading of a composition without replacing its underlying rules.

The third drawing uses pink and purple with a more open arrangement. I removed the sawtooth borders and some enclosing elements, allowing the motifs to carry more of the structure. The center has more empty space, and the outer diamonds are less contained.

This variation helped me see that developing a series does not always mean adding complexity. Removing elements gave the existing shapes a different role. The paper became more visible, and the composition felt more open while still belonging to the same system.

Bonus piece (not apart of final series)

I experimented with black paper and bright teal ink because I wanted to give the traditional Emirati-inspired patterns a more futuristic, almost AI appearance. The contrast makes the geometric shapes look like they are glowing, almost like a digital design on a screen rather than a physical drawing. I liked how changing just the colors could make a pattern inspired by cultural heritage feel modern and technological.

Critical Reflection

The most important lesson from this project was the difference between specifying a path and producing a mark.

In p5.js, a circle is a predictable sequence of coordinates. On paper, it becomes ink deposited through movement and contact. The tests showed that a repeatable digital instruction could still produce uneven, incomplete, or displaced marks when another part of the process was not working consistently.

The troubleshooting made the idea of physical computing much more concrete for me. Code did not act on its own. It depended on the Arduino and shield, the machine’s movement, the pen holder, the conversion settings, and the drawing surface. Investigating those connections became part of understanding how the artwork was made.

The marker experiments were especially important because they connected the algorithm to the material. The code could generate detailed nested outlines, but the tool determined whether that detail remained visible. Selecting fineliners was therefore a design decision as much as a practical one.

The paper also played a role because the drawings were built from outlines. It remained visible inside the motifs and between the bands. Those open areas helped organize the density and made the intricate geometry easier to read. The simplified third drawing brought this relationship forward by giving empty space a larger role.

Returning to the theme, I found the contrast between Al Sadu and physical computing more interesting after working with the machine. At first, I was thinking mainly about bringing a traditional pattern into a contemporary process. During production, I became more aware that both processes depend on material actions and knowledge.

The plotter follows numerical instructions, but those instructions still need a physical setup that works. Al Sadu develops through a different kind of skilled material practice. My project does not equate the two, but it creates a space to consider how repetition connects them and how changing the medium changes the result.

If I continued the project, I would record the settings and adjustments for each test more systematically. This would help me connect individual changes to particular improvements. I would also investigate the relationship between pen width and motif spacing more closely, since that comparison had a clear effect on the final series.

Circular Threads developed through geometric rules, failed attempts, troubleshooting, and material choices. The circular format gave the drawings a shared structure, the fineliners preserved their intricacy, and color and simplification allowed each work to offer a different interpretation of the same system. The final pieces reflect both the computational design and the physical process required to make it.

AI Disclosure

I used ChatGPT to assist with revising the p5.js code and organizing the documentation. 

References

UNESCO. “Al Sadu, Traditional Weaving Skills in the United Arab Emirates.”

https://ich.unesco.org/en/decisions/20.COM/7.C.1

J Tech Photonics. “J Tech Photonics Laser Tool.”

https://github.com/JTechPhotonics/J-Tech-Photonics-Laser-Tool

Universal Gcode Sender documentation.

https://winder.github.io/ugs_website

Course materials on fabrication, pen plotter assembly, firmware, and plotting experiments, provided through NYU Brightspace.

Leave a Reply

Your email address will not be published. Required fields are marked *