Skip to content

urbansurgery/speckle-blender

 
 

Repository files navigation


Speckle | Blender

Connector for Blender 2.92 & 2.93

Speckle is the data infrastructure for the AEC industry.


Twitter Follow Community forum users website docs

Speckle-Next

About Speckle

What is Speckle? Check our YouTube Video Views

Features

  • 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!

Try Speckle now!

Give Speckle a try in no time by:

  • speckle XYZ ⇒ creating an account at our public server
  • create a droplet ⇒ deploying an instance in 1 click

Resources

  • Community forum users for help, feature requests or just to hang with other speckle enthusiasts, check out our community forum!
  • website our tutorials portal is full of resources to get you started using Speckle
  • docs reference on almost any end-user and developer functionality

Repo structure

The Speckle UI can be found in the 3d viewport toolbar (N), under the Speckle tab.

Head to the 📚 documentation for more information.

Disclaimer

This code is WIP and as such should be used with extreme caution on non-sensitive projects.

Installation

  1. Place bpy_speckle folder in your addons folder. On Windows this is typically %APPDATA%/Blender Foundation/Blender/2.80/scripts/addons.
  2. Go to Edit->Preferences (Ctrl + Alt + U)
  3. Go to the Add-ons tab
  4. Find and enable SpeckleBlender 2.0 in the Scene category.
  5. The Speckle UI can be found in the 3d viewport toolbar (N), under the Speckle tab.

Usage

  • 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 the Streams 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.

Caveats

  • 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.

Custom properties

  • 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-property renderMaterial.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 to propA.propB.propC = 10 and propA.propB.propD = "foobar".

Contributing

Please make sure you read the contribution guidelines for an overview of the best practices we try to follow.

Community

The Speckle Community hangs out on the forum, do join and introduce yourself & feel free to ask us questions!

License

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.

Notes

SpeckleBlender is written and maintained by Tom Svilans (Github).