Generative Mandala

Project Title
Generative Mandala (Assignment 3)

Group Member
Sananda Dutta (3180782)

Project Description
In this experiment the task was to create a tangible or tactile interface for a screen-based interaction. A strong conceptual and aesthetic relationship was to be developed between the physical interface and the events that happened on the screen using Arduino and Processing.

This experiment was my dig at generative visualization wherein you can interact and generate visuals of your choice. My fascination towards geometry, its diversity and also the possibilities of geometric variations is something of great interest to me. So, I decided to make user specific visualizations. In this, I took values that could be used as variables and then assigning them to manual manipulation of variables to create geometric patterns.

images

Image: The Nature of Code

The experiment is a simple yet complicated act of how a simple geometric shape can attain different characteristics once we add repetitive components of the shape and alter them at the same time. I have played around with the number of vertices, R value, G value, B value and reset function of the repetitive geometry. The challenge of connecting Arduino to Processing and then making them communicate to receive inputs from Arduino and then depict the output in terms of Processing was something that worked in favour of this project.

Visuals and Images of the Process
Trying my hands at generative geometry with 2 components as variables – Red value and number of vertices of the shape. The circuit looks something like this:
10

rotationalsymmetrydrawingfritzing_389ez16rzh

Image Ref: Project by eschulzpsd on Rotational Symmetry (Similar to the initial work in progress phase of  2 potentiometers)

After finalizing the 4 variables that can alter the visualization, I tried to give them a more cleaner look for presentation purposes by keeping things minimal and easy to understand, such as shown below. Here, the handy-sized four potentiometers (10k) and a temporary button are being attached to the box inside which is the space to keep the breadboard and Arduino board.
11

After making the initial setup, due to fluctuating values of R,G and B along with fluctuating readings for the number of vertices, the first couple of visuals looked similar to the one below. These were worked upon, with proper soldering and connections and mapped to get decently stable values.
12

After mapping the Analog input values from the potentiometer properly to R, G and B from (0,255) and mapping the number of vertices to (0,10), the results looked better. Below are some visuals of various digital outputs.

frame-1

frame-2

frame-3
Images above: The 4 potentiometer values correspond to no. of vertices of the shape, Red value, Green value and Blue value. The last button corresponds to the reset visualization button.

 

Links
For Video
Work in Progress: https://vimeo.com/371047180
Final Screen test with code: https://vimeo.com/371043434
Final Setup Video: https://vimeo.com/371032587

For Code (Github)
Arduino & Processing: https://github.com/sanandadutta/genvisualization

Project Context
I was always fascinated by art that could be generated by coding. The amazing combination of visuals with code, can create mind blowing visualizations. This project gave me an opportunity to push myself to actually live that aspect and be one of those creators. Being a music lover from childhood, I have always been an admirer of the graphic visualizations that would alter with the pitch, beats, base, tempo and frequency of the music. When these aspects of music were mapped to the moving aspects of a particular algorithm, the result was nothing but a treat to watch. The use of colours, motion, waves, lines, thickness of stroke, etc could create something visually crazy. Below are some explorations which have given me a good idea of which direction to choose in terms of the project.

gart
Image: Math Rose(s) by Richard Bourne (https://www.openprocessing.org/sketch/776939)

the-deep-by-richard-bourne
Image: The Deep by Richard Bourne (https://www.openprocessing.org/sketch/783306)

wobbly-swarm-by-kevin
Image: Wobbly Swarm by Kevin (https://www.openprocessing.org/sketch/780849)

The works of amazing visual artists who have played around with code in terms of math, particles, fractals, lines, arrays, geometry, branching, visualizations, etc. have been my inspirational pillars in order to take this project ahead. Deep diving into the various factors that can be treated as variables and then mapping them based on motion or potentiometer values is something that gave a sense of closure to this desire to step into the field of generative art.

What began with mapping variable values of (0,1023) of the 10k potentiometer to the no. of vertices, R, G and B values was a step forward into this exploration. I also made the visualization boundary finite in terms of the screen boundary so that the overlapping effect could create wonders. With orderly gaps in geometry formations that showed transition in terms of shapes such as line, triangle, square…decagon using coding was a learning experience. Some major functions that this project relied on were: map(), millis(), random() and generative algorithms for the radii which was relative to the outward-inward motion.

Getting the hang of the initial requirements of the assignment from the projects of individuals and groups on makershed.com and Arduino Project Hub came in handy so as to get an idea of the possibilities that can be explored. Using the Analog value inputs for the potentiometers and the Digital Pin for the temporary button and then importing these to Processing was made simpler with Kate Hartman and Nick Puckett’s code. Learning to import analog and digital input values and then mapping them to the relevant potentiometers gave the exploratory visuals.

frame-4
Image: Live demo to the audience about the relation of the knobs to the visual

Since this project was a demonstration, I purposely did not name the knobs on the setup so that the audience can play with them and figure out what each one of these stood for. Seeing the audience interact with geometric visualizations and relate the values on the knobs to the visualization was in itself an experience. I am glad to have explored this aspect of coding. On how i would like to take this ahead, I would say, I would like create a fading trace path for the shapes and also explore their mapping to external noise/sound. I would also like to look into creating more variations of generative art in response to different stimuli that are introduced into their environment.

Links and References
eschulzpsd. (2018, Dec 23). Rotational Symmetry Drawing. Retrieved from Project Hub: https://create.arduino.cc/projecthub/eschulzpsd/rotational-symmetry-drawing-613503?ref=tag&ref_id=processing&offset=8

III, F. M. (2016, Nov 30). Convert Scientific Data into Synthesized Music. Retrieved from Make community: https://makezine.com/projects/synthesized-music-data/

openprocessing.org. (n.d.). Retrieved from Open Processing: https://www.openprocessing.org/

Hartman, N. P. (2019, Oct). Exp3_Lab2_ArduinotoProcessing_ASCII_3AnalogValues. Retrieved from github: https://github.com/DigitalFuturesOCADU/CC19/tree/master/Experiment3/Exp3_Lab2_ArduinotoProcessing_ASCII_3AnalogValues

 

 

 

 

 

 

 

A Circle of Lights!

 

0

2       3

Image: Stills from our experiment at different phases of the project

 

GROUP MEMBERS

Catherine Reyto | Masha Shirokova | Sananda Dutta 

 

PROJECT DESCRIPTION 

A Circle of Lights is a kinetic sculpture based on the concept of a children’s mobile, that involves users into a colourful play of reflections and shadows. It consists of acrylic transparent geometric shapes with the intent of reflecting LEDs and project them on the surrounding area (walls, floor, ceiling).

Interaction with the mobile is done by means of the distance between people surrounding it entering in and out of the proximity range of the sensors.  The combined (three) sensors are all connected to the Servo which in turn, spins the whole sculpture. Through fluctuations in distance, participants are able to affect the speed of rotation and activate the lights (the closer they get, the faster it spins!)

 

PROJECT CONTEXT

”It’s just beautiful, that’s all. It can make you very emotional if you understand it. Of course, if it had some meaning it would be easier to understand, but it’s too late for that.”  – Marcel Duchamp

We were inspired by Mobile work of these artists: Alexander Calder,  Alexander Rodchenko and  Edgar Orlaineta. And from our Digital Fabrication class, we had taken inspiration from a recently completed project by our classmate Arsh.  He had laser-cut the elegant shapes of Arabic script into three sheets of Acrylic, then layered the sheets together to demonstrate the beautiful reflections when in contact with direct or diffused light sources.  

4

Image: Black Gamma by Alexander Calder

 

5     6

Images: Hanging Spatial Construction No.11 and Oval Hanging Construction No.12 by Alexander Rodchenko


7
Image: Solar Do (It Yourself) Nothing Toy, After Charles Eames by Edgar Orlaineta

 

8    9

Images: Artwork by our classmate Arsh (Arshian Sobhan Sarbandi). His assignment for Digital fabrication course.

What characterizes all  types of mobiles is the fact they rely on balance and movement in order to achieve their artistic effect.  They are composed of a number of elements; often abstract shapes, interconnected with wires, strings, metal rods or similar objects, whatever serves best in maintaining constant movement while in a state of suspension. They represent a form of a kinetic sculpture because, unlike traditional sculptures, they do not remain static, but are literally mobile, set in motion by air currents, a slight touch of an infant, or even, as in our case,  a small motor. 

By the sequential attachment of additional objects, the structure as a whole consists of many balanced parts joined by lengths of fishing line, whose individual elements are capable of spinning when prompted by the Servo’s propulsion or direct contact.  Because of their weight (we deliberately opted for a material that had some density, rather than say, card stock), gravity assists in naturalizing the animated movement of the shapes through space with a bit of bounce and retract. 

While classic mobiles are manipulated by air and space, our idea was to upgrade the concept with Arduino and Servo functions, so users could actually interact with objects. Depending on location, participators could activate one, two or all three sections of LEDs and alter the speed of the Servo. 

 

PROCESS

Weary of time restraints but eager to get our hands dirty with electricity we set out to combine basic but as novices, daunting Arduino functions ( sensor-reactive Servo and LEDs).  Drawing on our combined experience as graphic designers, we planned to incorporate this circuitry in a way that could trigger interactive movement of an object containing simple but colourful shapes.

Initial ideas – Before starting on the ideation process, we worked on building primitive circuits to better understand the principles of working with Arduino.  Having no prior experience, we felt we needed to get a better sense of our bearings in order to set a benchmark for what might actually be feasible for us to build in a short time-frame.  Once we’d gained some sense of familiarity, we then attempted to combine various modes together to see how many sensors we could use at once. Our process with Arduino depended heavily the learnings from our latest classes that covered topics about getting LEDs blinking in relation to the sensor’s threshold limits, Servos working with a timer and multiple LEDs blinking at alternate times.  

From a product standpoint, all of our initial ideas involved the creation of an interactive art piece which would combine the sensors and LEDs.  We discussed assembling a circuit of lights that could be elegantly diffused behind a thin-papered painting. We explored the concept of a movement-responsive garden, where the LEDS could be arranged in the pattern of a flower petals. These would light up once proximity to an object was detected by the sensor. We then attempted to transfer this concept onto a cubic mesh as well, wherein the sensors placed at the vertices of the cube would sense an object in their radar and light up particular sections of the cube. These ideas were explored when we had misunderstood the description of the assignment: we thought there was a restraint of either using LEDs or servos, not both working together.  After this detail was clarified, we felt and increased freedom to incorporate the Servo motor as well. We opted to increase the level of challenge by incorporating operations of both a Servo motor with synchronized LEDs. As a group, we also wanted to mix both platforms in order to gain experience about how these applications work together.

 

MATERIALS AND ASSEMBLY

Tools

  • Laser-cutting
  • Soldering

Material

  • Acrylic sheets
  • Fishing tackle (line, swivels)

We began by laser-cutting the circular base that would serve to support the suspended objects beneath (also laser-cut acrylic), and support the breadboard circuitry on its surface. We also laser-cut patterns from fluorescent acrylic sheets for an added dimension of light reflection.  These shapes were attached by fishing line (on account of both its transparency as well as strength) that were in turn attached, by means of a swivel around the rim of the acrylic disk we’d designed to uphold the breadboard and circuitry (which we soon nicknamed ‘the bomb’ on its resemblance to this).  

 

10 11
12 13

Images (L-R from top to bottom): Live scenes from laser cutting lab, final cut-outs for hanging elements in the mobile, servo base with points for attaching the breadboard base, breadboard base with LEDs arranged on them.

We then designed a smaller disk (the yellow circle in the above left image) to be at the very top of the mobile, firmly attached to the servo’s propellor piece. The triads of holes are for threading the topmost strings of the mobile. The hole at the centre is for the screw that attaches to the motor head.

To achieve the goal of a mobile with interactive light, we opted to solder our LEDs into three separate parallel circuits, assigning each section to one of our three sensors respectively. Each circuit consists of 4 LEDs, and each is assigned its own pin on the Arduino. The desired outcome is that the LEDs would light up once the corresponding sensor detected a disturbance within the threshold limits of its radar.

14    15

High hopes: Planning the animation of the LED circuits

 

CODING

Main 

  1. Parallel Circuit
  2. Servo+Sensor
  3. Servo Sensor
  4. Servos Multiple LEDs

The project being a fairly open experiment, we were able to explore freely with physical  materials, LEDs, sensors and motors. But freedom came with a price; It quickly became quite challenging to carve a clear path in what seemed like a constant stream of possibilities of what we could do (or where things could go wrong). Being weary of our limited time-frame, we conceded to create something that we hoped would be reasonably possible to code and assemble given our limitations of time and knowledge.  But we kept coming back to the idea of a proximity mobile (noun: a decorative structure that is suspended so as to turn freely in the air), as seen hanging over the cribs of babies to lull them to sleep.  But as aforementioned, ours would have the added feature of physical interaction.  Though there were complexities in the concept, our strategy was to challenge ourselves in seeing if we could pull it off in time, and even if we failed, we would still have a beautiful piece.  It would be made up of various cut-out shapes that carried some small degree of weight, suspended by unobtrusive strings, and have the additional feature of a parallel circuit of harmonized LEDs.  The idea was that the light animation would come into effect by response to movement within the threshold limits of the sensors’ radar. Once the participators move within range, each of the three sensors would initiate the Servo’s rotation (180 degrees in either direction). 

 

Coding Syntax used

Libraries used – <servo.h> and <animationTools.h>

Float

Serial.begin

pulseIn

If () and else()

Oscillate (reference taken from https://github.com/npuckett/arduinoAnimation)

 

Final Code

https://github.com/sanandadutta/Circle-of-life.git

 

 17  parallel

18

Image: Soldering the parallel LED circuit Images: The Parallel LED circuit represented above and the end result shown below it.

As you can based, based on the above images, 3 sections – A, B and C have formed after having 4 LEDs in a parallel attachment amongst themselves, in 3 separate parallel connections. These sections have been assigned 3 separate sensor pins which have been assigned a range of 120 degrees for interaction with any sort of physical disturbance.

16

Diagram A: Sensor mapping to the LEDs (Sensor 1 assigned to Section A, Sensor 2 assigned to Section B, Sensor 3 assigned to Section C)

 

19

Diagram B: This diagram is a front view of the entire setup. The Servo motor is fixed to a small ceramic base which in turn supports the larger ceramic base that hosts the breadboard circuitry (including the Arduino). The Servo motion triggers a three-tier rotation; starting from the top, which then pulls breadboard base into an offset rotation, then lastly, tows the strings of the mobile pieces into a 180 degree rotation. 

 

TESTING

  • sensor with led; 
  • sensor with servo;
  • sensor with led and servo;
  • parallel circuit of LEDs 

Link: https://vimeo.com/367269220

Sensor threshold 1, 2 then 3, with LED circuit  https://vimeo.com/367269685

Once we could read data from the sensor input, use it to turn on the LEDs and had established an output response from the Servo, it was time to start doubling (actually, tripling) up.  We set up our prototype (so far consisting of an 8” diameter disk cut from foam-core) in a quiet, disruption-free room for testing the range of our sensors together. Nick’s tip about taping distances to the floor came in very handy for this part, and we found that especially true when testing where the threshold limit of each Servo overlapped with the next.

22

Image: Making contact – Configuring the sensors and their respective LED circuits

 

 

Testing the structural design

It was at this point in the testing phase that we started making iterations on our prototype in terms of material design and overall physical mechanics.  An 8” diameter disk meant a very small area and thus too much overlap for the sensor thresholds. This discovery led to a makeshift upgrade in the form of a piece of cardboard, cut to an 11” diameter, intact with a very precisely-measured place-mark at the centre for the Servo (all three of us tumbled down a rabbit hole where somehow the accuracy of this place-mark was of utmost importance).  

The mechanics of our material design were becoming complicated.  We had managed to get our prototype in motion by fastening the Servo to the underside by harnessing it with layers of electrical tape.  Our device was now taking inputs from all three sensors (arranged on the large disk in an equilateral triangle), which activated the three LED bulbs that served as stand-ins for our soon-to-come parallel circuits, as well as the Servo (thanks to the Oscillation function from the Animation Tools library.  But we anticipated a few issues regarding suspending decorative pieces to the base.  For one thing, we would need a material more sturdy than cardboard in order to support the weight, but the bigger concern was the jerky movement of the Servo. 
Because of the Servo’s 180° limit, we were concerned that the back-and-forth rather than circular motion of the suspended objects might look awkward.  

We wondered if we could increase the range of motion of the dangling pieces by means of an offset caused by gravity.  To test this, we added a second tier to our prototype: a small circular base, where the Servo would sit, that would in turn suspend the second, larger circle.  The decorative pieces would hang from that larger disk. Putting our pooled knowledge of Physics (limited to street-smarts and common sense) to use, we guessed that the speed of motion would decrease with each level of suspension (from the first tier to the lowest-ranking decorative pieces), but that the range of movement might appear to increase thanks to the pendulum effect.   After testing this addition to our prototype showed positive results, we set out to design both the large and small circular bases in Adobe Illustrator, intact with hole placement for the threading, sensors and Servo motor. We wouldn’t be able to know whether the two-tiered system would actually work as we hoped till we attached decorative pieces.  

 

23 24 25

First sketches of the two-tier design

We also had to figure out a way of suspending the larger disk from the smaller, top-tier disk.  We did so by way of fishing tackle; threading it in and out of laser-cut groupings of holes instead of cutting individual strands of fishing line, to make the length adjustable.  However, the drawback to using this load-bearing translucent string is that trying to maintain order is like herding cats, and that unyielding lack of control negated any flexibility in this system.  Hindsight led us to conclude that we should have limited its use to serving as a measurement tool. In using it to establish the best distance between the two disks, we could have cut the strands accordingly and then replaced them with individual strands of wire.   As a last-ditch effort to streamline the design, we opted to shorten the distance between the disks, and though this did help avoid tangling, there was an oversight : the lack of slack on the suspension lines made our would-be meditative mobile look rather spastic in presentation.  

26
Images: “Get a grip!” – Maneuvering the unwieldy fishing line through the suspension holes 
27


Links for testing:
https://vimeo.com/367268855

Final Link: https://vimeo.com/367905506

28

 

REFLECTION

As perhaps others in the class can attest, Experiment 2 was in many ways an exploration of restraints.  With the mid-term pile-up of assignments and presentations in our respective classes, we found our initial challenge was in figuring out when we could even find time to meet as a group.  We were also learning as we went, and that our ideation process depended on what material we were presented with in upcoming class lectures. We would watch the videos from class, attempting to replicate what had been demonstrated, repeat the motions ourselves, then try to put these findings to use creative ways.   It was a little exasperating but as a result we learned a valuable lesson about how to be independently resourceful.   

While from the outset, we did all agree that our project would need to be feasible to successfully produce for the rapidly-upcoming deadline, it wasn’t easy to quell our shared enthusiasm for working with LEDs, motors and sensors for the first time.  All three of us coming from graphic design backgrounds, we were simultaneously excited and distracted by colour and light sequencing. The mobile had been but one of many fanciful ideas. We wound up choosing it over the others because although the complexity of the product design risked falling outside the scope of feasibility, it was hard to resist the challenge of making a moving artwork installation that responded to people as they approached it.   Had we more time together to sketch out a road map in the way of a detailed storyboard about how the design would be assembled, we may have gained much from researching solutions to our pain-points instead of stumbling blindly into them like boobytraps throughout the process.  

29

Burning the LED circuits at both ends: final stages of assembly.  

Ultimately the main conflict was that there was a lot of new information being absorbed with too little time to move through cycles of practical ideation.  Instead, we brainstormed what might work then just rolled up our sleeves and hoped for the best.  We crossed bridges when we got to them, like how to suspend the Servo – which wound up being held up by a clamp, like pincers on its poor plastic temples, and fastened to a bar of LED ambient lights on the ceiling.  Another hurdle was how to extend the number of LEDS in the parallel circuit while still getting them to work in conjunction with the Servo rotation. We never did manage to resolve this but we were at least finally able to pinpoint the issue: The pressure on the small Servo to not just carry the weight of the entire three-layer assembly of acrylic objects, but also spin (read: thrash) them, was consuming a lot of voltage.  There was simply not enough power to go around (pun intended) to light the 12 LEDs of the circuit while the motor spun. Had we a little more time, we’d have opted to switch up the Servo for a larger motor, but we had already run out the clock on that part of production.  

A truly satisfying and memorable moment for us was when we succeeded in getting all three sensors responding at once, in conjunction with our three LEDs.  This was after testing the threshold limits of each and tweaking adjustments in the code for several hours. It was late in the evening when we saw all of this coming together on the spinning disk for the first time, and we had a group hug while looking on proudly at our achievement.  That did a lot to double up our drive in the remaining days. We’d proven to ourselves that we were actually capable of pulling off something that only a few days prior had seemed absurdly over our heads. None of us having any prior experience working with Arduino, electricity or much understanding of code fundamentals, it felt good to come that far in a short amount of time while working on something artistic and original.

Ultimately, our experiment was fatally flawed on two counts: 1) we should have resolved how to suspend the Servo before getting started.  We likely would have foreseen the issue had we mapped out the design in a storyboard, which would have likely been invaluable in terms of either finding a viable solution or if not, possibly resulting in eschewing the concept altogether, and 2) There were simply too many moving parts to work through in too little time.   The added layer of mechanical engineering that came with the material assembly meant a lot of questions about physics that we were unable to answer, for one because we barely knew how to ask the right questions, but mostly because we literally had our hands too full with learning to code for circuits of sensors, lights and motors.  

That being said, all of our hard work did result in a beautifully decorative piece, that in spite of the jerky motion, did seem to captivate our classmates on presentation day in the way we had hoped.  The potential peeked out of the iteration stage our device found itself in when we presented. Had there been more natural light in the room, the group might have been treated with a myriad of overlapping, colourful reflections on the floor and surrounding walls.  But with the lights off, we were able to envision what a few LEDs among the spinning translucent decals could do for achieving a similar effect, emitting fractals of reflections across the ceiling that moved around as participants walked in and out of the threshold area below.  In this respect, we felt we had achieved something more significant than a working product. We had attained a strong benchmark of iteration, one that opens doors for future designs for all three of us, working together or separately in our artistic design practice.  

 

REFERENCES

  1. Culkin, J., & Hagan, E. (2017). Learn electronics with arduino : An illustrated beginner’s guide to physical computing. Retrieved from – https://ebookcentral.proquest.com
  2. Digital Futures’ GitHub by Nick Pucket –  https://github.com/DigitalFuturesOCADU/CC19/tree/master/Experiment2
  3.  Significance of Mobile Art – What is Art Mobile –  https://www.widewalls.ch/mobile-art-mobiles-kinetic-art/