/speckle-blender

Primary LanguagePythonApache License 2.0Apache-2.0


Speckle | Blender

Connector for Blender

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

Blender Connector

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

Head to the 📚 documentation for more information.

Installation

We officially support Blender 3.3 and newer, on Windows and Mac.

Please follow our installation instructions on our connector docs

Usage

Once enabled in Preferences -> Addons, The Speckle connector 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 the Projects list with available projects for the selected user account.
  • Select a model and version from the dropdown menus.
  • Click on Receive to download and convert the objects from the selected model version. The objects will be linked into a Blender Collection, named <PROJECT_NAME> [ <MODEL_NAME> @ <VERSION_ID> ].
  • Click on Open Model in Web to view the model in your web browser.

Supported Elements

The Blender Connector is still a work in progress and, as such, data sent from the Blender connector is a highly lossy exchange. Our connectors are ever evolving to facilitate more and more Speckle usecases. We welcome feedback, requests, edge cases, and contributions!

The full matrix of supported Blender and Speckle types can be found here

Additional Features

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

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

  • Receiving vertex colors is supported. The colors list from Speckle meshes is translated to a vertex color layer.

  • Receive/Send scripts. Allow injecting a custom python function to the receive/send process to automate any blender operations

Dependency Installation and Compatibility with Other Blender Addons

Upon first launch of the addon, the Speckle connector installs its SpecklePy dependencies in %appdata%/Speckle/connector_installations on Windows and ~/.config/Speckle/connector_installations on Mac. This is done through our installer.py. Through pip, we install the correct version of each dependency for your blender python version, host OS, and system architecture. As such, an internet connection is required for first launch of the connector.

Other blender addons may require dependencies that conflict with specklepy. In these cases, one or both addons may fail to load. If you suspect you're seeing a conflict, Please uninstall other third party addons one at a time to identify which addon is conflicting.

If you find an addon that conflicts, please try using a different version of that addon (newer or older).

If you can't find a version of an addon that works, please let us know on our forums the name of the addon, the versions you've tried, the version of the Speckle connector you've tried, and your OS (win/mac/linux).

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

Thanks to Tom Svilans (Github) for the original v1 contribution!