Thesis Brainstorming

Hello everyone,

I am new to computational design field and I would like to place this thread as a medium to aid me into the finalization of my MSc Thesis whitepaper and concept-methodology process. The main focus I would like to have is machine learning methods (SL or UL or DM or RL) as broad as it sounds and BIM data (provided) through speckle or its API possibly?

Any ideas or papers inside or outside the spectrum I described are welcome.

Thank you for your time.

1 Like

Hey @Nyquist welcome to our community and thanks for starting this thread!

I’m sure you’ve already seen the amazing work from @Oswaldo_Hernandez with Speckle + ChatGPT = chatSpeckle 🗣️🔷 and @ecpcns3g with Speckle+Langchain AI

@jonathon also just published part 1 of a blog post on AI-Powered Conversations with Speckle.

1 Like

Unlocking BIM data with Speckle is a powerful half of the story, as you surmise. You’ve covered a spectrum of ML categories that I’d like to bring the Community along to aid in the discussion. For the uninitiated:

  • SL: Supervised learning. In a Speckle context, this could mean labelling Speckle data once it has left BIM authoring software or relying on the attribute population in the host application as the seeding to use for onward processes OR be the reference for future incomplete data. This leads to the following:
  • UL: In contrast, Unsupervised Learning could be the automatic segmentation of the data in Speckle (a good example of segmentation could be classification, and this is something I’m looking into right now)
  • RL: Reinforcement Learning is something I know much less about, and I am happy to see others chime in
  • DM: The big beast several organisations have been approaching Speckle to assist with is Data Mining. We have actively researched ways to assist this activity beyond hiring interns to send an organisation’s data to Speckle model by model.

In the spirit of brainstorming, various activities spring to mind:

  • Anomaly detection. I’m unclear if SL or UL would be the best “category” here, but in a Structural Engineering team, highlighting where a current beam/slab/floor/column/truss solution would exist as an outlier to a company’s normal practice or even within a single project could highlight where strategy is too conservative (cost), untypical (risk), wrong (fatal)
  • We’ve talked to others about how Speckle’s interactions auditing (versioning, access by whom and what, how often, commenting etc.) could be a source of multiple insights for Learning.
  • Could someone use a DM repository of Speckle data to seed Generative Design? Could be…?

The three examples @teocomi brought our attention to are another source of interest to us, these broadly speaking are leveraging ML models (specifically NL and LLM) to cross-reference and draw inferences from Speckle D

Your thesis is at the intersection of several rapidly evolving fields, and whichever direction you take has the potential to contribute to Speckle Community knowledge. Please continue sharing.


Thank you for the wonderful inputs. It means a lot.

From what you said I had this idea:

Classification had me researching and I am really interested into using speckle to segment revit models, then apply classification per element (or first do classification and then upload to speckle? any ideas about this hierarchy? what should go first? elements with labels or elements that are classified after uploaded to speckle?)

BUT in order to have more than element labeling , if I want to derive patterns of connectivity between spaces and have those patterns identified (space adjacencies+connectivity, private or shared space binary label, vertical connectivity, distance proximities etc) I would need to create also a graph to map the connectivity of each element.

Maybe use topologic? and embed the graph info inside each bim element and THEN upload to speckle and through speckle api create a generator based on those potential “node” connections (graph info embeded in each bim element like a label) that are in a speckle repository?

Do you think this is feasible because u said something about generative data mining. Is it possible to use speckle api to create a new repo based on other repos like have the elements with their connectivity rules (from the graph info that is embedded inside them) and create an aggregation on a new repo based on specific rules u apply like the number of elements or like to include only elements that have specific labels?

Does that sound like a plan?

Thinking out loud almost.

I would love to couple it with speckle chatbot also if I have the time after my thesis defend.


Cross Stream relationships (repos) would not be the recommended way to go. The best option would be to have separate Model Branches.

Absolutely you can store a structural object that could then reference source objects by ReferenceId we have a Speckle Base class precisely to enable such workflows. It isn’t the direct equivalent, but you can see the mechanics behind it here: Federating Speckle Models - #6 by jonathon

Analysing the relationship graph from spaces to objects is definitely in Topologic’s arena. @Wassim_Jabi himself explored combining the library with speckle data exploration last autumn: Having trouble with getting authenticated App when deployed remotely - #8 by Wassim_Jabi

I think you’d be storing relationship data as an object of its own and, as I say, storing reference within it rather than augmenting BIM objects, but that is possible too.


Wow, thank you so much for the references.

Glad that is feasible and I am not talking sci-fi. I could take also some advice on what steps to follow, example of an alternative thought I had based on what we talk about:

In my masters we used a process with a webhook for automating panelization in revit with gh through speckle +

Maybe alternatively I will need to do this as a webhook maybe that choses the bim elements (alongside their information after they are classified + graph info embedded and returned again into revit environment) and then based on the information they have (like the potential connectivity allowances , then with wasp or any other aggregator plugin or native component sequence) the webhook returns an aggregation based on my classification and the labels I want to be enabled each time. For instance return an aggregation with 10 elements that are made of wood (material label: wood) or return a discrete assembly that costs: 1000e (if there is a label about each bim elements cost). Is this too far? I am sorry its just speckle enables so many different integrations my imagination explodes.

I will deep dive into this material and anything extra you have to share with me and get back to you after the meeting with my supervisor.

Thank you again so much!

1 Like