Idea: topographic memory





Concept
For the concept of this assignment, I wanted to explore how I can play around with noise and topographic memory to create some compelling visuals. I am still contemplating how I can add personal touch/ a unique variety to each itration.
Algorithm
after getting second last image, tried adding a new feature to the code. that is storing each line as two numbers [ the angle the line points in, how far the line is shifted sideways from the canvas center]
P5.js
My initial idea for this project was to make a visual very similar to memory topographic. But I also know how with making a grid and adding some noise a smooth silk cloth like effect can be achieved.

For the code for the picture on the left I added a function called wrap. This function first gets random numbers on the canvas using map. it also adds 50 to each number to that the numbers are different. Then it takes those points and apply noise again, this helps to make the wobbly kind of effect. At the end it adds or subtracts 0.5 so that each value goes in a different direction. This is done to the whole x and y grid and hence the result on the left is achieved.

The same is done here but instead a focal pint is added. So now each point is moved closer to the focus along the straight line between them. The point’s direction stays the same, and only its distance shrinks. with each line going through the same wrap function as described above. Inside the wrap function here, two more things happen. The first one is pinch. It pulls the point toward the focus, so lines squeeze together. The second one is turn the point around the focus, so lines swirl.
At this point I was still not sure where the code would be going and how I can play around it to get the memory topographic result. I also wasn’t sure if the approach that I have taken is going to take me closer to my initial idea or to something totally different. After looking at the above code, I realized there was a small bug in it. I was converting the angle from degree to radians but instead dividing it by 180 I was dividing it by 90. [code 6] I also played around with the pinch and focus settings. By decreasing the pitch, I was able to get more lighter attraction force and by increasing it the attraction force became stronger.
I tried Appling the same new updated wrap function to the original x and y grid that I had made was pretty surprised the results. However, it still wasn’t going anywhere. And i also felt completely lost in terms of ideas and what to make next.
While scrolling on Pinterest I saw this image of Islamic Geometric pattern and was wondering what if by converging and diverging the lines at specific angles I can make them look like the pattern on the left

A main thing about Islamic geometric pattern is how they replicate and mirror themselves. So, for instance, what is on the left side of the pattern, would also be on the right side of the pattern. The very initial warp function that I made, I used that here. This was done because it had more smoothness to it compared with the one that was using focus and pinch. The focus version bends everything toward a few set points, so the lines get squeezed hard in some places and stay plain in others. The noise version has no set points. It pushes every line a little by smooth random waves, so the bending flows gently across the whole picture with no sudden tight spots. On top of that, I made the picture a mirror image across the middle, both up-down and left-right, so it looks balanced and a bit like a kaleidoscope. To keep the mirror clean, the push fades to nothing right at the center lines, so the two halves meet smoothly with no gaps or overlaps.


To make it look neater and smoother, I tried playing around with the attraction force. I set it very high to 10000 to see how tightly to converge with each other. I actually really liked the output the code gave here.
But the only problem was for each output, I kept thinking how it would look with drawn with the pen plotter. The problem with the results right now is that there are two many lines mostly straight, curved or bending a bit. In my vision I kept thinking how it would look very messy with drawn from the pen plotter.
I tried changing the ways the lines were drawn. So instead of them being straight lines, I tried how they would look if they were a bit more curved or circular. I tried with some spiral lines. Instead of straight up-down, side-to-side, and diagonal lines, it makes curved lines that wind outward from the center. Each one starts near the middle and swirls out like a snail shell. The farther out it goes, the wider the turns get. The way I was approaching this was kind of messy and kept giving an error of infinite loop being runned. I took some help from AI here to help me in achieving the results.



At this stage, I wondered how it would look like if I only took the middle part and the same code is used twice: it draws the border, and it hides anything that spills outside of it. I was pretty much satisfied with how the output looked right now and decided to make these the final drawings that i would give to the pen plotter



SVG/G-code workflow,
After finalizing with the drawing in p5.js, I saved it as SVG. Then i put the file in Inkscape and saved it as the G-code. This was done by downloading the extension, saving it there and then turning it into g-code using the help of the extension. Before turning the file into g-code I changes the dimension of the paper. Initially i kept it 280 to 260 as told by the professor. But for most of my drawings, I felt they would work fine too of I made the page smaller. So, the final page dimensions that i decided on were 180×160.
test drawings and iterations
The first time when I uploaded the code to the Universal G-code there was a technical problem. The code kept stopping midway repeatedly every time after running a couple of lines. Professor Jack suggested that this might be an Arduino problem and we changed the Arduino. It worked after that!!
After changing the Arduino, the next time when I was using the pen plotter to draw the code it was acting in a very interesting way. Instead of drawing in a designated area on which it was supposed to draw, it kept going down and down. So, each stroke after the other was drawn at a bit lower position. I tried changing everything here and I think there was the problem with the g -code. After changing that, the pen plotter drew pretty smoothly. The below picture shows what the plotter was doing.

Now that i had gotten the plotter to work, I tried using different pens and different types of paper. I first tried a ball pen on a normal A4 sheet. this drew a very interesting pattern and I really liked it. especially given that this was the first successful attempt after a dozen unsuccessful ones.

After that the next iteration, i tried switching to a different thicker paper but the same pen. The problem here was that the pen got lighter at some parts while it stayed dark at others.

Spo i tried the same paper but different pen. This was a pointer. Since in my patter it requires some part of the pattern to be drawn repeatedly, the paper kind of started to get soften and tear down from the center.

So I changed to a pink ballpointer with the same thick paper. And I think I really liked how the results started to look. Hence my four final drawings are by the same colroed pen.

the final series of at least three drawings
So in the final series I chose my four most favorite patterns generated by the code. I love how at the end, they all have a perfect circle in the center. For the third image, my friend said this kind of reminded her of the sunrise. I particularly love the last one, because all of the other patterns were being generated the same in both circle and rectangle. but the last one I only saw being made in the rectangular mode. I am guessing this is because in the rectangle mode, it was able to cover some more area hence it got the curves. It kind of reminds me of DNA which is pretty cool. I still am not sure if I had more time how i would be developing it more. Also, I know these images kind of loom skewed here, but ig that if because of the formatting.




critical reflection on how the pen plotter, color, layering, and physical materials shaped the final work.
I think a critical part of a pen plotter is how all of the lines of the drawing have the same strike width because of the same pen it uses. I love how in p5js you can play with the stroke width and get different interesting visuals. If I had more time i would definitely love to explore that more and see how it would look to use different pens. But ig there is still the problem that if a thicker pen is used its ink kind of spreads. Also, I tried two different kind of papers with different thickness. I think keeping the pattern that i made in p5.js in mind, for my patterns the thicker the paper, the more interestingly and smoothly the pen was able to draw the patterns.
Overall, this was a very fun experience, and I really loved assembling the pen plotter and then figuring out how it draws and then watching it draw. This was so satisfying to see a whole week’s hard work come into life.

















