Organic Models Grown in Grasshopper

During November 2017 I was lucky enough to be involved in a 2-day workshop run by Lionel Dean from Future Factories. Lionel has been working with 3D printing for many years, and his work is very inspirational – I’d recommend taking a look at his projects which all use algorithms to generate complex, one-off products often 3D printed in precious metals like gold. The projects really highlight the capabilities of 3D printing and push the boundaries of what is possible.

The workshop focused on using Grasshopper, which runs as a plugin for the 3D modelling software Rhino. If you’ve been following this blog for a while you’ve probably seen a few videos and demonstrations as I’ve been learning the program, including my successful Kickstarter earlier this year. The video above is the final simulation produced by the end of the workshop, which was an exploration of mimicking natural growth processes, similar to a sprouting seed. It’s not perfect, but definitely highlights the opportunities of using algorithms to design, as opposed to manually creating a singular static form. In Lionel’s work, he often uses these forms of growth to allow people to essentially pause the simulation and have the particular “frame” 3D printed as a custom object.

20171220 Grasshopper Code

For any fellow Grasshopper geeks, above you can get an idea of the code used to generate these sprouts. There is no starting model in Rhino, it is entirely built from this code. Hopefully this will influence some future projects…

– Posted by James Novak


InMoov Custom Mobile App

It’s been a while since posting about the InMoov robot hand I started building last year. Previously I had everything assembled and was using some direct controls in Grasshopper (plugin for Rhino) to test and tweak the movements of the fingers and wrist (click here to see the last video). That was fun, but not as fun as being able to control the fingers wirelessly from across the room!

Using MIT App Inventor, I’ve created a very basic mobile app that now allows the fingers and wrist to be controlled on my phone using a Bluetooth connection to the Arduino board. It’s nothing fancy right now, just some simple sliders that control the servos, but now that the basics are working some more automated movements could be set up eg. by using the built-in sensors of the phone, movements could be controlled by simply tilting the phone.

20161203_InMoov Display

In order to display the working InMoov hand at the CreateWorld Conference last year, I  also built a display box from plywood since the arm is not really attached to anything and there are a lot of electronics dangling around that are a bit too messy for display. It actually makes moving the hand around and working on it quite a bit easier now since it’s raised up as well. If I had files for this case I would share them, but I went old-school for this one and just created it freehand with a jigsaw – I’m not completely reliant on digital manufacturing (yet!). Inside the box on the right are all the messy electronics, and a hole for the Arduino USB cable to reach through to connect to computer when needed.

I’ve also 3D printed a stamp with my name and the edditive logo to “tag” this project. Using 3D printing to make custom stamps is something I wrote about in one of my first ever blog posts, click here to take a trip back in time. It’s always the little details that bring a project to life for me.

– Posted by James Novak

InMoov Comes to Life

Look! It’s moving. It’s alive. It’s alive… It’s alive, it’s moving, it’s alive, it’s alive, it’s alive, it’s alive, IT’S ALIVE! – Frankenstein.

Yes finally the InMoov robot arm I’ve been slowly printing and assembling is complete and functioning with only the occasional little hiccup. I thought I was really close in my last post where I had assembled all the 3D prints and electronics, but it is definitely the last 10% that takes the most work.

Tensioning the braided lines just right and tying them to the servo’s is a painstaking task, especially in the heatwave we’ve been having in Australia, where you’re trying to resist the urge to wipe sweat from your face while you tie the knot just right… I felt a bit like a surgeon out in a humid jungle performing emergency surgery. A few little broken bits along the way as well from prints splitting or glue not holding, so it’s a relief to finally iron out all the kinks and start playing with the controls.

As you’ll see in the video, I’m using Grasshopper (plugin for Rhino) with the addition of Firefly to control the hand movements at the moment – if you’ve followed my blog for a while you’ve seen multiple demo’s of this software and why I think it’s so good, so I won’t bore you here (if you’re interested check out my project which was displayed at Design Philadelphia 2015). But it basically means I can manually adjust the servo’s in real-time using a simple slider for each finger, or connect fingers to the one slider to control them all at once and create a fist for example. It really makes those final tweaks to the servos easy.

I hope you enjoy seeing this arm come to life – it’s quite inspiring when you see it in real life, especially if you’re familiar with 3D printing and the time it takes just to print all of these parts. Now I can finally start modifying this project and experimenting with the controls, the build is only just the beginning for this robot.

– Posted by James Novak

Grasshopper + Firefly = Light Sensor Prototype

It’s been a little while since I posted any of my experiments using Rhino + Grasshopper + Firefly with an Arduino – but that doesn’t mean I haven’t been busy behind the scenes continuing to experiment! The last video I posted was actually the first showing how it can all come together, and it’s definitely come a long way since then. Time for something new.

This video shows the latest experiment to control the opening of some panels using a light sensor. While relatively self explanatory, the idea is that as more light is detected, the panels open, like a flower opening as the sun rises. This is a very rough prototype to simply test how the system would work and prove an idea I’ve had in my head for a week now. I’d call this a success!

There’s something fulfilling about hacking together a proof-of-concept model like this – it doesn’t have to be pretty, but gets the idea out of your head in the shortest amount of time so you can be confident developing it further, rather than investing a lot of time into a really nice (potentially 3D printed) model that might not even work. With this I can now move on to thinking through both the application and detailing of the concept into more of a product. If you’re interested in finding out more about how this system works, check out the Firefly website. It’s definitely the coolest bit of CAD software I’ve come across lately.

– Posted by James Novak

Arduino + Rhino + Grasshopper + Firefly

For me this is finally the wow moment. Today I have made the connection between all my Arduino experiments and the latest work I’ve been doing in Rhino. This video shows a very simple Arduino circuit featuring nothing more than a potentiometer (basically like a volume knob). Rather than writing code within the Arduino IDE as per normal, you can actually load an add-in for Grasshopper called Firefly, which will allow you to build code through the normal Grasshopper graphic interface. As a designer, not a coder, this really makes a lot more sense to me!

I’ve then added the Arduino to my previous Grasshopper model (check it out here), allowing the heights of the hexagons to be controlled by turning the potentiometer, and dividing the area of each hexagon by a function of this reading. The attractor points still also modify the model when dragged, so if I had some more potentiometers I could potentially control the location of these as well and creat a model that is easily modified using hardware external to the computer. Very cool!

As yet I’ve had no real luck finding any tutorials for Firefly so I think I’ll be making it up as I go from now on. If anyone does have some good links, please leave me a comment.

– Posted by James Novak

Arduino 102

150329 Arduino ProjectsFinally another chance to spend some time learning my new Freetronics Eleven (aka. Arduino). Some of the basics are starting to sink in, the project guide that came with the kit is actually quite good at explaining the reasons why certain things must be done for both hardware and software. The projects pictured above are:

  1. Project #4: using a light sensor to dim an LED.
  2. Project #6: controlling a servo.
  3. Project #6 Customised: adding an LED that turns on when the servo spins in one direction, and off in the other.

Again not the most exciting projects, but at the moment it’s all about making sense of this ‘new world.’ I have included the code for the custom project #6 if you want to build it yourself.

int led = 13;
int delaytime=5;
int angle=0;

#include <Servo.h>
Servo myservo;

void setup()
  pinMode(led, OUTPUT);

void loop()
  while (angle <=180)
      angle = angle + 1;
      digitalWrite(led, HIGH);
  while (angle > 0)
      angle = angle - 1;
      digitalWrite(led, LOW);

Happy hacking!

– Posted by James Novak