Energy Optimizer

Buildings account for roughly 40% of energy use and 1/3 of global greenhouse gas emissions, making their operations a critical component of the energy sector. However, a challenge for building owners seeking to improve their energy use is identifying where to start when making retrofitting decisions. Software currently exists to analyze and improve buildings’ energy performance, but they typically involve many variables, require skilled users and auditors, and are expensive to use. We sought to create a simple tool that allows non-experts to make expert-like decisions to retrofit their buildings, for free.

The energy optimizer helps users improve their building’s energy performance by asking users for their inputs pertaining to their current building situation and constraints. Using linear programming, the model recommends products to maximize the building’s energy savings.

Our software currently optimizes across three modules – water heating, lighting, and solar energy, as the use of these products have large impacts on a building’s overall energy consumption and are relatively simple to model and quantify. The software’s output contains, in addition to the recommended products and their associated costs, the estimated CO2 emissions savings, energy savings, and net present value of each item suggested. These data are educational and will allow users to note the impacts of the different products considered.

The software was created with Python and Microsoft Excel as a base platform that can be built upon in the future. The optimizer uses the PuLP library, which makes it very easy to incorporate additional modules to the optimizer without conflicts. UBC Smart City teams in the future could consider adding more modules, refining current modules, and upgrading the software’s UI (and the accompanying software applications) to increase its capabilities and user friendliness.


Below is the link to install our energy optimizer. Download the zip file, unzip it, and run main.exe. Bundled with the program is a ReadMe with brief descriptions of the modules.

The program has been written in Python, and compiled to run on a computer that does not have python installed. To run the program at full speed, try running from your Python console. If you choose to run main.exe, the program may take longer to execute. Your patience is appreciated!

Credits for this application:

Fayaz DamaniSolar Module, Lighting Module, LP Optimizer
Jasleen KaurUser Interface, Solar Module
Sophie VarabioffWater heating module
Mustafa AdilInsulation module, Solar Module, User Interface
Hamed BarkhConverting Executable


Link to Zip File (Hosted on google drive)