About Ryan Southall

Dr Ryan Southall is a Senior Lecturer in the School of Architecture & Design at the University of Brighton. Dr Southall's professional interests revolve around the use of open source software to create a holistic and integrated set of building environmental analysis tools.

VI Chart updates

Just a quick note to say that I have just committed to master some changes that will break the VI-Chart node in existing files, and you will need to recreate any chart nodes in your node tree. It may also be necessary to recreate some simulation results in order to be able to chart them. If charting climate data you just need to re-select the EPW file in the VI Location node.  LiVi CBDM and EnVi analyses will need to be re-simulated. Other simulations should be OK.

Sorry for any inconvenience but the implementation is now much simpler and easier to maintain.



VI-Suite v0.7 – De-noising Radiance Images

As v0.7 slowly stabilises I’m kicking off the tutorial series with a look at de-noising Radiance images generated with LiVi.

Blender has a nice image de-noising capability that can be used quite effectively with Radiance images. De-noising does not replace higher accuracy analyses – ‘Low’ accuracy settings will still generally produce overall lower luminance and illuminance values, especially in interior scenes – but this is a nice trick to get cleaner images with reduced simulation time.

De-noise comparison

Comparison between the original rpict image and it’s de-noised version

Bug reports and questions can be posted on the Google Group.

Video tutorial is below.

VI-Suite v0.7 – Testing required

Before anyone gets too excited I have not released v0.7 yet. Still working on some features. There is however a new installation procedure that requires some testing.

VI-Suite v0.7 no longer includes all the required Python libraries such as matplotlib and kivy, but uses pip to install them when the addon is activated. This has the advantage that the VI-Suite download is much smaller, but more importantly I don’t have to update all the libraries when Blender changes its Python version.

To test this new install mechanism with Blender 3.3 get the zip file from https://github.com/rgsouthall/vi-suite07/archive/refs/heads/master.zip and install from the preferences addon menu as normal. Assuming you have a live internet connection there will then be a pause as the libraries are downloaded. On a slow internet connection this can take some time although this only happens the first time the addon is activated. If you start Blender from a terminal, or show the terminal window on Windows, you can monitor the installation process.

Assuming install completes, then try a simple chart display to test matplotlib and a simulation that takes enough time to bring up the progress window to test Kivy. Any successes or failures, with platform information and any error messages, can be reported as a comment below.



VI-Suite 0.6.1 – Call for testing

Dear all.

The Vi-Suite (v0.6.1) has been updated to work with the current Blender 2.93LTS release. I have not however had a lot of time for bug hunting so some testing, especially on Windows and OS X platforms, is still required.

There are no major changes in this release except for the update to the newer Blender version. I have however made some changes to the VI Location, LiVi Context, EnVi Context, EnVi Sub-surface flow and EnVi Opaque layer nodes that will mean these nodes will have to be recreated if updating a v0.6 analysis to a v0.6.1 one.

General questions can go on the Google Group https://groups.google.com/g/vi-suite and bug reports can be filed at https://github.com/rgsouthall/vi-suite061/issues. Bug reports should contain information regarding operating system, method of install, and any relevant terminal output and/or contents of the vi-suite-log file. Images of node setups can also be useful.

v0.6.1 sits now in its own github repository which can be found at https://github.com/rgsouthall/vi-suite061 and the current master version can be downloaded from https://github.com/rgsouthall/vi-suite061/archive/refs/heads/master.zip.



VI-Suite v0.6 – Basic OpenFOAM analysis

Hello again.

I’ve just uploaded a video on how to use the FloVi component of the VI-Suite to conduct an air-flow simulation with OpenFOAM. The FloVi component only currently works on Linux, and I have only tested it on Arch Linux, but it should work on other Linux distributions.

A FloVi analysis requires as a minimum a manifold mesh object to act as a CFD domain. Additional manifold mesh objects can be added within the domain but geometries cannot overlap as this is not supported by Netgen.

There was a bug in the symmetry boundary specification which I fixed a few days ago so make sure you have a recent version of the VI-Suite v0.6 from github.

The example I show in the video is of a domain with ground terrain making up one of the boundary surfaces. If a building is to be modelled that touches the ground plane then one way is to extrude the shape up from the ground boundary. This way the skin of the building becomes a continuation of the domain boundary.


Extrusion from the ground plane

Another way is to add the building geometry as CFD geometry, but as said earlier this cannot overlap with the domain boundary. One way to get round this is to remove the ground plane that the building sits on, and then fill the edges between the bottom of the walls and the bottom edges of the domain.

A third way is to do a boolean difference between the CFD domain and the building geometry. The example below shows a boolean difference operation between the domain and an overlapping torus, which leaves the torus shape as a perturbation to the ground plane.

Boolean difference

Generating boundary geometry with a boolean difference

FloVi is experimental and generally works for me, but is not meant to intelligently apply boundary conditions for you. That is a manual process, and you should know what boundary conditions are appropriate for the simulation context you have. If the interface does not write out the correct boundary information based on your input then file a bug report at the github page and if there are additional boundary conditions you want added to the interface then post a request on the Google Group.

The default OpenFOAM solver I use in the video is simpleFOAM, and this is the one I’ve got working fairly reliably.

Finally, although the VI-Suite itself cannot visualise OpenFOAM results there is another another Blender node-based addon called BVTKNodes that can open OpenFOAM meshes and results and I have had some joy visualising results with it, so check it out if you want a complete Blender workflow.

That’s it I think. As ever, video below.

VI-Suite v0.6 – Basic Radiance Simulation


Cutaway of a saw-tooth roof and lux simulation


I have now uploaded a video tutorial covering the basics of Radiance simulation with the LiVi component of the VI-Suite. The video concentrates on the options within the relevant nodes and the Radiance material options. One thing I should probably reiterate is that a single Blender object can have more than one Radiance material attached as Blender allows you to associated materials with each individual face. The example below shows a red glass sphere with some blue plastic faces.

Radiance materials

Radiance per face materials


Also a version from today or later should be used to correspond completely with the options I talk about.

Otherwise I think the video mentions everything else I wanted to say and, as ever, can be viewed below.


VI-Suite v0.6 – Sky View Factor & Shadow Mapping

SVF calculation

Sky View Factor calculation

I’ve just uploaded a video that introduces the Sky View Factor (SVF) and shadow mapping capabilities of the VI-Suite.

The video also introduces the vi-suite-log file and how it can be used to provide data for some simple custom results processing.

As always I forgot some things in the video. The main thing is that coloured results geometry are placed in their own Blender collection called ‘LiVi Results’ although this video does not cover ‘LiVi’ analysis, but sky view and shadow are lighting related so I place these results within this collection. Once the VI-Suite has created this collection it is important to remember not to put your own geometry in it, as this geometry may then be ignored in subsequent analyses.

Results objects in this collection will be replaced every time a simulation is done, so if you want to keep this geometry for comparative analysis between scenarios move the object out of the ‘LiVi Results’ collection into the scene collection or your own collection.

I’ll also mention that clicking on the heat map analysis itself will bring up a matplotlib display window where you can set some options for the heat map and save that heatmap out to an image.

And finally, the ‘Results out’ sockets of the SVF and shadow mapping nodes can be connected to a VI Chart node for graphing, or the VI CSV node for outputting csv formatted results, but I will cover these two nodes in a separate video.

And finally, finally a github zip download from today or later is required to get the days reported in the VI-Suite log file.

And finally, finally, finally if in solid shading mode I suggest you choose ‘Flat’ shading, which can be found in the ‘Shading’ menu at the top right of the 3D viewport, for the best results visualisation.

I think that’s everything I’ve forgotten. Video is linked below.

VI-Suite v0.6 – Sun Path

I’ve just uploaded a video tutorial for sun path and simple shadowing analysis in v0.6.

The video covers sun path creation and the features of Blender’s viewport shading for single and multiple sun shadow creation.

There’s a couple of things I forgot to mention in the video. One is that when creating a new sun path you’ll notice that a new collection is created called ‘SunPath’ and the sun path object is placed within it. As mentioned in the previous video you should avoid putting your own geometry into this collection. Another is that the colours of the sun path base can also be altered with the material properties associated with the sun path base object.

And one final thing. The time used for the sun position is local solar time, not clock time. Any local daytime saving, or time zone adjustment, should be factored in by the user.

Link to the video is below and to those who celebrate it I wish you a very Merry Christmas.


VI-Suite v0.6 – Installation video

The first video of the v0.6 tutorial series is now live on YouTube in the v0.6 playlist https://www.youtube.com/playlist?list=PLySrjcxbIMorzxpFjc1Mwdsemn4ab1Tas. Nothing too interesting in this video as it really only deals with the installation procedure and some of the new interface elements.

In other news, there was a problem with Radiance and EnergyPlus file permissions when using the github zip file on OS X and Linux. This should now be fixed. If there are continuing problems than as ever report on the github page https://github.com/rgsouthall/vi-suite06/issues.