Rube Goldberg Forever

In the land of cubes the sphere is king

Find the project on GitHub

The sketch runs smooth, but my screen recorder likes to be slow…

The story here isn’t as fully developed as it could be, rather this is an exploration of vaguely related themes and references. There’s blue things and red things and (hopefully) surprises and throwbacks. The non-deterministic physics of Unity threw off my plans of a predictably machine, so rather I tried to create the opportunity for little moments of delight, such as if you happen to see the red ball again, or you notice that your blue light is “winning”.

I started out hoping to make a zero-G Rube Goldberg, but as I was playing around with the rocket mechanics I discovered that it could be a lot more fun/interesting to have the rocket fly around haplessly in a gravitied environment, then crash and become part of the scene itself.

The zero-G plan turned into an anti-G plan, in which the ball activates a giant red button because of course there’s a giant red button. The giant red button flips the gravity of the world and all the falling pieces begin falling up.

I played around with how to handle the anti-G section for a while, and settled on a smooth camera flip a brief pause after the gravity flips. It seems to nicely accentuate the vertigo of switching the direction of ‘up’, and it’s a neat little mindf— that what were the bottoms of things are now the tops.

Finally, once one has in place a button for switching gravity on a whim, it is almost impossible for one to not put another button ‘above’ it. With no official end, this machine will keep on going until the physics breaks or the iewer gives up. It is a slow march from the joyfulness of bouncing balls and blinking lights into the endless despair of hoping something will change but knowing that it won’t.

The Joy of Making Things

I enjoy stories. Many years ago I stumbled upon the realisation that, since I enjoy stories, perhaps I would enjoy making them too. I did.

I enjoy games. I am now at a point where I am considering that, since I enjoy games, perhaps I will enjoy making them too.

Stories are for many things. For me they are sometimes about discovery or escape or explosive emotional payoffs. The best stories are for people mostly.

Games are for many things. For me they are sometimes about discovery or escape or challenge. The best games are for people mostly.

Continue reading “The Joy of Making Things”

Time to look up!

Our first assignment was to GTFOutside and find something in the night sky. I had big plans to use my larger camera and long exposures over the weekend but alas I was struck with a terrible fever and going outside became a very bad idea.

So I resorted to ‘taking a quick snap’ with my phone on the only clear night that was left to me. The first trouble was of course finding something in the sky. With NYC’s light pollution and tall buildings everywhere it was tough to see more than one or two faint spots. The second trouble was when my phone told me to move back to improve focus, which was dumb; how can I move back from the sky?

Continue reading “Time to look up!”

100 Days of Spaceships (Completed!)

Partially as part of a class and partially for my own development/amusement, at the beginning of 2019 I embarked on a ‘100 Days of Making’ challenge. The journey is to make something new along a theme every day,.

I chose spaceships. One day I created a new 3d model of a spaceship in Blender 2.8, the next I animated it.

A Video Compilation of All 100 Days:

Final Presentation with some musings about the process.

24 Hour Responsive Reading Lamp (Behaviour)

This post is a follow-up to the fabrication post about the same project. Still a work in progress.


Lamp: Mkr1000 + Hue + Neopixels

The lamp is a combination of a Mkr1000, Neopixels, and Philips Hue. The Mkr1000 acts as a server, listening for http requests from the user-interfacing web-client, requesting time data from the WiFi router, and sending http requests to the Hue Bridge.

User Interface

Very bare bones at the moment, the web interface allows for users to select various functions for the light (for example, Candle Mode or Timing Mode).

The interface is made in p5.js. Once a button is clicked an http requests is formed and sent. I was having trouble/errors with the response, so the sketch ignores any responses.

Code Overview



Problems encountered

Epoch value and timer

The only timelapse documentation I have at the moment of the lamp is quite glitchy; for a while I could not determine what the problem was.

It turns out for some reason the ‘get epoch’ function from the WiFiRTC example was intermittently returning zero. I modified the code to continue requesting epoch forever:

Get Epoch
if (numberOfTries >= maxTries) {
    Serial.print("NTP unreachable!! Trying again");
    while (epoch == 0) {
      epoch = WiFi.getTime();
      Serial.println("Trying to get epoch");


24 Hour Responsive Light (Fabrication)

Similar to original Long Distance Reading Lamp, this bedside light is intended in its final form to connect people over distances. For this first iteration, however, my goal is to create a solid 24hr response cycle – a ‘default’ state, so that the lamp can work well as a standalone bedside light.

After experimenting with a few form factors (I really wanted to make a nice cylinder, inspired by Casper’s Glow Light), given the time constraints of this assignment (and the wallet-constraints of being a student), I settled on a cheap ($9), off the shelf diffuser. This allows me to focus more time on the interaction and progression, and less on fabrication and (potentially expensive) materials.

Hacking the light fixture to accommodate my extra circuitry wasn’t too complex, though I took care to make sure that the AC circuit was safe.

An underwriter’s knot helps provide strain relief.
Carefully soldered into the base of the socket, with as little wire exposed as possible.