Implementation
After the mockup on Figma is finished, I then moved over to Visual Studio Code to make the interface into a working, usable prototype. It is available
here to try (note that it is meant for desktops and tablet ion landscape, not for mobile phones!).
Different from the mockup, instead of a paint bucket tool, I replaced it with an eraser tool that users can use to fix their sketches (which I realized was a strange lack of an eraser tool midway through making the program). However, this tool cannot be used to erase strokes made out of wax and paint. This is to be in line with the lack of an undo/redo button, as it is meant to simulate the permanence of wax and color when it is put on cloth. Thus, the idea is to create an environment where the user has to plan out and think thoroughly about when and where to apply wax.
User-flow
Below is the flow of using the program, following the order of traditional batik-making:
1. Draw a Sketch / Insert a Preset Pattern
The user can choose to sketch with the pencil tool (and erase when need to), or...
...insert any image from their library. Afterwards, they can reduce the opacity of this sketch layer.
2. Trace with Wax
Using the canting tool, the whole sketch is traced carefully with wax. The user must be cautious not to make a mistake, as they cannot be rectified due to the lack of an undo button. There are options to adjust the nozzle size as well as changing its type.
3. Color
With the brush ("paint dabber") tool, the user can freely pick any color and cover the whole canvas with "dye." Colors can also be mixed and layered over each other.
4. Remove Wax
After the whole canvas is dyed, the user clicks the "Remove Wax" button on the right panel inside wax layers, and the canvas will be "boiled" to reveal a wax-resist effect. The user can then download their artwork, or continue by repeating the steps once more.
Making the Brush Interactions
The main engine for this application is p5.js, a JavaScript library dedicated to creative coding, and it has the capabilities to simulate the characteristics of wax and paint on cloth. Admittedly, I only have a foundational knowledge of p5.js, and so I vibe-coded the brush interactions with ChatGPT. As much as I preferred coding it all by myself or having a programmer to help, due to time constraints and the lack of people proficient (or even know at all) in p5.js, this is where I decided that AI could help me make the parts that I am not a pro at.


I first looked at how the community of p5.js makes watercolor or paint brushes. I found the one that resembles the closest to wax, and I attempted to recreate it myself. I then had AI give me pointers to modify the brushes' properties to simulate wetness, opacity, and spread. It was not perfect, though, as there were initially many bugs and issues with what AI gave me. However, thanks to what I studied beforehand about p5.js, I was able to fix its code and continue.
AI was helpful in introducing me new functions or features that I did not know of before, which was useful in teaching me how to make color-mixing or animating through code. It also helped point me in the right direction on bugfixing, realigning, and readjusting the margins and placements of my HTML and CSS elements. Although it was not completely smooth, it is through this iterative, back-and-forth process with AI that I was also able to learn more deeply about design conventions and about making an application such as this.
User Trials through Exhibition
Together with a fellow student, we conducted an interactive exhibition at
KocoGarden Project, Yokohama, Japan from 27th to 30th August. Visitors can use the program with Wacom pen tablets, draw their batik artworks, and have them printed as postcards. Before this though, we also conducted a pre-exhibition trial with 20 works created from 15 users from different nationalities with varying familiarity towards digital drawing and batik-making to make an initial evaluation of the program. Their works were displayed in the exhibition to serve as example works produced from the program. 5 participants were invited to a semi-structured interview with informed consent, and their answers led to some changes to the interview questions for the next set of participants.
30 visitors had tried the program and resulting in 27 artworks. Similarly, these visitors also have different experiences with digital drawing and batik-making, but this time most of these visitors were Indonesian.