Prior setup: Before creating dwelling inputs, users need to choose a local folder that will act as their workspace. See Setting up Vulcan Software.
Geometry screen overview
The Geometry section allows creation of HEM inputs on a top-down visual representation of a dwelling. Elements drawn onto this canvas can also be selected and edited. The user can use keyboard or mouse controls to move or zoom the canvas.

This data is saved into a CSV format 'geometry file', which is merged with a JSON format 'defaults file' when you click Save. The geometry file captures the minimal information needed to describe the geometry of a dwelling, and any differences from a default set of system and fabric properties. This helps minimise the inputs required for a HEM simulation.
Dwelling inputs can be created, edited, and saved with the following menus and panels. Most panels can be dragged to other parts of the canvas, collapsed, or hidden where controls provide that option.
| Menu or panel | Main purpose |
|---|---|
| File Bar | Open, name, save, group, and import model inputs. |
| Files dropdown | Search files, create a new model, and upload IFC files. |
| Projects and developments | Group models and manage development context. |
| Global Settings | Choose defaults files, set default assemblies, edit global values, and review values derived from the model. |
| Compass | Set the model orientation offset. |
| Draw toolbar | Choose 2D/3D mode, element type, preset, drawing shape, and drawing controls. |
| Floor picker | Choose the active floor, add or delete floors, and review floor base heights. |
| Thermal bridge proposer | Suggest and validate linear thermal bridge elements from the drawn geometry. |
| Overlay controls | Add, calibrate, move, or remove a plan image or PDF for tracing. |
| Canvas | Draw, select, move, and visually check elements and zones. |
| Editor | Edit a selected element, zone, or multi-element selection. |
| Zone editor | Review a zone and open Space Labeller for room or space footprints. |
| Viewer / Elements panel | Select elements and zones, filter validation issues, and show or hide elements or panels. |
| Quick sim | Run a fast preview calculation for the saved model. |
File Bar
The File Bar, typically at the top of the canvas, is used to open, name, and save input files, manage projects, edit global settings, and use SAP data to create or validate inputs.

Files dropdown
Interface to manage geometry input files (saved in the user workspace under input/base_models):

The file dropdown is accessed with the File button in the File Bar. It can be used to:
- Search through all files by name.
- Open the workspace that contains the files.
- Refresh the view of files in this workspace, for example after adding new files.
- Delete a file. The delete action is visible when hovering over a file.
- New Model: Create a new file.
- Upload IFC: Upload IFC4 format files exported from CAD tools.
Projects and developments
The files dropdown also supports project grouping. Open the Files dropdown and use the project panel to create, select, rename, or delete projects.

Projects are saved in the workspace in input/projects.json and can be used to filter the model list. Use the filter to show all files, unassigned files, or the files in a selected project.
There are two project types:
- Collection: A simple group of related models.
- Development: A group of related models where Vulcan can show context from sibling models.
A model must be saved before it can be added to or removed from a project. Deleting a project removes the grouping, not the model files.
When a Development is selected, other saved models in that Development can appear as context while editing. This is useful for terraces, apartment blocks, and plot groups where nearby dwellings affect shading or context.
Shared context shading can also be written back to sibling models when the model is saved. This helps keep repeated development context consistent. It updates the shared context items that Vulcan can match, rather than every element in every model.
If a new model is created while working in a selected Development, saving it can add it to that Development. This keeps the project filter and development context aligned with the saved model.
Project actions can also be used to start batch workflows for saved geometry models in the selected project.
File name field
Edit the name of the currently open file. The file must be renamed from the default name before it can be saved. Use a distinctive, searchable name.
Saving a file under a new name creates a new file and preserves historic saves, and overwrites any files that previously had that name.
Save button
This button saves the current contents of the canvas into a CSV format geometry file. This can be found in your selected workspace folder, under input/base_models.
This is required before you can simulate the dwelling or submit it to ECaaS, and is important to ensure that updates made are not lost. The shortcut Ctrl + S can also be used to save.
Save status and build status are shown separately:
- Save success: The geometry CSV has been written to your workspace.
- Build errors: The CSV saved, but Vulcan could not create or validate the HEM input JSON. A Build Error button will show the issues to fix. These are usually missing or inconsistent fields rather than a failure to save your drawing.
- Save errors: The CSV itself could not be written. Clicking the warning symbol reveals more information about the cause.
Import SAP Data
SAP data in the PDF Worksheet format, or an XML format, can be imported with Upload to support creation and validation of HEM building elements within Vulcan. Once a SAP PDF or XML is used for one input file, it will be available to link to any other file with Link Existing.
Once a file is uploaded, the raw file (PDF or XML) or the extracted data (JSON) can be reviewed. The selected file can also be removed (Clear) or replaced by another file (Replace).

Under Advanced, the pipeline to compare extracted data to the current HEM inputs is visible:
- Merged JSON represents the combination of the PDF and XML sources.
- Mapping JSON links the building elements in a SAP XML to the HEM input file.
- Diff JSON represents the difference between the current HEM input file and the SAP data described in the Merged JSON and linked by the Mapping JSON.
Validation provided by the SAP file is visible in the form of a blue validation badge in the Elements Viewer, and blue dots or chips within the Elements Editor. Validation can indicate both that a HEM element contains a value inconsistent with the SAP files, or that a specific named element in the SAP file is not in the HEM file. Missing elements can then be drawn or created with properties aligned to the SAP file.
Global Settings
The Global Settings button opens the Global Settings menu. If there is a red validation dot on this button, there is likely an issue - for example, the defaults file or a required HEM value is missing. This can be resolved within the menu.
Global Settings has two main tabs:
- Defaults: Choose the defaults file used when the geometry CSV is merged into a complete HEM JSON input. The selected defaults file is highlighted. From here, you can also edit or duplicate defaults files.
- Global values: Edit values that apply across the model.
Defaults tab
The Defaults tab controls the defaults file and default assemblies used when geometry is turned into a full HEM input.

Default files are HEM input files in JSON format. They provide the foundation that geometry files merge into. A sample default file is part of the Sample Parameter Library, and stored in the user's workspace under input/defaults.
If using another input file as a default, pay attention to validation flags next to the file. These indicate missing data that may make it unsuitable as a general base for models.
Defaults files can be edited or duplicated from Global Settings when you need to adjust the assumptions used for new or merged models.

The Defaults tab also lets you choose default wall, roof, and ground-floor assemblies for newly drawn fabric elements. These defaults are saved with the model and used when new matching fabric elements are drawn. Changing a default assembly does not rewrite existing fabric elements, so review existing elements separately where needed.
Global values tab
The Global values tab contains values that apply across the model.

The Global values tab includes:
- Dwelling Details: Shows compliance inputs such as Part G, room counts, hot-tapped rooms, ground floor area, heating control type, and related assumptions. Room counts should come from labelled spaces where possible, rather than being typed directly. Some other values are derived from the model and can be overridden where needed.
- Air Tightness: Records the test pressure and test result. Ventilation zone height and envelope area can be derived from the drawn geometry, with manual overrides where needed.
- Ventilation Environment: Records location settings that affect ventilation, including shield class, terrain class, altitude, ventilation zone base height, and noise nuisance.
- Thermal Bridging: Sets fallback heat loss and psi data used when individual thermal bridge elements are not provided or cannot be matched. This is where simplified or model-wide thermal bridge assumptions are set. Use the Draw toolbar for individual bridge proposal and validation.
Auto-updated values in Global Settings
Some Global Settings values can update from the model, so users do not need to maintain the same information in multiple places.
| Area | What can update | What to check |
|---|---|---|
| Space labels | Room counts can be synced from labelled spaces. Living area, rest-of-dwelling area, and treated floor area can also be derived from labelled spaces. | Refresh footprints after editing walls, then check room types. Use Use space labels where the room counts should match the labelled spaces. |
| Geometry dimensions | Ground-floor area, building length, and building width can be derived from the drawn model. | Check unusual shapes, split levels, and incomplete floors before calculation. |
| Airtightness and ventilation | Ventilation zone height, ventilation base height, and envelope area can be derived from drawn fabric and floor heights. | Check these values where storeys, adjacent spaces, or base heights are unusual. |
Manual overrides work slightly differently by field. Geometry-derived fields such as ground-floor area, building length, building width, ventilation height, and ventilation base height stay manually set until they are reset. Room-count fields can be typed manually, but if they differ from labelled spaces Vulcan marks them as a manual override and shows Use space labels to sync them back.
Evidence can be linked to fields in Global Settings where supporting evidence is needed.
For the main FHS compliance workflow, FHS validation is required. It checks the values that can be exported to the HEM:FHS wrapper.
Compass
The Compass sets the global orientation, which applies an offset to the orientation value of all dwelling elements. This can be edited by either dragging the arrow, or clicking the central number to directly edit the offset number. Note that North = 0; East = 90; South = 180; West = 270.

Draw toolbar
The Draw toolbar is used to choose dwelling elements to draw, and how and where they are drawn. Drawn elements can be seen in the Viewer, and properties of selected elements edited in the Editor.

2D/3D toggle
This switches between 2D (default; required to draw elements), and a 3D mode which supports visual checking of elevation. 3D mode is view-only and still in development.
Element Selection
Choose which element to draw from the element selector:
- External Wall / Door / Roof
- External Window
- Ground Floor
- Internal Element, for internal walls, floors, and ceilings next to conditioned space
- Unheated Element, for walls, floors, or ceilings next to an unheated space, such as an unheated garage or stairwell
- Party Wall, for party walls only
- Thermal Bridge (Linear)
- Thermal Bridge (Point)
- Window Shading, which must be assigned to a window
- Lighting
- Ventilation Ductwork, which must be assigned to a mechanical ventilation unit
- Water Pipework
- Heating System Distribution
- Electric Appliance
- Hot Water Point
- External Shading
- Infiltration Vent, which can be assigned to a parent to inherit pitch and orientation
- Mechanical Ventilation
- Solar Panel
- Electric Battery
- System, including Product Characteristics Database product selection where available
Water Pipework and combustion appliances are not currently drawn when the model is being prepared for the FHS compliance path. Use systems/defaults where relevant, and check the validation messages for any missing inputs.
Party floors and ceilings:
- Draw an Internal Element as a horizontal polygon, select it, then use the Party floor or Party ceiling checkbox in the Editor.
- Use Party Wall for party walls only, not floors or ceilings.
- When using the assembly calculator, Vulcan writes half-construction resistance and areal heat capacity, then recalculates U-value from that half construction.
- When typing advanced fields manually, enter half-construction values: U-value from the half build-up, half areal heat capacity, the matching mass class, and half construction R where construction R is used. See Fabric Calculators Reference for the detailed convention.
Thermal bridge proposer and validation
Vulcan can suggest likely thermal bridge elements from the drawn geometry. To open the proposer, choose Thermal Bridge (Linear) in the Draw toolbar, then click Suggest thermal bridges.

The proposer looks for common junctions between walls, floors, roofs, openings, party elements, and adjacent elements.
The tool has two views: Suggested new and Inventory. Suggested new shows bridge rows Vulcan can add from the current geometry. Inventory reviews existing linear thermal bridges as problematic, manual-only, or validated.

Vulcan also lists Table 3.7 codes that are not auto-suggested, so users can decide whether any manual bridge is needed from evidence.
Use the proposer as a review workflow: propose likely junctions, check the list, apply the suggestions you want to use, then validate the result. The suggestions should be reviewed before they are applied to the model.
Thermal bridge validation checks the drawn thermal bridge elements against the surrounding geometry. It can flag missing links, overlaps, duplicated junctions, or junctions that do not appear to match the nearby modelled elements.

The proposer is based on the drawn geometry. It may not suggest junctions that are not clear from the drawing, are not snapped cleanly, span unusual floor or roof conditions, depend on a product-specific construction, or need evidence outside the model. Add or adjust those thermal bridges using the evidence and psi values you intend to rely on.
Where more than one suggested bridge could describe the same physical junction, choose the one that matches the construction and evidence. Avoid keeping duplicated or overlapping bridge elements for the same junction unless there is a clear reason.
These messages are guidance for checking the model and should be reviewed before calculation. If the model uses simplified thermal bridging, individual thermal bridge elements may not be needed for a first model.
Preset
This can be used to select a saved element of that specific type. Presets can be saved from existing elements using the Element Editor menu.
Floor picker and floor heights
Use the floor picker in the Draw toolbar to choose the active floor before drawing. Floors use FHS conventions: F1 is the ground floor, F2 is the floor above, and F0 is the first basement floor.

From the floor picker you can:
- switch the active floor
- add a floor by typing the FHS floor number
- delete a floor, which also deletes elements on that floor
- review or edit the floor base height
Floor base height is the elevation of that floor in metres. F1 is fixed at 0 m. Upper floors are normally derived by adding the effective heights of the floors below. Basement floors use negative base heights.
Vulcan normally derives storey height from drawn vertical wall heights. If a floor has no own vertical walls, it can inherit the nearest lower wall height. If no wall height is available, the stored floor height is used. Typing a base height creates a manual override. If the typed value matches the wall-derived height, the override is cleared. A warning icon can appear when a manual floor height no longer matches the walls; click it to reset to the wall-derived value.
For opaque and transparent elements, base_height stores the element's absolute height above ground. This means an upper-floor window can have a base_height greater than its sill height above that floor. When an element is moved between floors, Vulcan moves its vertices to the new floor and tries to preserve its height above the old floor. For example, a window with a 0.9 m sill stays 0.9 m above the new floor. Related window heights update with it.
Changing a floor height can update stored base heights on affected elements so they keep the same offset from their floor. Elements without an authored base height may not change. Validation can warn when a base_height falls below the selected floor slab or above the storey ceiling. Thermal bridge linear elements are different: their floor assignment changes, but their physical line heights are preserved.
Shape Selection
Choose how the element is represented with a top-down view. After choosing a Shape, the next click on the canvas will start drawing. Shapes can also be quickly selected by using the keyboard shortcut shown, or de-selected with Escape. The Shapes available will depend on the Element Selection.
- Line: A vertical panel. The arrow indicates the externally facing surface of the element. Shortcut:
[ L ]. - Polygon: A flat plane. Click the original point to close. Shortcut:
[ P ]. - Slope: An angled plane. The first two points are the lowest edge of the slope, and the arrow indicates the externally facing direction of this edge. Shortcut:
[ J ]. - Room: Vertical panels enclosing a polygon. The arrow indicates the externally facing surface of the room walls. Shortcut:
[ K ]. - Orthogonal Room: A rectangular room. Click and drag to place, then tweak dimensions in the post-room-creation menu. Shortcut:
[ Q ]. - Dormer: Add dormer geometry to a roof where available, then configure the dormer as hip, gable, or shed. Only available for External Wall / Door / Roof.
- Thermal bridge line modes: Thermal bridges can be drawn as plan, vertical, or sloped lines.
- Point: Click to place. Shortcut:
[ O ].
Hold Shift while drawing to force orthogonal snapping. Hold Alt/Option while placing repeated elements, especially lines, if you want to keep drawing the same shape.
Overlay
Enables selection of an overlay file (PNG, JPEG, or PDF) that can be traced over in the canvas. This can allow faster creation of inputs from a floor plan.

When a model has more than one floor, check the selected floor before choosing or calibrating an overlay. Overlays can be managed per floor where available.
- Select overlay image: Choose an image as an overlay. This will be saved into your workspace, and form part of the evidence package for assessments lodged with ECaaS.
- Calibrate image: Place two points onto the canvas, then define the distance between them. This is automatically prompted on loading a new image. Overlays can be re-calibrated at any time.
- Replace overlay image: Choose another image as an overlay.
- Remove overlay image: Remove the currently selected overlay image.
- Move image: Drag the selected image around the canvas.
- Change opacity: Change the visual transparency of the image.
Controls
Provides information and toggles to effectively use the canvas:
Mouse and Keyboard Controls: Reiterates controls above and provides other options:
[ S ]when hovering over the edge of a polygon to add a vertex[ + ]or[ - ]to zoom in or out, also supported by touchpad[ Ctrl + S ]to save the current inputs[ Ctrl + Z ]to undo the last draw[ Ctrl + Y ]or[ Ctrl + Shift + Z ]to redo[ Delete ]to delete an element or selection[ Escape ]to clear the drawing tool or current selection- Click and drag to select multiple elements to edit, duplicate, move, or delete as a group
Snap and Label options: Controls when drawn or adjusted elements snap to a grid, nearby corners, nearby edges, or potential parent elements. Hold Shift while drawing to force orthogonal snapping. Snapped vertices can stay joined when moved. Use these controls when walls should meet cleanly, openings should sit on a host wall, or polygon corners should stay connected.
Canvas
Used to view elements, select them so they can be edited, and move around the model. Panels can be dragged around the canvas, collapsed, or hidden where controls provide that option, so you can create more drawing space.
Editor
Single element editor
Used to edit elements individually

- Name: A human-readable name that has no impact on its properties.
- Type: Controls element properties. Element shape is constrained by type.
- Floor: Change the element to another floor by inputting directly, or select from available floors.
- Preset: Select a saved element preset or save the current element as a reusable preset where available. This is useful for repeated walls, windows, and other elements that share the same assumptions.
- Assembly picker: For fabric elements, choose a saved assembly or build up layers from materials, cavities, and repeating bridges. Vulcan uses this to estimate fabric values such as U-value, construction resistance, and thermal mass. You can apply the result to the element and keep an auditable record of the assumptions.
- Ground U-value tools: For ground floors, Vulcan can help estimate U-value using the element area and perimeter, wall thickness, floor type, and relevant insulation or ventilation inputs. Suspended floors can also use underfloor insulation resistance and ventilation assumptions. See Fabric Calculators Reference for more detail on these calculations.
- Thermal resistance of unheated space tool: For elements adjacent to an unheated space, Vulcan can help calculate the extra thermal resistance of that space (
R_u) and write it back to the element. Use this where a wall, floor, or roof separates the heated dwelling from an unheated garage, loft, stairwell, or similar space. Pitched roofs can also be marked as unheated where the internal heat-transfer surface should be treated differently from the external roof pitch. - System and PCDB inputs: System elements can use product data from the Product Characteristics Database where available. This helps populate system inputs from a selected product, but users should still check that the selected product and linked system assumptions match the dwelling.
- Validation flags: "Critical" (red) errors prevent HEM runs. "Warning" (orange) errors may indicate gaps or inaccuracies. Note flags are horizontally scrollable.
- Standard fields: Shown below the element. These are usually what is required to model the element in HEM's core methodology. Hovering over the label provides guidance on each field.
- Advanced fields: Less commonly available fields the user can optionally set. From Defaults means the value is set by the defaults file unless overridden for this element. No Defaults, Schema Shown means the typical form of the field is shown from the schema; if a value is provided, it will be added to the HEM JSON for this element.
- Duplicate: Creates a copy of that element.
- Delete: Deletes this element after user confirmation.
Zone editor
The Zone editor is used to review a zone and manage the space labels within it.
Select a zone from the Viewer to open the Zone editor. A single zone is created by default when elements are drawn. Additional zones can be added where needed, but may be merged in compliance assessments.

Open Space Labeller from the Zone editor, or from the space assignments link in Global Settings where room counts are shown. Space Labeller is used to mark room or space footprints within a zone.
Vulcan can infer space footprints from closed wall loops. Use Refresh footprints after editing walls. Use Draw room when a space needs to be added manually.
Each space should be assigned a room type, such as bedroom, living room, kitchen, bathroom, WC, utility, hall, circulation, other habitable, void, or other. Room types are used to derive room counts and can help set treated floor area, living area, and rest-of-dwelling area.
Room types feed simple compliance counts. Bedrooms count as bedrooms and habitable rooms. Living rooms count as habitable rooms and living area. Kitchens, bathrooms, WCs, and utility rooms feed wet-room, hot-water, or sanitary counts where relevant. Halls, circulation, voids, and other spaces can still contribute to floor area. Void labels and unknown room types do not add room counts; unknown room types show a warning so they can be checked.
Global Settings shows whether each room-count field is from space labels or a manual override. Use Use space labels to sync one field, or all room counts, back to the labelled footprints.

Space labels can show warnings if a space is not labelled, has an unknown room type, overlaps another space, or extends outside the floor area. Fix the room type, redraw the space, or refresh footprints after changing walls. Space labels are saved in the geometry CSV in a Space Labels section.
Object interactions and parenting
Some objects should be linked to a parent element. This includes openings linked to a host wall or roof, shading linked to a window, vents linked to a wall or window, and roof-hosted objects such as solar panels.
Set or review parent links in the Editor after selecting the object. For example:
- Windows and doors should normally be linked to their host wall or roof.
- Window shading should be linked to the window it shades.
- Infiltration vents can be linked to a wall or window so pitch and orientation stay consistent.
- Solar panels should normally be linked to the roof plane they sit on.
Parent links help Vulcan place, validate, and save those objects. If a parent is moved or renamed, linked child objects can be updated to stay aligned and keep derived fields such as orientation, pitch, distance, or host reference current. If a parent is missing or a vertex is not snapped, Vulcan may show a warning in the editor, viewer, or canvas label.
Multiple element editor
Used to edit multiple elements at once. Only visible when multiple elements are selected (Shift+Click to select each element in canvas or Element Viewer, or click and drag to marquee select)

- Floor: Updates the floor for all selected elements.
- Batch properties: Updates specific properties for all selected elements. The current value of this property for selected elements, and the number of elements with this value, is shown below the inputs. Properties are not updated until Apply is clicked; other transforms work immediately.
- Snap: Extends linear elements so they snap to nearby vertices. The snap distance is indicated in metres in the Snap input field to the right of the button.
- Trim: Removes any part of linear elements that extend beyond another linear element. The trim applies to the portion of the element furthest from the centre.
- Right align: Adjusts the angle of linear elements to orthogonal angles, if they are within range. This range is indicated in the Angle input field to the right of the button.
- Apply: Applies batch property changes. This is not required for transforms such as Snap, Trim, Align, Duplicate, or Delete.
- Duplicate: Creates a duplicate of this group of elements.
- Delete: Deletes this group of elements after user confirmation.
Viewer / Elements panel
Surfaces all elements and zones in an input file. This panel can be moved, resized by dragging edges, or reset to its original state by double clicking the same handle.

- Show/hide elements: In the Viewer/Elements panel, use Hide > Elements to hide thermal bridges, onsite generation, ductwork, pipework, sloped roofs, vents, or individual element pills. Hidden elements are not interactive on the canvas, but they remain in the model and saved CSV. Individual hidden element choices are saved locally for that model.
- Show/hide panels: In the Viewer/Elements panel, use Hide > Panels to hide or show the File, Compass, Draw toolbar, and Quick sim panels. This changes the current workspace view only and can be used to make more drawing space.
Element and Zone pills
Can be clicked to select and edit the element or zone (via the Element Editor); a double click focusses the element in the centre of the screen. A single zone is created by default when elements are drawn, additional zones can be added (but may be merged in compliance assessments).
Search bar
Elements can be searchable by name or type.
Validation badges
Badges displayed next to the search bar indicate validation issues:
- Warning: Orange validation dots or badges. These will not block a run.
- Critical: Red validation dots or badges. These will prevent a HEM core run.
- SAP differences: Blue validation dots or badges. These indicate a difference to SAP inputs.
Validation is also visible inside the Element Editor when an individual element is selected, and in an element's label on the canvas. Clicking on a validation badge in the Element Viewer filters to elements with that issue type.
Note that when FHS Compliance validation is active in Global Settings, gaps against the FHS schema will be Critical.
Part F ventilation checks may also appear in validation. These checks use dwelling details, space labels, background vents, extract inputs, and mechanical ventilation inputs to highlight missing or insufficient ventilation. Start by checking room labels, then check the relevant vent or mechanical ventilation element.
Quick sim / quick solve
The Quick sim panel can run a preview calculation for the current saved model and show headline results such as FHS primary energy rate or annual solar generation.

Use it as a fast sense-check while building the model. Save the model before running Quick solve, then refresh the preview after making further saved changes.
Quick solve uses the batch workflow in the background and creates a preview run for the saved model. Weather can be selected in the panel. The default preview weather is RAF_Bedford_01 where no other weather file is selected.
Use the Calculate section for ECaaS submissions and the Scenarios section for full scenario modelling. Quick solve is intended for quick checks during Geometry work.
CSV file format for HEM inputs
Most visual inputs in the Geometry screen are saved as CSV files in input/base_models in the user's workspace. This folder can be opened from the File Bar file selection dropdown. The CSV format can be reviewed in spreadsheet tools and integrated with local workflows. When saved, it is merged into a HEM JSON file using the selected defaults file.
For day-to-day use, most users should edit geometry through the canvas and use the CSV file as an auditable record of the model.
For integrations or spreadsheet workflows, see the Geometry CSV contract.
