A lightweight energy model based on PHPP and RETScreen. Uses hourly TMY (EPW) files, but data is aggregated into a monthly timestep. Mainly being used during early stage design to understand the minimum thermal envelope performance required given TEDI, TEUI and GHGI targets.
This project includes both a Python library for programmatic use and an interactive Streamlit Web Application for energy modelling. EPW files can be found from local resources or our good friends from Honeybee/Ladybug.
Found Here: https://www.ladybug.tools/epwmap/
The interactive web application allows you to easily configure building geometry, windows, envelope, HVAC, and advanced settings to run simulations and generate downloadable reports.
- Ensure you have installed the requirements (see Installation below).
- Activate your Python environment.
- From the root directory of the project, run:
streamlit run webapp/app.py
- The web interface will open in your default browser. Upload an EPW weather file, fill in the parameters, and click "Run simulation".
Available Here: https://9s4appx5hvvwlnevx3mtxkj.streamlit.app
murb_energy_tool is now a pure-Python library with no native dependencies (no numpy, scipy, pandas, or pvlib required). It works in any standard CPython 3.8+ environment, including constrained hosts such as pyRevit's embedded interpreter.
# Clone and add to sys.path — no pip install step needed for library-only use
git clone https://github.com/winterweken/murb
python -c "from murb_energy_tool import test" # should print "All tests passed"The Streamlit web app uses pandas, pvlib, streamlit, and tabulate. Install them with:
pip install -r requirements.txt
streamlit run webapp/app.pyAnaconda users: a conda environment is no longer required for the library. Create a plain
venvor use any Python 3.8+ interpreter.
from murb_energy_tool import testIf you see "All tests passed", the library is correctly installed.
- ISD weather-file support removed. Passing
isd_file=toRun()now raisesNotImplementedError. Use a TMY EPW file instead (epw_path=or place it in./input/). - Library is now embeddable in constrained Python hosts (e.g. pyRevit's embedded CPython) with zero per-machine environment setup.
- Internally, numpy arrays are replaced by a lightweight
Veclist subclass; pvlib solar position is replaced by a NOAA NREL SPA implementation; scipy interpolation is replaced by stdlib linear/quadratic interpolation; pandas EPW parsing is replaced by a pure-Python EPW reader. - Console summaries use
tabulateinstead ofpandas.DataFrame.to_markdown(cosmetic only).
For Python scripting and API usage, see the Jupyter Notebook examples.
- Below-grade heat transfer
- More precise COPs for heating and cooling plants
- Factor for non-normal irradiance on windows
- Pumps and elevator loads
- Report financial metrics
- Documentation