LightCalc
This application was created with professional lighting designers to assist in the creation of a lighting plot for theatrical productions. LightCalc will calculate the size of a pool of light from many different fixtures based off the throw distance input by the user.
The majority of theatrical lighting fixtures can be separated into three major categories, Ellipsoidal Reflector Spotlights (ERS), Fresnels, and Pars. The user has the option to filter by these categories along with an "Other" category to handle any lights that do not fall into the three generic categories.
In every category the fixtures are seperated into sections by brand. Every section can be turned off individually in the case that the user does not have access to this fixture. A user can also add custom fixtures to any of the categories if they own a fixture that is not implemented in the application.
Implementation
In this software each type of light is stored as a class to allow for simple addition of new fixtures. In each class every fixture is stored as a public final variable that contains the multiplication factor. This value is determined by the manufacturer and can be found in the user manual for the fixture.
To output the final size of the pool of light the multiplication factor is multiplied by the throw distance. The throw distance is calculated using pythagorean theorem. The user has the option to enter a distance for 'x' and 'y' that will calculate the throw distance or simply enter a throw distance.
All distances are calculated using feet and inches, but the user has the option to do calculations in Metric. The user enters values in feet and inches but the system handles all length values in feet, with inches being represented as a decimal. For example, 1 ft. 6 in. is represented as 1.5 ft. internally. The user can also input measurements in this notation.
This application was initially created for desktop machines using Java. The iOS application was created using Swift.
All code displayed is from the desktop application and was wrote in Java.
Back to Top