Thursday, October 26, 2017

Build Phase 1


I've gotten some equipment these last few weeks. The main parts I've gotten are the aluminum rod (.5 inch by 48 inch), Dotstar Leds (1 meter, 144 Leds), and a 3D printed clamp that can be attached to the motor.

Initial test of dotstar leds to see how they work. Running solely from arduino.

This is a video of my first test sending data from Unity to Arduino and then displaying that on the led strip. I've been having some trouble with the serial communication failing after a few lines get sent and I'm still looking into why this is happening. 

Next up is to get the motor running with the blade attached and the Leds on it. I've order a slip ring so that I can send power and data to the rotating led strip. 

Thursday, October 12, 2017

Calendar Schedule


Here is a rough schedule for the project. I've got 7 weeks to get it done. But for two of them I am going to be out of town going to conferences. On those weeks I play to focus on developing the visuals in Unity, that way I can still get things done without having to have the physical display. 



Tuesday, October 10, 2017

Art Work

I've been thinking about what I want this piece to be about. The main thing I want to build is a layered persistence of vision display that gets input from Unity in realtime. My hope is that this will create a compelling holographic effect. While programming and designing the display I've been thinking a lot about representations and data. For example, when I was working on the display simulator It took me awhile to get the right algorithm for displaying. All of the correct data was there but the form it took on no longer resembled the original image. 



This got me thinking about different art works that deal with representation. Two examples I thought of are One and Three Chairs by Joseph Kosuth, and The Treachery of Images by Rene Magritte. One and Three Chairs is a piece which has a Chair, a Photo of chair, and a description of a chair all next to each other. The piece brings up the question which chair is the most accurate representation. Rene's piece is of the Pipe with the statement that it is not a pipe.



Rotating Display Simulation


While I'm debating on what hardware to buy I decided to do a simulation of the rotating display in Unity. The above gif shows how it's working so far. It took me awhile to get the math right to correctly sample the camera feed. I had to take a center point and then do some trig. based on the current rotation of the display. This example is using 72 pixels with 3 displays rotating simultaneously. I'm pretty happy with how it is looking in Unity and want to get a physical display going!
I've also been testing how fast I can send data between Unity and the Arduino. My current plan is to send Colors in Hexadecimal format and include an integer to determine what pixel it is for.

Tuesday, October 3, 2017

Unity Scene


Started working on the Unity scene. I'm rendering a 3d cube into a lower resolution 2d image that can be easily and quickly be sent to my spinning display over wifi. I've also split the render onto multiple depth layers because I am planning to have multiple displays. I had this idea over the weekend of creating a hologram display by using multiple rotating displays in series. Because the display is mostly transparent when rotating I believe it'll be possible to layer them to give an interesting depth illusion. 

This image shows, On the Left, the 3D cube being filmed by multiple cameras on different layers. And on the right, the camera layers are displayed on multiple 2D layers.

Wifi Communication

For this project I'd like to setup the display so that it is getting images sent to it from the computer instead, of having images stored on the Arduino. For this I am planning on using Wifi to do UDP string communication. My plan is to have Unity (Game Engine) do all of the graphics and convert those images into small enough packets of information that the can be sent to Arduino using UDP packets.

A UDP packet has a maximun limit of 65,000 bytes. Which should be more that enough to encode a simple image onto.

Unity Scripts for Sending and Receiving UDP

Arduino code for sending and receiving UDP