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_speckle
folder in youraddons
folder. On Windows this is typically%APPDATA%/Blender Foundation/Blender/2.80/scripts/addons
. - Go to
Edit->Preferences
(Ctrl + Alt + U) - Go to the
Add-ons
tab - Find and enable
SpeckleBlender 2.0
in theScene
category. - The Speckle UI can be found in the 3d viewport toolbar (N), under the
Speckle
tab.
- 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
Users
panel. This will populate theStreams
list with available streams for the selected user. - Select a branch and commit from the dropdown menus.
- Click on
Receive
to 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 Web
to view the stream in your web browser.
- Mesh objects are supported. Breps are imported as meshes using their
displayValue
data. - Curves have limited support:
Polylines
are supported;NurbsCurves
are supported, though they are not guaranteed to look the same;Lines
are supported;Arcs
are not supported, though they are very roughly approximated;PolyCurves
are 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_coordinates
property 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
renderMaterial
property 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
colors
list 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 = 10
andpropA.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).