HB Glare Simulation

  • Intro
  • Design
  • Model preparation
  • Point-Time View-Based simulation
  • Conclusion

Information

Primary software used Grasshopper
Course HB Glare Simulation
Primary subject Analysis & simulation
Secondary subject Climate analysis
Level Intermediate
Last updated November 11, 2024
Keywords

Responsible

Teachers
Faculty

HB Glare Simulation 0/4

HB Glare Simulation link copied

This tutorial uses a Honeybee model room to create glare simulations with point-in-time and view-based methods.

In this tutorial, you will use the same Honeybee model room from the Honeybee daylight simulation to create a glare simulation. In this tutorial, we use the same approach where we create a sensor grid and importing the relevant weather data. There are two ways to perform the glare simulation including point-in-time simulation and view-based simulation. 

Glare View-Based simulation
Glare View-Based simulation

HB Glare Simulation 1/4

Design link copied

This example refers to a shoebox geometry of an apartment which is on the ground floor of a 2-storeys building. It has a rectangular plan of 10m*10m, and it has a height of 3m.

The apartment has an entrance from the road with an opaque wooden door and has also one operable window facing the street. The window is shaded with wooden horizontal louvres. On the left and right side there are adjacent apartments, but on the back side it is not neighbouring any other apartment or building.

The exterior walls are made of concrete in light grey colour. The slabs are also made of concrete, and they are painted in white colour on the bottom side (ceiling). On the top part (floor), they are covered by timber in a darker colour. The interior walls are made of plywood and covered also in white paint.

Shoebox geometry design overview
Shoebox geometry design overview

Abbreviations:

HB(Honeybee), LB (Ladybug), CIE (International Commission of Illumination), DGP (Daylight Glare Probability), HDR (High Dynamic Range).

Exercise file

As a starting point for the Glare Simulation in this tutorial you will need to have a HB room set-up ready. You can download or create the Grasshopper script and Rhino file from the “Honeybee model set-up” tutorial or use your own design. 

HB Glare Simulation 2/4

Model preparation link copied

Each time you want to perform a glare simulation in grasshopper, there are some basic set-up parts needed. First the material optical properties need to be assigned to the HB model. Then the grids and views need to be assigned, and the weather data need to be imported. 

Optical material properties

Before following on with the Daylight analysis, you should make sure that the relevant material optical properties are assigned to the faces of your HB model. In the steps that follow you will briefly learn how you can assign optical material properties to the HB model. To do so, first the radiance modifiers per material are created, then the modifier subsets are created per face from which the modifier set is created. Lastly, the modifier set is assigned to the HB model after which you can visualize and check the modifiers. If you want a more detailed version for model preparation, you can find it in the Daylight tutorial.

For a more accurate Glare simulation, you should assign the values of the optical properties for each material in the corresponding surfaces. Specifically, you should specify the reflectance and transmittance.

  • Reflectance (for opaque materials), which is a percentage indicating the amount of light that is reflected by the surface when the light falls into it (the higher the reflectance, the more light is reflected).
  • Transmittance (for transparent materials), which is a percentage indicating the amount of light that is transmitted through the window (the higher transmittance, the more light passes through the window.)

Important to note: HB gives the option to specify also other optical parameters, such as roughness and specularity, but since these are mostly useful for visual purposes (renderings) or very specific types of analyses (solar convergence), they will not be used in this phase (they are assigned a zero value).

Radiance modifiers per material

For each material of your project, a different Radiance modifier needs to be created, gathering its optical properties in it. In the Modifiers you can find the different material categories that you may use. For this tutorial we are only going to use the ‘basic’ modifier for Opaque and Glass materials, however for your specific project you might need other modifier types. 

HB-Radiance
Modifiers
Material modifiers
Material modifiers

In this case an Opaque and Glass modifier is needed that needs two types of input, the material name and the reflectance for opaque materials and transmittance for glass materials. Therefore, a panel and a slider are created besides the material modifier for each material in your project. 

Create glass modifier for each window material.

  • Create a glass modifier
     
    HB-Radiance
    Modifiers
    HB Glass Modifier
  • Define glass material name by using a panel and connect to the ‘_name_’ input.
    Params
    Input
    Panel
  • Define transmittance of window using a Number Slider and input to _trans
    Params
    Input
    Number slider

Create opaque modifier for each opaque material.

  • Create an opaque modifier 
    HB-Radiance
    Modifiers
    HB Glass Modifier
  • Define opaque material name by using a panel and connect to the ‘_name_’ input.
    Params
    Input
    Panel
  • Define reflectance of material by using a Number Slider and input to _reflect
    Params
    Input
    Number slider

Modifier Subsets per face type

The second step for assigning the material optical properties to your HB model faces is creating the modifier subsets per face type. To assign the material properties to the corresponding HB faces: HB Exterior Modifier Subset, HB Subface Modifier Subset, HB Interior Modifier Subset, and HB Shade Modifier Subset.

Modifiers Subsets per face type connected to the material modifier
Modifiers Subsets per face type connected to the material modifier

Important to note: The interior shades in our example refer to the extruded borders of the aperture and, therefore, to the wall thickness of the exterior walls. 

Assign the Modifier Subsets to the HB Room

The third step for assigning the material optical properties to the HB model is to create a modifier set from the modifier subsets and then input the modifier set to the HB room. The HB room and HB model creation should already be created – or copied – from tutorial “Set-up Honeybee room”. 

Final Modifier Set & Assign to the HB Room
Final Modifier Set & Assign to the HB Room

Visualize & Check

Finally, you need to visualize the material optical properties of the faces to check if they are correctly assigned. To quickly check the attributes that are assigned to each face a HB label face component can be used that displays a label on each face in Rhino 

Visualize & Quick Check of attributes assigned
Visualize & Quick Check of attributes assigned
  • Create a label face component by Honeybee » Visualize » HB Label faces
    Honeybee
    Visualize
    HB Label faces
  • Connect the ‘model’ result from HB Model to the ‘_hb_objs’ input.
  •  Create HB Face Radiance Attributes component.
    HB-Radiance
    Basic Properties
    HB Face Radiance Attributes
  • Select the modifier attribute to be demonstrated and connect the output to ‘_attribute_’. 

Import the Weather data

To perform a glare simulation, you need to import the correct EPW weather data for your location. The “Importing weather files in Ladybug” tutorial guides you through this process, including how to select the time period and verify data accuracy using radiation graphs. For this simulation, you will use weather data for the entire year.

Importing location and weather data
Importing location and weather data

The Glare point in time view based simulation requires a specific sky condition (e.g. cloudy or sunny) based on the location to be able to create the sky we need. It is possible to extract the location using two methods. The first method is by downloading the the epw file with a URL.  The second method is by inserting the data manually:  name, latitude, longitude, and time zone. 

HB Glare Simulation 3/4

Point-Time View-Based simulation link copied

The second simulation method explained in this tutorial is the Point-in-time simulation based on the assignment of views and grids. In this section you will learn what a Point-in-time simulation is, how to create a sky for the simulation, how to create and run the simulation and finally, how to post-process and visualize the results.

What is a Point-in-Time View Based simulation?

A point-in-time view-based simulation for glare is a specific type of daylight simulation used to assess visual discomfort caused by glare at a specific moment in time. Rather than simulating a range of hours, days, or months, this simulation is focused on one single moment at one specific viewpoint within the space.

This method is useful when you want to assess glare at critical moments, such as when sunlight directly enters the room during certain hours. The key elements for this simulation include: a fixed time and date, the position and orientation of the view, and honeybee and ladybug tools to evaluate the light distribution.  The results from this simulation help in optimizing shading designs or the orientation of the building to reduce discomfort due to glare.

Create the Sky for the simulation

In the Point-in-time simulation it is important to first create the sky parameters for the simulation. The point-in-time Radiance standard CIE sky will be used and set to a sunny day without clouds. Regarding the time points for the analysis, it is typical to select a few specific dates and (solar) times, usually 9:00, 12:00 and 15:00 of the following days:

  • 21st December (winter solstice), when the sun is at its lowest altitude.
  •  21st March or 21st September (equinoxes), when day and night have the same duration.
  • 21st June (summer solstice), when the sun is at its highest altitude.

In this tutorial, we are going to run the simulation for 12.00, 21st of June. However, in order to summarise the annual variation, it is advisable to run the simulation for all the 3 hours and the 3 different characteristic days. 

Creating the CIE Sky for a specific time & day
Creating the CIE Sky for a specific time & day

To create the CIE sky for a specific time & day:

In addition to the date and time, we need to define the orientation of the façade. In this example, we use a number slider that represents the degrees between 0 and 360 from the y-axis to make a north vector. We need to connect the specified location and choose the type of sky we want to use in the simulation. A 0-5 number slider is created to identify the sky type

For more details on setting up the CIE sky you can check this section in the daylight tutorial

Sensor grid

As second step in the preparation of the HB model for a daylight simulation, a sensor grid must be created for each room in the HB model. With the ‘HB Sensor Grid from Rooms’ component a grid is automatically created inside your room based on a given grid size and distance from the floor. The grid size refers to the size of sensor grid cells. The distance from floor refers to the vertical distance between the sensor grid points and the HB room floor. For this tutorial a grid size of 0.5 meters and a distance from the floor of 0.75 meters is used. Next, the created sensor grid should be assigned to the HB model with the ‘HB Assign Grid and Views’ component. 

  • Create a grid from rooms component
     
    HB-Radiance
    Basic Properties
    HB Sensor Grid from Rooms
  • Connect the ‘model’ result from the HB model component to the ‘_rooms’ input.
  • Define grid size using a Number Slider and connect to the ‘_grid_size’ input.
    Params
    Input
    Number slider
  • Define distance from floor using a Number Slider and connect to the ‘_dist_floor’ input.
    Params
    Input
    Number slider
  • Create an HB Assign Grids and Views component.
    HB-Radiance
    Basic Properties
    HB Assign Grids and Views
  • Connect the ‘model’ result from the HB model component to the ‘_model’ input.
  • Connect the ‘grid’ result from the ‘HB Sensor Grid from Rooms’ component to the ‘grids_’ input.
Setting-up the sensor grid
Setting-up the sensor grid

Point in time direct light simulation

After you have created the sky for the simulation, to create and run the Point-in-Time Simulation you must create a HB Point-In-Time Grid-Based component to be able to determine the viewpoints needed to create a view-based point-in-time simulation. 

Important to note: Pay attention to input the ‘model’ result of HB Assign Grids and Views. Otherwise, it would create an error if you connected the ‘model’ result directly from the HB model component! 

Create a Point-In-time Grid-Based simulation
Create a Point-In-time Grid-Based simulation
  • Create an HB Assign Grids and Views
    HB-Radiance
    Recipes
    HB Point-In-Time Grid-Based
  • Connect the ‘model’ from the HB Assign Grids and Views to the model input
  • Connect the ‘sky’ from the HB CIE standard sky to the sky input
  •  Create a number slider to choose the metric to be computed by the recipe, the range is between 0 and 3 for different recipes. In this example, we use 0.
    Params
    Input
    Number Slider
  • Create an LB FalseStartToggle 
    Ladybug
    4::Extra
    LB FalseStartToggle


Note: -ab: ambient bounces, which is the number of inter-reflections to take into account. 

Choosing the metric of direct sunlight and 0 ambient bounces allows us to find the placement of the viewpoint that we want to assess in terms on glare. For a bigger project, it would make more sense and take less time to evaluate certain areas instead of the entire project. Therefore, you can use this to find a point in a bigger building with the most possibility for glare. In this tutorial, we are going to manually place three different points according to the result of this simulation to as viewpoints for the View-Based point-in-time simulation.

For more details on setting up the radiance parameter for the HB Point-In-Time Grid-Based simulation, you can check this section in the daylight tutorial

Visualize the results

For easier comprehension of the simulation, you can visualize the results. A very convenient way to visualize the results obtained from any type of Radiance simulation is to create a Spatial Heatmap. To create a spatial heatmap for the Point-in-Time Irradiance results you can use the LB Spatial Heatmap component and connect the results for the simulation to the values input. The component uses the mesh from the created grid result of ‘HB Sensor Grid from Rooms’ to visualize the results on.

  •  Use a LB Spatial Heatmap component.
    Ladybug
    Extra
    LB Spatial Heatmap
  • Connect the ‘results’ from the HB Point-In-Time Grid-Based component to the ‘_values’ input.
  • Connect the ‘mesh’ result from the HB Sensor Grid from Rooms component to the ‘_mesh’ input.
  • Adjust legend parameters with a LB Legend Parameters component.
    Ladybug
    Extra
    LB Legend Parameters
  • Define the graph title ‘Point-in-time direct illumination’ in a panel, then connect it to the ‘global_title_’ input of the LB Spatial Heatmap component.
    Params
    Input
    Panel
  • Define the measurement units of the metrics to ‘1x’ in a panel. Connect it to the ‘legend_title_’ input of the LB Spatial Heatmap component.
    Params
    Input
    Panel
Visualizing the simulation using the LB Spatial Heatmap component
Visualizing the simulation using the LB Spatial Heatmap component

Assigning grids and views

A point-in-time view-based simulation it is crucial to create a grid based on a viewpoint to be able to simulate the glare intensity according to the corresponding position. To do this, we need two main components, the HB View component and the HB Assign Grids and Views component.

Setting-up the View according to a position point
Setting-up the View according to a position point
  • Create an HB View component
    HB-Radiance
    0::Basic Properties
    HB View
  •  Create three manual points according to the HB Point-in-time Grid-Based simulation.
    Params
    Geometry
    Point
  • Create a list item to choose the position point you want out of the three and connect it to the position.
    Sets
    List
    List item

Next, we create a vector for the direction that the view is facing. For the sake of this example, the vector is also inputted manually. The following method makes it flexible to change the direction whenever we want. 

Setting-up a point in rhino
Setting-up a point in rhino
  • To set up a vector manually, we need to first create a point in rhino
Setting one vector
Setting one vector
  • We then create a vector component in grasshopper
    Params
    Geometry
    Vector
 
  •  We right click on the vector component and choose ‘set one vector’
Choose the direction of the vector
Choose the direction of the vector
  • We then select the point we created in rhino and an arrow will automatically appear. We can then choose the direction we want and left click when we are done
Choosing the view type
Choosing the view type
  • Afterwards, we want to create a number slider that corresponds to the different view types to be able to choose how we want to visualize our view.
    Params
    Input
    Number slider
  • In this example, we chose an angular view, and we manually inputted the horizontal and vertical angels using a panel.
    Params
    Input
    Panel
  •  After we are done setting up our desired view, we then create an HB Assign Grids and Views component.
    HB-Radiance
    0::Basic Properties
    HB Assign Grids and Views
  • We then connect our HB model to the model input and the HB view output to the views input
Creating the Grid based on view input
Creating the Grid based on view input

To perform the simulation, we are going to need only one component, the HB Point-In-Time View-Based component. To visualize the results, we use a LB ImageViewer. One thing you will notice is that the result will be in grey scale. However, this can be adjusted using the HB Glare Postprocess and the HB Adjust HDR components to be able to visualize the different sourced of glare within the circled task area.

Setting up the HB Point-In-Time View-Based component
Setting up the HB Point-In-Time View-Based component
  • Create an HB Point-In-Time View-Based component

    HB-Radiance

    3::Recipes
    HB Point-In-Time View-Based
  • Connect the model output from the HB Assign Grids and Views to the model input of the Point-In-Time View-Based component
  • Next, connect the sky output of the HB CIE Standard Sky to the _sky input
  • Finally, add am LB False Start Toggle to run the simulation
    Ladybug
    4::Extra
    LB FalseStartToggle

Note: The LB FalseStartToggle prevents simulations from automatically starting when reopening the program, ensuring manual control over runs and avoiding unintended runs.

  • You can view the simulation results directly in black and white by using the LB ImageViewer component.
    Ladybug
    4::Extra
    LB ImageViewer
  • To read and visualize the glare simulation results, connect the output data to the _hdr input of the HB Glare Postprocess component. This component processes High Dynamic Range (HDR) images generated from the glare simulation, allowing you to analyze glare levels and evaluate visual discomfort in the space.
    HB-Radiance
    4::Results
    HB Glare Postprocess

    ·       To know the glare indices and the DGP, we can connect a panel to read the values.

    Params
    Input
    Panel
 
  • To visualize the simulation in color, connect the check_hdr output from the HB Glare Postprocess component to the _hdr input of the HB Adjust HDR component. The HB Adjust HDR component allows you to enhance and adjust the High Dynamic Range (HDR) images, displaying the simulation results in full color for better analysis and interpretation.
    HB-Radiance
    4::Results
    HB Adjust HDR component
  • You can connect a number slider to the adj_exposure input to adjust the exposure in the image. 
    Params
    Input
    Number slider

     
  • Finally, connect the hdr output from the HB Adjust HDR component to the LB ImageViewer component to display the results. This allows you to view the adjusted High Dynamic Range (HDR) images from the simulation.
Glare simulation result
Glare simulation result

Understanding DGP results

Now that we have successfully visualized and interpreted the simulation results, it is crucial to understand the meaning of the output values. By comparing our results with the reference table, we can identify the presence of perceptible glare. Based on this analysis, we can make informed design decisions, such as incorporating shading devices, adjusting the location of openings, or modifying their size to mitigate glare and enhance visual comfort. This step ensures that the design not only meets performance standards but also aligns with occupant comfort and usability criteria.

Table 1. Glare Categories Threshold

Daylight Glare Comfort Class

DGP Threshold

Imperceptible glare

DGP < 0.35

Perceptible glare

0.35 ≤ DGP < 0.40

Disturbing glare

0.40 ≤ DGP < 0.45

Intolerable glare

DGP ≥ 0.45

HB Glare Simulation 4/4

Conclusion link copied

In this tutorial you learned how to perform a glare simulation using Ladybug and Honeybee. By reaching the end of the tutorial you are now able to prepare a Honeybee room for a glare simulation by assigning the material optical properties, creating a sensor grid, importing the relevant weather data, and creating your own sky. Moreover, you learned how to perform and visualize two types of glare simulation – the Point-in-time View-Based simulation and accordingly the Point-in-time Grid-Based simulation 

Complete glare simulation code
Complete glare simulation code

Final exercise file

Here you can download the complete Grasshopper script with the complete code for the Honeybee Glare Simulation.

Download Final Glare simulation Grasshopper script
application/zip (ZIP, 140 KB)