If any of the info on this website was useful for your projects or made your head spin with creative ideas, and you would like to share a token of your appreciation- a donation would be massively appreciated!

Your donation will go to my Robotics Fund, straight towards more sensors, actuators, books, and journeys. It takes a lot to continue building these robots, and I’m really thankful of everyone who helps encourage me along the way.



“A wise robot once said to me through Serial.println- that robots teach us about ourselves.”

All posts tagged Processing

Botbait and the Space Fish!

Here is the latest project that I made: it’s an interactive Processing application where Botbait can play with virtual space-fish!

Watch the video here.

One of the things that I think is cool about Botbait and the Space Fish is that it ties the physical robot into a virtual world. Combining both of these together makes more sense, than just having the robot alone or the application alone.


The way it works is that there is a fluid dynamics simulation with particles in it. A few of those particles are represented as fish. Whenever the fish are within a middle ‘threshold’ of the screen, a message is sent to Botbait with the number of fish in the area.

Botbait turns on the same number of LEDs in its tail as there are fish in the area. For different thresholds, it will also blink its body LEDs differently. When there are 4 or more fish, it swooshes its tail. Also sending back a message to the application to add forces to the fluid dynamics simulation, making the fish ‘swim’ away.

While developing it, I noticed that sometimes the fish would become ‘stuck’ in the corners. So, I added some forces that were emitted from the corners and sides every second or so. This eliminated the problem. Also, there are minor forces emitted at random locations in the screen to keep things moving around.

You can press the button on Botbait to cause a minor tail swoosh and corresponding force in the simulation. Also, the pre-project activity to all of this was to port the MSAFluid example to Processing 2. :P

The end result is fun to watch, quite mesmerizing.


You can download it, view the source, and learn more, here.

It didn’t take many months to create this software, but there were two HUGE mistakes with Botbait that took up a tremendous amount of time.

#1: Releasing before documenting

I didn’t want to push back Botbait’s release date, because I needed to release something to get sales, buy food, pay rent. So I released it, with already a decent amount of documentation (video, and 20 minute behind-the-scenes video), thinking that I will document it later. It just became more ‘laters’ than ‘done’. Botbait is completely documented now, and people have built Botbait using the instructions.

At this point, I don’t even know why I was so stupid to release something without documenting it. Did I think people would magically download the information into their brains and be able to know everything about Botbait? GRR! Never EVER doing this mistake again.

#2: Kit electronics

Botbait originally uses an Arduino Mega and a servo driver board. This is quite expensive to include in a kit with electronics. So, I had to re-design the kit electronics to use the Arduino Pro Mini, and a few shift-out breakout boards. Soldered everything together by hand on some perf board.

In the end, it has more functionality than the original Botbait (PWM on the tail LEDs and body), and the electronics fit inside of its body. So, a good lesson to learn about using off-the-shelf products, and manufacturing for small quantities.

Now that these fails are done, I can propel forwards and start making some new things. I’m excited for these flexible links! Saving up for some flexible filament for even more experiments… ;)

You can make your own Botbait here. (Or buy one).

If you like the robots and things I make, please consider supporting me on Patreon.

More robots to come!

27 hours left! & RoboBrrd Dashboard Beta!

There are only 27 hours left for you to support RoboBrrd on Indiegogo! It’s the final countdown! Check it out here!

As you might have seen in the teaser video from last week, we were working on an application called RoboBrrd Dashboard. Now, it is available as Beta 1! Check out the video overview:

Watch on YouTube

This was made entirely in Processing with controlP5. It was quite straight forward to code it, the things that took the most time were in the details, like positioning, colours, and buttons. It also writes to an xml file, to save your current theme and servo positions. Handy!

Here is a screenshot:


RoboBrrd enjoys being calibrated with RoboBrrd Dashboard!

RoboBrrd + Dashboard

You can download it over at! It’s open source, check out the Github repo!

This is version Beta 1, so let us know if you find any bugs so that we can fix them :)

Help spread the word of RoboBrrd on Indiegogo and share the inspiration of robotics! Thanks!

Google+ Hangout Extension – Arduino Example

Get your Arduino working with Google+ Hangouts! :)

I hacked this together a while ago, and now here is the tutorial for it. A lot of people have requested it, so hopefully it is of help!

Check out the video!

Watch on YouTube

In order for this to work, there are four main parts. The web app, Processing sketch, Arduino, and Google+ Hangouts xml.

Google+ Hangout Extension - Arduino Example

The web app is the core of it all. The way it works is that it uses web sockets for communicating between the browsers, and a tcp socket to communicate back to Processing.

Google+ Hangout Extension - Arduino Example

Processing is listening to this tcp socket, and then it tells Arduino what to do.

Google+ Hangout Extension - Arduino Example

To get it working in Google+ Hangouts, the web app is included as an iframe. If your camera is pointing at the Arduino, then everyone will be able to see it work!

Google+ Hangout Extension - Arduino Example

I have posted the code for all of this on Github. Go check it out!

A large amount of the code was based off of the code by John Schimmel: node-session. He was really awesome on Twitter helping me get it working!

The tutorial, with all the steps listed out, is over on I really recommend looking at it, because it tells you where to replace the variables for your own ones. ;)

If you decide to take the plunge and try it out, I created a long in-depth tutorial walking through the code.

Watch on YouTube

I really hope that this helps people out there to get started! I would love to control some of your robots and blinky lights through Google+ Hangouts. Oh yeah, and it would be great to see them on the Robot Party!

Let me know if you have any questions along the way, and I can try and answer them! Gooooood luck!