I coded a drawing tool to design Cloud Light sculptures. I used to the tool to generate a new design, which I made and exhibited during NY Design Week at the HeadHi Lamp Show.
I coded a drawing tool to design Cloud Light sculptures. I used to the tool to generate a new design, which I made and exhibited during NY Design Week at the HeadHi Lamp Show.
I wanted to create a tool that could help me explore Cloud Light designs quickly and intuitively. In the past, I used a combination of code (Python) and 3D modeling software (Rhino & Grasshopper) to iterate on new designs, manually repositioning the geometry into shapes that I liked.
With this tool, I drew inspiration from other drawing tools like Land Lines and Inkspace and I decided that a line could contain sufficient information to generate a Cloud Light design. Drawing a line with my finger is also a lot quicker than changing numeric coordinates inside a Python script (x=1.35, y=3.2, z=.15.... etc.)
I wanted to run the tool on an iPad and I knew it would need to send data to my Python and Grasshopper scripts. I coded the tool using Three.js for the frontend and Node.js for the backend to make passing the data around easier– +1 for HTTP.
The iPad sends requests to a local server running on my laptop, and the server parses and handles the request to generate the design and return it to the iPad.
Full tool video - https://www.instagram.com/p/C1Zikn5uSOc/
To quickly get a project like this off the ground, I try to write the minimum viable application as fast as possible. Sometimes that results in messy code and that felt okay!
Getting the drawing interaction to work and look correct in Three.js on the iPad in 3D, sending the curve data to the server, and returning the model data back to Three.js was a process of trial and error. I try not to aim for perfection (aesthetically or in code) until I have a working proof-of-concept for the entire application pipeline.
Generally, I found that developing a browser-based mobile app was completely doable and felt less arduous and more flexible than learning Swift or an Android SDK. I was able to quickly reload the the server when I made code changes and refresh the website on the iPad to pick them up, without physically plugging the iPad into my laptop, and all the computational "heavy-lifting" happened on my laptop, not on the iPad.
After playing around with the tool, I chose my favorite design, refined it, and manufactured it. I used layers of plywood and acrylic to create the shape, and inlayed them with copper tape to create the circuit that powers the LEDs.
I assembled the layers using aluminum rods and 3D printed a mount that would hold the sculpture and attach it to the wall.
One of the most reliable ways to mount an object on a wall is using a french cleat. I purchased a set of small metal cleats and screwed one onto the mount and one onto the wooden stand or wall to hold the sculpture.
I exhibited the sconce during NY Design Week as part of the HeadHi Lamp Show. The lamp was included in articles from AN Interior, Dezeen, and WallPaper.