Skip to content
Automate graffiti creation by attaching a paint supply to a preprogrammed drone
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Automate graffiti creation by attaching a paint supply to a preprogrammed drone.


This project was born from the desire to make graffiti more accessible. The dream is to one day be able to attach several cans of paint to a UAV and program it to create art on inaccessible places. During the summer of 2015, I was lucky to work on this project as part of the Computational Poetics course at SIAT. I started with the Parrot AR.Drone 2.0 because it is lightweight and cost-effective, and also it has a very active hacking community (The NodeCopter). After some investigation, I decided that the logo language was a good candidate to make the definition of fly patterns more accessible to the general public. However, it needed a friendly interface for the end user to create their own designs. I came across the work of Max Ogden but the logo interpreter needed to be modified so the drone would create the patterns vertically, not horizontally.


The project was divided in 3 stages:

  1. Get the drone to fly in a preprogrammed pattern horizontally (will paint on the floor)
  2. Attach the paint supply to the drone and test the patterns produced
  3. Rewrite the controller so the drone flies vertically (to make it paint on a wall instead of the floor)

The project has 2 main components:

  • A view layer (HTML page), provided by jslogo
  • A controller layer (Node.js logo-to-drone translator), provided by logo-drone

Sadly, I no longer have access to the AR.Drone which makes any support of this project impossible for me.


The current state of the project is a mash-up of jslogo by Joshua Bell, logo-drone by Max Ogden and ardrone-nodejs-browser-control by Rohit Ghatol.

Big thanks for their amazing efforts.

Special thanks to Dr. Diane Gromala for providing not only financial but moral support for this project.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.


This is what you will need:

  • A computer running Node.js
  • A Parrot AR.Drone 2.0


Clone or fork the repository, open your terminal and once in the project folder run

npm install

Connect to the drone's WiFi and start the application using

node app.js

Finally, open your web browser and type


Built With

  • Node.js
  • Atom
  • Bower


In the state it is right now, the project has not been fully tested so it is prone to bugs and very unstable. You are welcome to make changes but unfortunately, since I no longer have access to the drone, I'm unable to further test or support the project. Sorry, I won't be able to fix any issues you most certainly will find :(


This project is licensed under the Apache License - see the file for details


The development on this process is in its very early stages. It has not been fully tested and it is prone to error and bugs. I am not responsible for any damages, direct or indirect, caused by experimentation with this piece of software.

You can’t perform that action at this time.