Kinetic Sculpture

Sedona Thomas
3 min readApr 6, 2022

A kinetic sculpture art installation on an ESP32 TTGO T-Display for Professor Mark Santolucito’s Creative Embedded Systems (COMS 3930) Course in Spring 2022 (in collaboration with Anaïs Lawson)

Documentation: https://github.com/sedona-thomas/Kinetic-Sculpture/

Miniature parade float with a rotating green flower and spinning leaves
Miniature Parade Float

Overview

For this project, we were tasked to collaborate on a kinetic sculpture using three types of motors — Servo motors, step motors, and DC brush motors. We were inspired by the design of floats for the Rose Parade and decided to design a miniature float with movable flowers. Our project rotates two sets of leaves and a 3D printed rose all of which sit upon a rolling wooden box. We were especially inspired to repurpose unwanted or broken scrap materials within the Columbia Makerspace.

Project Demo

How It Works

The 3D printed flower is connected to a step motor, the leaves are connected to small Servo motors, and the front two wheels are connected to DC brush motors. These motors are controlled by an ESP32, and when a button is pressed on an associated webpage, the device begins rolling and spins the flower and leaves.

Miniature parade float with a rotating green flower and spinning leaves
Miniature Parade Float

Designing the Enclosure

We focused on building and decorating our device with supplies that could be found in the Columbia Makerspace — especially by repurposing material scraps and finding unconventional solutions to designing the enclosure. For the box, we used scraps of 1/8 in wooden sheets and our axel was initially made with the stick of a Q-Tip. The wheels are all attached to protoboards and the back axel rotates within a pair of jewelry eye hooks that fit into the protoboard. We also repurposed scrap felt and painted clear jewelry pieces to disguise the wiring and motors. In the end, we were able to design the enclosure at no cost and repurpose other students’ scrap materials to design an eco-friendly enclosure.

Class installation of kinetic sculptures
In-Class Installation

Designing the Code

The box itself is relatively simple, but I focused my efforts on designing an efficient object-oriented program to independently control the various motors. In my previous project, I created classes for multiple sensors attached to an ESP32, but I wanted to push myself to create independent files for each class that could be imported and would minimize the main file. Building on the last project with sensor classes, the addition of motors and the documentation made it extremely easy to add any of the peripherals to be handled by the main code without the need to maintain or normalize any values.

Breadboard with connected wires for a DC motor
DC Motor Test

While designing the class-based controls, I especially focused on implementing clean-code practices and writing formal in-code documentation pages. I used Doxygen with JavaDoc syntax to auto-generate HTML and man pages as documented in my code. I was introduced to formal in-code documentation recently but had never used it in C++. I found that adding the documentation and being able to reference my own code documentation and treat the ESP32 code as simply implementing a miniature peripherals API.

Breadboard on a wheeled base with wires connecting to two DC motors
Final DC Motor Setup
Box with a green flower and felt leaves on wheels
Final Float Design

Special Thanks to Professor Mark Santolucito and the staff at the Barnard Design Center for all of their help!!!

--

--

Sedona Thomas

Student at Columbia University studying Computer Science and Human Rights through Columbia’s 4–1 Program