Tower Lights Animator

Welcome to the project Wiki for UIdaho's Tower iLLuminati senior design team. Here you can find out all there is to know about the Tower Animator project. Project background, why we are working on the project, our design choices and more will be detailed here. If you have any questions or concerns regarding the contents of this Wiki then please email the project representative; their contact information is listed at the bottom of the page.
== Project Overview ==
=== Background ===
The Tower Animator was created to produce the Tower Lights show which is displayed on the south side of the University of Idaho's Theophilus Tower. Each window is rigged with a set of LED lights which illuminate in synchronization to music. Signals are sent through the buildings wireless connection to tell lights when to light up and what color to be. The Tower Animator is the software that individuals user to make shows. 
=== Problem Statement === 
The current Tower Animator software functions properly, but it is not very easy to animate a new show. Each frame of a light show is a 4 x 10 grid of individual lights and a show typically has from 500 to 1000 frames. The current animator requires each light to be assigned value one at a time. For example, a light show that is 750 frames and has on average 40% of the frame lit up during the show would require the user to click 12,000 on individual squares in the current animator. In short, its a very tedious and time consuming process.
=== Project Goals ===
Our goal for this project is to make the animation processes easier for the users of the software. This will be accomplished through adding animation features such as path drawing and the ability to create groups of pixels that will be given the appearance of movement. This will allow a user to select a group of pixels and move them from point A to point B over a certain amount of time. A secondary goal for the project is to give the ability to associate an audio file with the current animation. This will allow an animation to run synchronized with an audio file.
=== Project Problems/Solutions ===
Like most projects, we have run into issues with creating a new design for old software. One of the biggest issues we have had to resolve is creating an output file that is compatible with the tower animator hardware while retaining new detailed information about the animation sequences of various pixel groups. Our solution is to use a two file system: one file used to retain object information of the animations and another that is compatible with the hardware that is used for the tower show. Because of the nature of the new file system, we will need to make sure the new software is reverse compatible with the old file types. To do this there will be an import feature added to the software. This feature will allow for a user to import a file created from a previous version. 
===Schedule===
Deadline 	Action Item 	Description
November 11th 	Design Documents 	Each team member has been assigned a specific design document that produce. Class UML diagram, State UML diagram, and a GUI design and description. These documents will assist the team when implementing our features and design choices.
End of Fall 2014 	Test Plan 	We hope to do various types of software testing including a usability test.
Till end of project	Implementation 	Upon completion of our design, we intend to begin coding. The diagrams and designs we developed will assist the group and are subject to changes should issues arise.
Into Spring 	Metrics/Results/Coding	To gauge the success of our project we will produce specialized tests to appropriately measure the improvements our animator has made versus the old version.
== Design ==
Diagram 	Description
frameless|center|350px|	Conceptual GUI
This image is a representation of what we hope to achieve when the project is complete. The left hand side is the animation canvas (called the 'grid') and the right is were the main controls are. The grid is an area that is many times larger than the size of the Tower Lights show. The orange group of boxes in the center of the grid represents the frame of the light show. The frame can be moved around on the grid to capture different areas of the canvas. This is the first major improvement over the previous version that the team will be sure to implement.
 	State Diagram
This is our state diagram which describes how the program will transition between different operations.
 	Class Diagram
This is our class diagram which describes how the data structures in the program interact.
 	Expo Poster
This was our poster for Expo. Below is a link to our technical presentation given at the Expo.
== Implementation/Testing ==
Diagram	Description
 	GUI
A screenshot taken of our current GUI. The GUI is created using the QT/C++ extension. This screen shot was taken November 2014.
 	GUI
A more current screenshot taken March, 2015. Below is a link to our reference manual.
== Team Tower iLLuminati ==
Team Photo: Cameron Simon, Ranger Adams, Matthew Brown
===Team Bios===
Picture	Bio 	Discipline
 	Current Members:	
center 	Matthew Brown:
Matthew is a computer science major undergraduate in his fifth year of college. He transferred to University of Idaho in 2012 between his second and third years. He is also a grader for CS-112 and a tutor in the computer science assistance center.	CS
 	Cameron Simon:
Cameron is an undergraduate student in computer science. He joined the tower animator team in the second semester. He plans on graduating in Spring 2015.	CS
 	Ranger Adams:
Ranger is double majoring in Computer Science and Computational Mathematics. He is a Moscow native and intends to graduate with his Undergraduate in Spring 2015.	CS
 	Past Members: 	
 	Paul Bailey:
Paul is a senior at the University of Idaho where he is earning three degrees in the areas of Computer Science, Mathematics, and Physics. He currently works at Schweitzer Engineering Laboratories as a Software Engineer Intern.	CS
 	Emeth Thompson:
Emeth is a Computer science major at the University of Idaho. She has worked for the Center for Secure and Dependable Systems and is currently a CS120 teaching assistant.	CS
===Contact===
Emeth Thompson (thom5468@vandals.uidaho.edu)
Ranger Adams (adam6860@vandals.uidaho.edu)
Paul Bailey (bail1806@vandals.uidaho.edu) 
Matthew Brown (matt2714@vandals.uidaho.edu)
Cameron Simon (simo2703@vandals.uidaho.edu)