Braden Tarrago

Journal Entry For
Module 8 - Gen Des and ML
ACC Folder Link
Link to Student

Module 8 Questions:

Part 1

The talk I chose to cover was “A Practical Use of Machine Learning in the AEC Industry”. The main problem that the speakers are discussing is that different firms (architects vs. contractors vs. MEP vs. civil, etc.) are using both AutoCAD and Revit in different amounts, which creates issues with continuity in the modelling environment. So, the firm (KLH) decided to transition to using only Revit. Their solution was two-fold: first, a tool to map client layers into standard layers and perform cleanup routines, and second, a tool to take the input AutoCAD information and convert it into Revit information (walls, model lines) by extruding them. At first, their solution was very manual and human driven (designer must manually categorize and convert). But, they decided to implement machine learning on the layer names (which are not consistent across projects and firms), which resulted in a solution that takes 1/10 of the time. The end product is a replacement of the original UI that required manual user input and classification with an interface that is driven by the ML-influenced decisions, where each layer is color-coded with green, red, or yellow, depending on how confident it is in the top choice relative to the next one.

One thing that surprised me was how simple the machine learning algorithm was to implement. Even today, with the advent of generative AI, I think that many people think that these concepts are very complex and hard to implement, when in reality, if you break down how they work at their core, it is really not that complicated. They used simple, open-source tools like TensorFlow, and developed a solution that most people would likely say seems pretty advanced.

Given the opportunity, I’d like to first try out this tool with some of my own layer names and see how good the algorithm is. In my work experience, I’ve seen some weird layer names, so I’d be curious about how it functions on some edge cases. Then, I’d want to potentially modify the UI to include not just color information based on some arbitrary interval but include a concrete confidence value (%). This may just be me, but I personally am a very numbers-driven person, and if I can see the difference between an 80% and 60% confidence value, that is a meaningful difference to me. I’d really want to make sure that this has reasonable performance before trying it on a project and implementing it into my workflow.

Part 2

The main friction point that I encountered when developing my Grasshopper and Dynamo workflows was troubleshooting the models. When something doesn’t work in either of these environments, it will tell you that something is wrong, but the information it gives you regarding what went wrong is often limited. For example, in Grasshopper, a line may turn a different color, or a block turns red, but that may not be enough to understand why there is an error. I remember very specifically in Module 4, I was having trouble with segmenting my structure and ended up having to use a very inefficient workaround that I made up as opposed to just debugging my original code.

I can imagine an AI/ML tool that would integrate pretty seamlessly with the workflow. Since .dyn and .gh files, at their core, are just text files, making some sort of interpreter of these files outside of their native environments that would be able to understand what is happening in the model and provide troubleshooting would be very helpful. At present, obviously you could just screenshot your error and put it into a LLM like ChatGPT or Claude for troubleshooting, but this is a clunky workflow. Implementing it natively into the software as a plugin/add-in would greatly simplify the workflow. Tools like this already exist in some form, like the native code helper Cursor in VSCode. I think I would like this augmentation to some degree; at some times, it was helpful to have to struggle through the troubleshooting, but at others, it just felt like a waste of time. The way Cursor works is that it suggests changes to you, but these recommendations can be turned off, and you also don’t have to accept them. This could be a great strategy to implement here.

Part 3

On topic, one tool that I discovered is the Grasshopper plugin SmartHopper. Per their website, SmartHopper integrates AI capabilities directly into Grasshopper workflows, particularly through the implementation of Python, C#, and other types of scripts. It enables enhanced modelling capabilities, but most importantly, it adds troubleshooting capabilities without the need to leave Grasshopper. This appears to be solving the exact problem that I was mentioning in Part 2; having a tool that allows for native problem solving is extremely useful. I think that this could have aided me in developing a lot of my Grasshopper workflows this quarter, and I would be interested in trying it to see if it can provide me any help with troubleshooting in the future (perhaps on my final project).

A second tool, similar to SmartHopper, is Raven. Raven is described as conversational AI for Grasshopper, that “works alongside you to write, adjust, and repair scripts, and to explore new directions in real time”. It includes capabilities to handle code, text prompts, and images. It has the ability to edit and troubleshoot existing scripts natively, which appears to be exactly the problem that I was describing in Part 2. From a bit of further research, it appears that Raven is the most popular choice in the industry right now (as opposed to SmartHopper), which is presumably for some good reason. The primary difference here is that Raven appears to be more of a LLM integrated directly into Grasshopper – it even describes itself as a ChatGPT extension.  I think similar to my answer above, this would have greatly helped me troubleshoot some of my workflows that I was working on this quarter, and I would like to try it moving forward.

On a separate note, another interesting tool I discovered is Leonardo.ai. Leonardo is a tool that, given reference images or detailed text prompts, can develop early-stage conceptual imagery for building projects. Once you have this, you can fine-tune form, style, and building materials. This is interesting because it seems like this can help in what is often the most difficult stage of the project (at least for me), which is the initial ideation for what you want a building form to look like. However, I do have mixed feelings about using something like this, as it largely removes the human creativity aspect from the process. I think had I used a tool like this during this quarter, it may have made some of the initial ideation stages of my project a bit easier, but I also think that it would have removed the connection I felt to some of my projects as well as how proud I was able to feel of them at the end of the day, since it would feel less like I created the idea and brought it to life, and more like a computer did it for me.