Maybe a few of you might be interested to see this. I have build a connector for one of the apps we developed, with most of the code re-usable for other projects as well.
We use Django Rest Framework for the backend and Vue3 for the frontend.
Authentication with Speckle in frontend (easily done with the great docs!! Creating Your Own App | Speckle Docs)
Speckle card which can be linked to a calculation (a calculation is the place we want to send data from)
Speckle object serializer which can serialize Django models into the right geometry objects (verryy similar to DRF serializers)
This will primarily be used for sending data from the application to AutoCAD. Also, linking to other scripts in Grasshopper will probably be a use-case.
Still to be done whenever it’s required:
- Serializing data to DRF
- CRUD operations for streams / branches;
Hope you like it!
This is super cool, thanks for sharing @dirksliepenbeek !
Just to understand a bit more the context, the MOOR app is design to calculate mooring points of vessels, and you’re using Speckle to send the geometrical output of the tool to AutoCAD, right?
Exactly. It helps mooring layout designers in the conceptual design stage. A few key features:
- Access inhouse ship api with standardized ships (with fairlead / winch / properties)
- Allow users to add multiple ships with different manifold positions (centric / eccentric)
- Allow users to quickly generate an optimized mooring design
- Allow users to adapt mooring design easily according to their needs
- Provide information about current line angles while desiging (which is key in mooring lay out design)
Very cool, @dirksliepenbeek! Would the serialization to DRF be to store the application state in Speckle, or are we talking about receiving Speckle data for use in MOOR? e.g. preexisting harbour wall conditions, store hull and winch geometries as Speckle 3D objects as a catalogue?
It’s storing them as Speckle 3D objects (from MOOR to Speckle), see this comment: Speckle Geometry; requisites for visualizing a point - #3 by dirksliepenbeek. The difference is that I do not really define this class, I make these based on the config in my serializer on the fly.