Introduction to Blender 2.8: Building a Spaceship

At the beginning of 2019, to try familiarise myself with Blender 2.8, I started a 100 Days of Making project, on the theme of spaceships. On one day I modelled a spaceship, the next I animated it.

In an attempt to share what I’ve learned, I’m running a workshop at ITP Camp centered around learning Blender by building a spaceship. The workshop is only 3 hours, so it certainly doesn’t cover everything there is to know, but hopefully it’ll give you a good jump start to your 3D modelling journey!

Continue reading “Introduction to Blender 2.8: Building a Spaceship”

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.

Modular 555 power cycler


As part of the final for Energy, Rashida and I are dealing with 555 timer circuits and intermittently power cycling a rover. For this class I’d like to create a modular 555 timer circuit that is A) adjustable in its cycle, and B) modular in its use.

Here are the schematic and calculations for the 555 timer circuit. Rashida uses a different configuration of the 555 timer, and is planning on allowing the resistors and capacitor to be adjustable.

I plan to sacrifice some of the adjustability in favour of a mostly SMD (and thus smaller) board. To allow for a bit of flexibility I will use a potentiometer as R2, and include two selectable capacitors.


R2: As seen here, R2 affects the time off in relation to R1 (time on). Unfortunately with the basic setup the time off can never be more that 50% of the duty cycle. Rashida’s solution is to us an ‘improved’ 555 timer circuit, my solution is to use a logic inverter in front of the relay.


  • 47 uF capacitor
  • 470 uF capacitor
  • Transistor (or logic inverter)
  • 500K resistor
  • 500K potentiometer
  • Toggle switch
  • Relay