Python Mode in Processing

I finally got around to using Python mode for Processing 2.x. I have used pyprocessing for 1.x in the past but the current version is supported by the official IDE. While I am not very good in either, I am more comfortable with Python over Java, Processing’s default language.

I create a few simple “sketches” to get used to the format. After comparison of a few animations in both languages, Python mode was noticeably slower – around 2-3 FPS versus > 15. I worked around this issue by saving each frame as an image and combining them with GIMP to make a .GIF animation. Here are a few sketch outputs – both static and dynamic.






Niles – the Ball Bearing Glockenspiel

I have been working on a ball bearing glockenspiel. The contraption will be comprised of 3 systems – ball bearing launcher, ball bearing collection and return mechanism, and the instrument itself.

I started with the the launcher. There will be 25-30 notes and a fast and accurate launcher will be needed for each one. My design parameters were to launch 4 bearings a second within a 1/2 inch diameter over a 2 ft. drop. Here’s my first attempt.

2014-12-20 17.50.55

2014-12-20 17.51.03

A pipe feeds ball bearings to a rotating platform with a hole just large enough for one bearing. When it’s ready to drop, the servo rotates the platform by about 30 degrees and the bearing falls out the bottom. The platform then rotates back  to the home position and loads the next ball. The mechanism could definitely deliver the balls quickly but the accuracy just wasn’t there. The balls would hit the side of the hole as they were exiting. On to the next iteration…



I forgot to take a picture of this one so I am posting the drawings instead. The concept is the same as the previous version, except the slider is linear instead of rotary. I added a longer channel after the initial drop to guide the ball bearings as they fall. But I had the similar accuracy issues.

So, I kept iterating the design to minimize potential disturbances after the ball is launched. And of course, decided to use magnets. The bearing are made out of steel and magnets suspend the ball till a servo controlled “plunger” launches them. This design worked beautifully! I have attached two slow motion videos below. As you can see in the second video, it’s so accurate the balls are literally hitting each other like Robin Hood “splitting an arrow”!

Next, I will work on making this design more compact and also, several ball return mechanisms.



Rainbow Lamp

A student from a local university reached out to us earlier this year to create a light based object for a class project. I volunteered to help her and after many iterations, we decided to build a diffused RGB Lamp.

The finger-jointed acrylic body was designed using and laser cut.


I used the addressable RGB LED strip from Adafruit, called Neopixels, to provide the lighting effects.  The LED strip was wrapped around a PVC pipe in a spiral so it could provide light on all four (4) sides. The spiral spacing gets tighter near the top to either to vary the lamp density for a cool effect or I got lazy since this was done at 1AM on a Monday morning – I’ll let you decide.


A Teensy 3.1 controls the strip using the Adafruit Neopixel library. Two (2) sets of three (3) rechargable NiMH batteries were used. At full charge, a bank provided 3.82 Volts. While the micro controller was running happily, the LEDs were noticeably dim. While the vellum paper diffused the lights effectively, the distance to the acrylic was relatively small, so brighter LEDs would have decreased the desired gradient effect anyway.


We cut the vinyl logo and border using a Silhouette CAMEO. The final design had to be mirrored since it would be adhered to the inside of the acrylic case using transfer paper. The text on the top did not cut very well so we’ll re-cut that bit with more optimized fonts. After seeing the results, I think I’ll create a lamp for myself as well.