Create a holiday programming tradition
Google and the Austin Downtown Austin Alliance want to enable local high school students to program the 137,000 LED light & music display on the Capitol christmas tree (see video). The goal is to get more students interested in Computer Science and programming. Students and/or schools would compete to see whose program gets displayed more frequently and prominently. Students would be able to tell their family and friends to go check out their programs by visiting the Capitol christmas tree at specific times. The tree is lit for the first time every year at the holiday stroll event and remains lit until Christmas.
Right now I am still trying to determine exactly how the tree is currently programmed and if it can be adapted to a high school competition. The key to making it accessible for a HS competition is to hide most of the complexity of programming the real tree by writting an easy to use simulator progam that can be used by the students to develop their programs.
There are bound to be many challenges in making this happen.
It would a great project for LASA students to take on.
Below is the information I have so far as well as the meetings/emails/phone call.
OLA is a framework that allows applications to send and receive DMX using various hardware devices. OLA may be a way to interface to the lights and their controllers from a programming IDE/simulator.
In 2014 Google had a similar but much simpler “scratch like” programming competition to program christmas trees located in Washington, DC.
email from R. Mueller to Downtown Alliance
Great information.In order for this to work, we need a way that different students at different schools can write a program that then can be “uploaded’ to the tree. I don’t think we can or want to provide the DMX software to all the students that might be interested.
What I propose is that we write a “Christmas Tree Simulator” program which
(1) can be used to program a simulated tree using some high level language (e.g. Python)
(2) can output the DMX program that is needed to program the actual tree
I have a group of students that could look into writting this simulator, but I am unsure if (2) is even doable (I don’t know enough about how DMX works). If this works, the students would develop all their programs on the simulator program and then we would upload the programs to the real tree. My idea was to show each students program at least for some time and maybe show the better ones more often & longer. Is it possible to upload a new program to the tree in real time – bascially switch from one program to a new one in a reasonable amount of time.
email from Downtown Alliance to R. Mueller
Here is some general information that might help, and then please see answers below in red.
The equipment you have controlling your tree is as follows:
- 1 – Digital Audio Machine AM-4 Professional Digital Audio Player with GPS by Alcorn McBride Inc.
- 1 – CueServer Pro Model #CS-800 by Interactive Technologies, Inc.
- 8 – DMX Relay Control Boards in a weatherproof housing by Animated Lighting. Each board has 16 controllable relays.
- Of course, there is tons of cabling connecting all of this together.
The basic lighting information is as follows:
- You do not have RGB lights. You have Blachere FL-508 LED lights in single color by strand. Each strand has 200 lights.
- There are 5 different color lights running through the entire tree – Warm White, Cool White, Red, Green, and Blue. Again, color is by strand.
- The tree is divided into 8 separate sections, or “rings”, with individual control of each ring and individual control of the five colors within each.
- There are 64 individually controlled Texas Stars on the tree.
- There is Blachere Starflash product on the tree that is under single control. It’s either all on, or all off.
- There is a single color tree topper – Blachere LED in Warm White under single control.
Some basic programming information:
- Your CueServer can be utilized in two different ways. First, the CueServer itself can be programmed like a standard DMX controller. We DO NOT RECOMMEND THIS METHOD, due to the nature of how it has to be programmed. The second way it can be utilized is by recording the DMX output information from a third party controller. In other words, it can record information from a different DMX controller and play it back. You can basically use any DMX software that outputs DMX; however, in any of these situations, the software you select will be driven by what you are wanting the tree to do. The current programming on the tree utilizes this second method.
We can help you better if we knew what your goal is. I understand that they just want to “program” the tree. However, that is really too generic of a statement for us to understand the goal. Do you want the students to choreograph the lights to music like we have done, or do you just want to choreograph a light show without music? What do they want to do? Also, from a programming perspective, are they looking to develop your own software, or are they looking to utilize existing specialized software to program the tree? There are a lot of different software packages available, and we are certainly willing to make our recommendation for what would work best, if we knew what is your end goal.
Here are the questions from the teacher we are working with at the high school.
Molly, could you send me some technical details on how the lights are programmed. I am hoping to get a group of students interested in working on this project.
I read a couple of articles (link1, link2) about DMX light controllers and it looks like a basic setup is limited to 512 channels or enough to control 150 RGB lights @ 3 channels per light. Obviously your christmas tree must have a much more complicated hierarchical setup to control the 100,000+ lights. You are correct with the basic premise – 512 channels is considered 1 universe of DMX, with multiple universes available (depending on the DMX controller) for the potential control of thousands of channels. You are also correct in that RGB is generally controlled with 3 channels per light (again, depending on the fixture as some are different, i.e. a fourth channel controlling strobing, etc.). However, keep in mind that currently the lights are the tree are not RGB product. (But, if this is a consideration, the tree can certainly be upgraded and make this happen.).
Is each light on your tree able to display any color? No – 8 rings with 5 available colors on each ring, plus the star top.
Are you able to select a color for each individual light or just whole sections of the tree? Sections – per above, 5 colors per ring, 8 rings plus star top.
How fast can the whole tree be re-programmed for a different display? Not really sure how to answer this question. This really depends on the programming software used, what you want to program the tree to do, the skill level of the programmer, along with a host of other variables.
Also the programming interface for DMX I’ve seen are just a GUI with sliders and a timeline and looks a lot like a video editor. I was hoping there is a way to program the lights using a real programming language. Not really – most programming is done with specialized software (like what we use for the tree). There isn’t a specific computer programming language.
Any more details would be appreciated.
email from R. Mueller to Downtown Alliance
I am the LASA Computer Science teacher that briefly spoke with you just now regarding the capitol christmas tree.
Gerado Interniano at Google, Wes Monroe, and I have met a couple of times over the summer and Gerado mentioned that the Downtown Austin Alliance was looking for sponsors for their tree. Gerardo proposed that Google might be interested in sponsoring a programming competition among local high school students to program the lights for the tree. I think we all assumed that meant we would need a new tree for which the lights were programmable.
Then today I ran across this story which makes it sound that the current tree may in fact already be programmable. So I was hoping you might be able to confirm that and if it is in fact programmable what we would need to do to make it accessible for a high school students to program it.
I have some very good programming students here at LASA that should be able to help with figuring out how to do this. I also think the students here could look at writing a “capitol christmas tree simulation program” that would enable any HS students that was interested to develop their christmas tree program and simulate the results all on their own computer.