Speckle is the data infrastructure for the AEC industry.
- Object-based: say goodbye to files! Speckle is the first object based platform for the AEC industry
- Version control: Speckle is the Git & Hub for geometry and BIM data
- Collaboration: share your designs collaborate with others
- 3D Viewer: see your CAD and BIM models online, share and embed them anywhere
- Interoperability: get your CAD and BIM models into other software without exporting or importing
- Real time: get real time updates and notifications and changes
- GraphQL API: get what you need anywhere you want it
- Webhooks: the base for a automation and next-gen pipelines
- Built for developers: we are building Speckle with developers in mind and got tools for every stack
- Built for the AEC industry: Speckle connectors are plugins for the most common software used in the industry such as Revit, Rhino, Grasshopper, AutoCAD, Civil 3D, Excel, Unreal Engine, Unity, QGIS, Blender and more!
Give Speckle a try in no time by:
for help, feature requests or just to hang with other speckle enthusiasts, check out our community forum!
our tutorials portal is full of resources to get you started using Speckle
reference on almost any end-user and developer functionality
The Speckle UI can be found in the 3d viewport toolbar (N), under the Speckle tab.
Head to the 📚 documentation for more information.
This code is WIP and as such should be used with extreme caution on non-sensitive projects.
- Place
bpy_specklefolder in youraddonsfolder. On Windows this is typically%APPDATA%/Blender Foundation/Blender/2.80/scripts/addons. - Go to
Edit->Preferences(Ctrl + Alt + U) - Go to the
Add-onstab - Find and enable
SpeckleBlender 2.0in theScenecategory. - The Speckle UI can be found in the 3d viewport toolbar (N), under the
Speckletab.
- Available user accounts are automatically detected and made available. To add user accounts use Speckle Manager.
- Select the user from the dropdown list in the
Userspanel. This will populate theStreamslist with available streams for the selected user. - Select a branch and commit from the dropdown menus.
- Click on
Receiveto download the objects from the selected stream, branch, and commit. The stream objects will be loaded into a Blender Collection, named<STREAM_NAME> [ <STREAM_BRANCH> @ <BRANCH_COMMIT> ]. - Click on
Open Stream in Webto view the stream in your web browser.
- Mesh objects are supported. Breps are imported as meshes using their
displayValuedata. - Curves have limited support:
Polylinesare supported;NurbsCurvesare supported, though they are not guaranteed to look the same;Linesare supported;Arcsare not supported, though they are very roughly approximated;PolyCurvesare supported for linear / polyline segments and very approximate arc segments. These conversions are a point of focus for further development.
- SpeckleBlender will look for a
texture_coordinatesproperty and use that to create a UV layer for the imported object. These texture coordinates are a space-separated list of floats ([u v u v u v etc...]) that is encoded as a base64 blob. This is subject to change as SpeckleBlender develops. - If a
renderMaterialproperty is found, SpeckleBlender will create a material named using the sub-propertyrenderMaterial.name. If a material with that name already exists in Blender, SpeckleBlender will just assign that existing material to the object. This allows geometry to be updated without having to re-assign and re-create materials. - Vertex colors are supported. The
colorslist from Speckle meshes is translated to a vertex color layer. - Speckle properties will be imported as custom properties on Blender objects. Nested dictionaries are expanded to individual properties by flattening their key hierarchy. I.e.
propA:{'propB': {'propC':10, 'propD':'foobar'}}is flattened topropA.propB.propC = 10andpropA.propB.propD = "foobar".
Please make sure you read the contribution guidelines for an overview of the best practices we try to follow.
The Speckle Community hangs out on the forum, do join and introduce yourself & feel free to ask us questions!
Unless otherwise described, the code in this repository is licensed under the Apache-2.0 License. Please note that some modules, extensions or code herein might be otherwise licensed. This is indicated either in the root of the containing folder under a different license file, or in the respective file's header. If you have any questions, don't hesitate to get in touch with us via email.
SpeckleBlender is written and maintained by Tom Svilans (Github).
