I've started working on speckle support, see https://github.com/yorikvanhavre/WebToo ... Speckle.py
There is not much though, basically at hat time the speckle author was working so crazily fast that the API changed every minute, I couldn't follow
But we should resume that work at some point.
Speckle is really how I would wish bimserver would be... the whole model is a json stack, you can change pieces of it on the fly, etc. However it's not really tailored for BIM, rather for generic 3D geometry. But since you can give any custom properties to objects, there is no reason why it couldn't become suited for BIM.
There is this question, though: With these highly customizable parametric structures like grasshopper or speckle, you can model a parametric tree basically any way you want: Ex: I want my desk width to be bound to 4 times the width of my chair. You can do that with these systems. However, good luck to import that in any other 3D/BIM app. You'll probably loose the parametric relationship. And you see that usually a grasshopper tree that is modeled for Rhino couldn't be used in Revit (I know there are ways to do it, but you must have planned it before).
On the contrary, dumber, "stricter" systems like bimserver can be reliably used across many, if not all, bim apps. Less parametricity, more reliability (take that, Patrick Schumacher!)
Of course, in FreeCAD it would be rather easy to have the desk bound to 4 times the chair width... Maybe we can solve the question right here