Ironbug testing on macOS

Hi guys,

@MingboPeng 's recent PR just came across on my Github feed (PR #159, released in v1.26.1):

It was released last week and I found nothing about it on the forum, so I felt the natural urge to jump in, and as usual, I faceplanted a few times. There’s no Mac installer yet, and some tweaks were needed, so here are the steps for the setup that worked for me, maybe someone finds it useful.

Tested config
  • MBP M1 Max with macOS 15.7.5 (24G624)
  • Rhino 8.35.26251.13002, 2026-09-08 & BETA (9.0.26258.12304, 2026. 09. 15.)
  • Ladybug Tools 1.10.0

What confused me is that on the Mac, Ironbug has parts in two places. I used Claude to help me understand the released code and the problems:

  • the Grasshopper plugin is for the IB components
  • the Ironbug.Console command-line app, which Honeybee’s HB Detailed HVAC component uses for the simulation

0. Make sure LBT itself is fully on 1.10. Run LB Versioner with version_ = 1.10.0, then restart Rhino. (Without specifying the version you get bumped to 1.11.0 developer version, which requires bumping OpenStudio and the OpenStudio Application.) Close Rhino.

1. Download both zips from the v1.26.1 release:

  • ironbug.macos-1.26.1.zip (Grasshopper plugin)
  • ironbug.console.macos-1.26.1.zip (console app; this zip also has the OpenStudio C# bindings)

2. Install the plugin. Unzip it into Grasshopper’s Libraries folder (File → Special Folders → Components Folder) as Libraries/ironbug/.

@MingboPeng is this right? The release workflow copies the plugin to ~/ladybug_tools/grasshopper/ironbug and the bindings to ~/ladybug_tools/openstudio/CSharp/openstudio. Is that the intended Mac layout? I’ve just found this after writing the post…

3. Copy the OpenStudio bindings next to the .gha. The Mac plugin zip doesn’t include OpenStudio.dll. Without it I got “Cannot find OpenStudio installed in ladybug_tools folder!” and a load error for every component.

These five files (the four libopenstudio*.dylib + OpenStudio.dll) are in the console zip, in the …/net8/osx-arm64 folder. Copy them next to Ironbug.Grasshopper.gha.

Then run xattr -dr com.apple.quarantine on the Libraries/ironbug folder, otherwise macOS may block the unsigned .dylib files.

xattr -dr com.apple.quarantine "$HOME/Library/Application Support/McNeel/Rhinoceros/8.0/Plug-ins/Grasshopper (b45a29b1-4343-4035-989e-044e8580d9cf)/Libraries/ironbug"

4. Install the console where Honeybee looks for it. Otherwise HB Detailed HVAC reports “An installation of Ironbug that is compatible with this component was not found”. Honeybee checks ~/ladybug_tools/grasshopper/ironbug/Ironbug.Console:

Note: the following snippet was generated with Claude, use it with this in mind.

SRC=~/Downloads/ironbug.console.macos-1.26.1/src/Ironbug.Console/bin/Release/net8/osx-arm64   # adjust to where you unzipped it
if [ -f "$SRC/Ironbug.Console" ]; then
  mkdir -p ~/ladybug_tools/grasshopper/ironbug
  cp -R "$SRC"/. ~/ladybug_tools/grasshopper/ironbug/
  chmod +x ~/ladybug_tools/grasshopper/ironbug/Ironbug.Console
  xattr -dr com.apple.quarantine ~/ladybug_tools/grasshopper/ironbug
  ~/ladybug_tools/grasshopper/ironbug/Ironbug.Console --help   # should print v1.26.1.0
else
  echo "SRC path is wrong - check where the console zip was unzipped"
fi

The console needs the .NET 8 runtime (osx-arm64) if you don’t have it already.

5. Now open Rhino

With an Ironbug system, set system_energy_use = True in HB Simulation Output. Otherwise heating/cooling results come back empty:

I’ve tested on the LBT full building sample with Sys00_IdealAirLoad and Sys07_VAV Reheat. EnergyPlus completed with 0 severe errors.

Thanks @MingboPeng for the Mac port! :slight_smile:

Thank you @furtonb for testing it out and documenting such detailed steps to make it work.

Because I don’t have a Mac machine, I was waiting for a friend to lend me a MacBook later this week so that I can figure out what the right process is to install Ironbug on a Mac.

I am glad that it works and runs the simulation without any issues.

The next step for me would be to simplify the installation process. Since I am not a Mac user, I’d appreciate it if you or any other Mac users have any suggestions for improvements.

Thanks again for doing this.

Thanks, @furtonb .

Very helpful. I followed your steps and I was able to get almost all of the Ironbug components to load and work correctly. The only issue I was having is with the Setpoint components:

I was curious if you experienced issues with the setpoint components at all in your tests.

I am also testing this on an old intel-based Mac so it’s possible that this is the source of my issues.

Nope, it loaded everything (since posting I installed it on my Rhino 9 BETA build, and this screenshot is from there):

Quick example:

This could be the Intel Mac, McNeel will drop support completely with Rhino 9.

I think putting the DLL and the accompanying .dylib files to the plugin would be a step forward.
Another would be specifying the target folder to ~/ladybug_tools/grasshopper/ironbug/, I suppose I derailed at Step 2 already, it looks to me that you expected it there:

I recall that @edpmay and @Asisnath is also on working (or did work) on a Mac, and hopefully their machine is Ironbug free. Maybe they could give it a go from scratch?

Step 2 should be modified accordingly (forget the Components folder and use the .yaml specified path instead).

Thanks, @furtonb .

@MingboPeng just dug through my logs and confirmed that the issue with the setpoint components has to do with the fact that I have an Intel-based Mac. I didn’t realize that Rhino 9 will not support Intel-based Macs. In that case, maybe we should also move on and not worry about this case. In any event, at least we know what the issue is if someone else tries to install Ironbug on an intel-based Mac.

Source: Dan’s (McNeel) post from last summer.

I think we have to use this folder for all gha files on Mac, @chris can also correct me if I am mistaken.

~/ladybug_tools/grasshopper/ironbug

This path is where we install IronBug on Windows, but on Mac, I am not sure if we could still do this.

I think the easiest path here would be:

  1. Combine all files in the Console.zip into the Ironbug.mac.zip, including all OpenStudio’s Mac libraries, since they are no longer distributed by the OpenStudio installer. All files will be in Rhino’s component folder/ironbug/.
  2. Chris will need to update the Honeybee component on where to find the correct console app on Mac. It will be in Rhino’s component folder/ironbug/.
  3. Users should be able to get everything working on a Mac from the oldest 2020 till today.

I’m just confirming that you are correct, @MingboPeng . I put everything in the (File → Special Folders → Components Folder) to get it to work and no other locations are functional on Mac.

I think we asked McNeel if there was any way to try to direct Grasshopper to look for components in a different directory on Mac but we were never able to figure out a good way to do this.