May I ask what’s the difference between Speckle and BHoM? Does Speckle use the definitions that come from BHoM? How do you keep Speckle in sync with BHoM? If Speckle does not use/intend to use BHoM, what is Speckle’s roadmap to implement data structures?
I am oversimplifying here, but I would say that the major difference between the two is that Speckle is a server an BHoM is an object model.
Here are, more precisely (and as far as I know), the main differences between both platforms:
- While BHoM stores its data locally in MongoDB, Speckle stores it on a dedicated server.
- While Speckle presents software integrations (with “Senders” and “Receivers”) for each platform it connects to, BHoM “Pushes” and “Pulls” data to and from other platforms from Visual Programming environments (e.g. Grasshopper, Dynamo, Excel).
- BHoM presents a very rich object model (for structural engineering) from which one can inject properties and methods that can be read and called within other software platforms. Speckle’s approach is less specific and more composable, allowing users to build custom objects on-the-fly. It deliberately leaves its data structure as neutral and open as possible so that other object models (called SpeckleKits) can be transferred within its pipeline (such as IFC, BHoM… and yours :)).
@Alessio_Lombardi actually looked at how BHoM objects could be seamlessly serialized/deserialized in Speckle.
Finally, to answer your last question, I don’t think that there is a roadmap to implement a specific data structure (such as BHoM) for Speckle. However, I understand that Speckle will always try to make life as easy as possible for people willing to deploy their own object models by polishing the SpeckleKit strategy in the long term.
Hope this clarifies things and I apologize in advance to both BHoMers and Specklers if I either missed or misinterpreted anything in the above.
No apologies needed! It’s a good overview! Hope it clarifies things for @htlcnn Re kits, yes, we do plan to polish. Stay tuned - we’re cooking up a roadmap and will open it for discussion as soon as it’s baked.