Samarth – Leap Dot (gesture controlled drawing)

Fig. 1 Leap Dot running on a Mac using Leap Motion

I wanted to explore drawing through motion gestures and hence created a drawing program that uses Leap Motion as the input device and hand gestures as the drawing tool.

I was also interested in giving users partial control over a semi-autonomous drawing system such that the users’ actions shape the drawing being produced by the program. This idea takes inspiration from a potter’s wheel which spins over time and allows the potter to shape their pottery with their hands.

Combining these two themes, I developed a program in openFrameworks in which a globetrotting dot draws its path on a 3-D sphere and the user is able to control that path through hand gestures. I used ofxLeapMotion addon to use the Leap with openFrameworks.

Fig. 2 Circular traces showing the dot’s default motion

Left on its own, the moving point traces vertical circles having all points equidistant from the sphere’s center (can be thought of as vertically aligned latitudes; shown in Fig. 2). The Leap Motion detects the user’s hands and alters properties of the path being traced according to the following rules:

  1. The normal to a hand is used to nudge the dot to the left or right. This changes the position and radius of the circular path being drawn. The circle reaches maximum size in the middle where it resembles a longitudinal line. The radius gradually tapers off on either side till it becomes zero at the horizontal extremes.
  2. The vertical angle made by the hand normal is used to control the size of the dots that constitute a path trace. Making your hand steeper (“stepping up an imaginary pedal”) makes the dots bigger resulting in a thicker stroke.
  3. The number of fingers detected by the Leap is used to change the color being used to draw. Since the Leap almost always detects all 5 fingers, albeit sometimes inaccurately, the distance from the center of the palm to the fingertips was used to qualify a finger detection. Different colors result from 0, 1-2, 3-4, and 5 detected fingers.

I informally tested my program with a few friends. I briefly explained the controls and left them to experiment freely it. Some of the drawings created by them are shown below.

Fig. 3 Lotus-shaped patterns were the easiest to draw and most commonly seen

Fig. 4 A drawing exploiting the dot’s default looping movement

Fig. 5 Some users showed more control and restraint to create more skilled drawings

Fig. 6 A few other samples produced by users

GitHub: https://github.com/samarth7b/Leap-Dot