An attempt to combine computational and human-centered approaches to Kambi Kolams using the N-line drawing method and a graph structure algorithm.
Kolam is a heritage folk art from Tamil Nadu. These are hand-drawn patterns made on a grid of dots (pulli) and are passed down through generations of Tamil women. The Kolam tradition is millennia old, diffused between regions (termed Rangoli in the North, Muggu in Telugu-speaking regions), continually evolving, and connected to ritual, aesthetics, and religion.
The patterns have cyclical, symmetrical, and geometric components and are said to invoke good luck and auspiciousness. Kolams are drawn before sunrise, using rice or chalk powder in front of the main door or gate of homes. These patterns act as threshold devices, separating inside from outside, private from public, and home from the world [1]. Kolams wash away naturally by wind or rain, and a fresh one is drawn every morning.
I remember my grandmother waking up in the wee hours every morning to draw Kolams, tiptoeing her way to the door, trying not to wake the rest of the family. Part by memory, part by improvisation, she would weave complex mathematical Kolams on the fly. Meanwhile, my mum, her sisters, and my female relatives kept practising notebooks and collecting magazine cutouts of their favourite Kolam patterns to copy and innovate on them.
Growing up, I didn’t show interest in Kolams as it came with gendered, cultural baggage I wasn’t comfortable performing. My interest in these patterns, especially Kambi Kolam patterns (wire kolams), grew recently from computational and design perspectives. Kambi Kolams are an exciting subset of Kolams. They are drawn in a single continuous line, going around each dot once (and only once) in a dotted grid, and the line loops back to where it initially begins. These patterns can be simple yet relatively complex, with varying symmetries and fractal properties.
In the 1970s, computer scientists and mathematicians from Madras, Rani and Gift Siromoney, started inquiring into Kolams as “2-dimensional picture languages with formally definable syntactic rules” [2]. The couple applied mathematical-linguistic models of array grammars to generate a new class of pictures through simple transformations such as rotation, reflection, half-turn, and conjugation.
We regard a pattern to consist of smaller components concatenated together and the grammar rules aid in the generation of these picture languages.
— Gift Siromoney, Rani Siromoney and Kamala Krithivasan (1974)
The scientist duo investigated Kambi Kolams to demonstrate ‘cycle languages’ (e.g., rotational symmetry) alongside fractals and other naturally occurring shape-filling curves [3]. They demonstrated how these cycle languages can be represented in graph-theory form, “turtle-like” chain commands, or generated by string grammars.
Languages of cycle grammars consist of cycles (“necklaces”) of symbols i.e. cyclically ordered sequences of symbols. There are several interesting families of pictures — both natural as well as artificial — which are cycle languages.
— Gift Siromoney and Rani Siromoney (1986)
In a similar acknowledgement of Kambi Kolams following a system of pattern rules, Japanese scholars Kiwamu Yanagisawa and Shojiro Nagata examine them from a morphological viewpoint [4]. They describe Kambi Kolams as knots or cycle patterns, utilising unresolved problems in knot theory to determine how many single cycle/knot patterns may exist in a given dot matrix. To solve this problem, the scholars extracted elements and rules by deconstructing Kambi Kolams they observed on the streets and Kolam books published in South India (see the paper for the rules). They use these rules to convert Kambi Kolam patterns into numbered representations (hexadecimal codes) and linear drawings.
Whichever method, array grammars, L-systems, or Hexademical representations, scholars and computer scientists can incorporate systems of rules and grammar to create new kinds of Kolam patterns and apply them to computer graphics [5][6], biology [7], and evolutionary human sciences [8]. While it is impressive to formulate algorithms that generate infinite combinations of Kolams, how does one draw a Kambi Kolam? I’m pretty sure my grandmother didn’t have an algorithm ready at hand, but it was something she could expertly do through a combination of perception, repetition, and body movement.
Making or drawing a Kolam by hand is vastly more complicated than using an algorithm. It is a skilled activity that requires time and practice. This suggests moving away from representational models of Kolam as rule systems to how Kolams are made, which entails complex physical and perceptual activity. Terry Knight [9] argues that craft/making practices are continuous events entailing improvisations and departures from an initial plan. From this perspective, Knight and Stiny [10] shift the conversation from shape grammar to making grammar to capture the live aspects of Kolam making, aspects that cannot be captured using grammar and rules alone. The seeing and drawing rule is significant to Knight’s making grammar, i.e. line on a walk, as a way to learn the improvisational Kolam moves and gestures made by Tamil women.
Seeing rules and drawing rules come in pairs. Seeing is always followed by drawing. The idea is that the kolam maker continually looks ahead to see where the next pulli [dot] are to decide which way the line should go.
Scholar Timothy M. Waring [11] made a similar observation about the limitation of Kolam grammar and its sequential representations. He argues that Tamil women perform a much wider variety of hand-drawn gestures in sequence to create new Kolam designs. He introduced an extended gestural lexicon for Kolam drawing that includes the well-known orthogonal and diagonal gestures and transitional and stylised ones (see paper for the lexicon).
So far, I have presented two complementary perspectives for designing Kolams — computational and hand-crafted perspectives. Now, let’s combine them!
For months and months, I struggled to draw Kambi Kolams without any guidelines, and it took me very long to deconstruct and analyse a Kolam on my own.
Much later, when researching Kolams, I noticed a similarity in my process and the N-line method and attempted the drawing rules suggested by Shojiro Nagata.
Rules for drawing Kambi Kolam using the N-Line method (my interpretation of Nagata’s rules):
Create a dot array in a pattern of the designer’s choice.
Make lines (called Navigating/N-lines) between connecting dots, ensuring all dots connect (do not form loops).
Make a crossing at a middle point on each N-line.
How to draw the line: Start from a crossing at any edge (usually at a corner), go straight at the crossing, and then turn around the dot next to the adjacent crossing or open turning. Each turning direction is alternated clockwise/anti-clockwise after the crossing.
Soon, I began creating new Kambi Kolam designs. I played around with different dot grid sizes and freestyle (no grid), and eventually, I could make them in multiple variations.
As I expanded the grid sizes of my Kambi Kolams (>10x10), I noticed that it became increasingly challenging to keep track of how all the N-lines were connected, and I was making many mistakes. So, in the end, I decided to delegate the task of drawing N-lines to a machine while retaining the satisfying process of drawing Kolams to myself.
I used P5.js to translate the N-line method into code using graph theory principles and a depth-first search (DFS) algorithm. I call this algorithmic generation of N-lines a Kolam blueprint or Kolam template.
I use the Kolam template to make large Kambi Kolams like the image below.
Kolam Drawing Pilot Workshop
With some help, I converted the P5.js code into C++ for Arduino so that I could print out the Kolam templates on a tiny receipt printer. Each button press generates a new 5x5 grid Kolam template.
I tested the 5x5 printed Kolam templates and N-line method in a pilot workshop with my camp village mates during the Chaos Communication Camp 2023. Once the workshop participants got the hang of the N-line method, they really enjoyed the process. “Wheeeeee”, went one of the participants as they drew a looping continuous line passing over many dots.
The workshop convinced me that this N-line Kolam technique is transferable. Based on the lessons learned, I hope to conduct a public-facing workshop for the upcoming Algorithmic Pattern residency.
During this process, I kept returning to the knotted approach by Japanese scholars Yanagisawa and Nagata. I was intrigued by how they see Kolams not as two-dimensional patterns to be broken down into component building blocks but as 3D woven knot structures created by the interaction of different curves or agents.
This inspired me to imagine Kolams as interlaced patterns, where it's not simply a continuous line drawn flat on a surface. Instead, I imagine the Kolam to have certain ‘over-under’ passes that must be made correctly for the interlacing to happen, similar to a laced herringbone stitch.
Taking the herringbone foundation as an example for lacing patterns, I attempted to find a similar foundation for Kolams in cross-stitch. I wanted to see if the star pattern could be a suitable foundation for lacing Kolams.
I started looking around for different stitching techniques incorporating star patterns. I landed on Sashiko, a Japanese stitch art, as a possible foundation stitch. I previously experimented with Sashiko to reinforce some garments and accessories but have never attempted weaving Kolam through Sashiko stitches.
My plan for the residency is to combine an algorithmically generated Kambi Kolam with a Sashiko foundation — thereby giving Kambi Kolam an aesthetic purpose in the textile space. I hope it will inspire me to play with other technology, including sensors and e-textiles. Linking these outcomes back to a cultural understanding of Kolam as a boundary-making practice is something I hope to accomplish during the residency.