This is a simulation demonstrating the relationship between relative humidity and comfort for the HeatHack project, done as a St Andrews Research Internship Scheme (https://www.st-andrews.ac.uk/students/academic/internships/staris/) project (6 blocks).
In the folder where the yarn.lock file is, type yarn install
into the terminal. The technologies used in this model include Typescript, React and MUI (both Material UI and Joy UI used).
Create React App was used to bootstrap the project, so commands to run the project locally are unchanged:
yarn start
runs the app in development mode.yarn build
builds the app for production in the build/ folder. A static site server can be started for it by runningserve -s build
.
To host the project on Github pages, follow this guide: https://github.com/gitname/react-gh-pages. For cleanliness, use yarn instead of npm for the instructions - ie. yarn add
instead of npm install, and yarn build
instead of npm run build
for the predeploy script. To run the deploy script, simply type yarn deploy
. An example deployment can be seen in the gh-pages branch.
The aims of this simulation are as such:
- To demonstrate that a higher temperature can "hold" more humidity in the air
- That relative humidity plays a surprisingly big role in how someone perceives how comfortable a building in
- That too high of a relative humidity can have more consequences other than human discomfort, such as building damage and condensation (if dew point is reached and then the temperature decreases).
- The "Heater" toggle increases the temperature of the room when on to a maximum of 30C, and without it the temperature decreases to a minimum of 5C.
- Humidifier and Dehumifier increases and decreases the humidity in the air respectively.
- Reset restores the humidity and temperature values to default (though it will not reset the Heater toggle to off).
Clothing is not considered in this simulation, where in reality it is a factor in someone's comfort for a given temperature/humidity. See https://comfort.cbe.berkeley.edu for more information. It will be assumed someone in the room will wear appropiate clothing for room conditions.
It is assumed that people will be comfortable as long as the relative humidity is within comfort bounds, regardless of the temperature. This is why temperature is not commented on until the relative humidity is out of comfort bounds.
Equations used can be found in util>calculations.ts. Bounds used are mentioned below.
- 45-65%: Comfortable for someone to be in.
- 35-45%, or 65-75%: Slightly uncomfortable for someone to be in.
- Less than 35% or more than 75%: Very uncomfortable for someone to be in.
- 80% and above: Risk of building damage.
- 100%: Dewpoint reached (air is at "maximum humidity").
Comfortable temperature is set to between 14-22 Celsius (inclusive). Outside of these temperatures, the simulation will comment if the temperature is hot or cold.
Temperature range is from 5C - 30C. Default starting temperature is at 15C.
Minimum humidity is always 1 arbitrary "unit" of humidity, and the humidifer/dehumidifer also modifies the humidity in the air by 1 "unit" every time the button is clicked. Default humidity is 3 "units".
Due to time limitations, the model has not been extensively tested on other browsers, nor checked for accesibility guidelines. The project was developed on a Chromium (Vivaldi) browser, which was also the main browser used to debug and examine UI. Create React App does include Babel for backwards compatibility, however.
As mentioned above, this is a toy model meant for demonstration rather than accuracy. As such, the relative humidity readouts for a given level of humidity and temperature cannot be assumed to be scientifically accurate. Formulae used are dummy formulae.
Other limitations are mentioned under the "Assumptions" header in "Simulation Information".