This is the documentation of The Butterfly Director (TBD) group, for the Imperial College London, Design Engineering Third Year (DE3), Robotics module (March 2020).

This project is hosted on GitHub


  • Harvey Upton
  • Tomáš Kňaze
  • David Prior Hope
  • Pauline Ng
  • Luke Hillery
  • Higor Alves De Freitas

For enquiries on this documentation, please contact meng.ng17@imperial.ac.uk

For help with our code, please contact either harvey.upton17@imperial.ac.uk or tomas.knaze17@imperial.ac.uk


Drawing inspiration from light painting images, this project entails programming the Franka Emika robotic arm to draw several still images of a butterfly with light to produce a stop motion animation. The Franka Emika Panda was used as it can move very precisely making it suitable for recreating small details in 3D images.

Method Overview

The diagram below shows an overview of how the system works. Starting with the digital animation creation through to the stop motion animation being made from the captured photos. This documentation walks through every aspect of the project in detail.

1. Animation Sequencing

The model sequence of the butterfly in flight was generated using Rhinoceros3D and the Grasshopper plugin, iteratively altering a low-poly mesh to give the effect of a butterfly flapping its wings.

2. Coordinate Generation

The frame sequence was then treated as individual frames, with the coordinates of each one being extracted and processed to eliminate duplicate points. The coordinates were organised to prevent duplicate paths.

3. Motion Planning

A motion plan was then generated for each frame using the coordinate list created in the previous step. Code to iterate over the list of frames and plan each motion was developed.

4. Simulation

All poses and time functions were simulated in RViz and Gazebo. RViz settings were altered to recreate light painting within the program’s viewport.

5. Implementation

Once simulated successfully, the code was implemented using Franka Emika’s Panda robotic arm. An end-effector attachment containing a controllable LED was simultaneously developed and manufactured to facilitate light painting.

6. Image Capture

Once the code successfully ran repeatedly on the Panda robot, long-exposure photographs were captured of the motion. These photographs were then collated and displayed in sequence to create an animation of a butterfly in flight.