# Blender
💡 TIP
Check out our dedicated tutorial on how to get started with Blender (opens new window)!
# Getting Started
For a quick overview, check out this short video on how to get started sending and receiving data from Blender!
# Installation
Before using this connector, you'll need to follow our standard setup instructions to install Speckle Manager and add a Speckle account.
Once the Blender connector has been installed through Manager, you will find it under the "Add-ons" tab of your Preferences menu, under the "Scene" category. Activate it by checking the tick box next to the Add-on name.
Once Enabled, a restart of blender may be required.
Feel free to reachout to us on the forums (opens new window) if you're having any difficulties.
# Manual Installation
Installation through Speckle Manager is recommended for most users, however, for users looking to install the blender connector on unsupported platforms or Blender versions, the connector can be installed through a manual zip.
However, you will still need to add your accounts, either through Speckle Manager (recommended) or manually
- Head to releases.speckle.systems (opens new window) and, under the drop down, download the latest
manual
installer.
- Open Blender, and navigate to the Add-ons menu, under
Edit -> Preferences
- Press the
Install
button in the top right, and select the downloaded zip. - Once enabled, a restart of blender may be required.
# User Interface
The Blender Connector lives in the 3D viewport toolbar (N) under the Speckle tab. It contains three main panels:
- User Panel for switching between different local accounts.
- Streams Panel for browsing your existing streams, creating new streams, or deleting old streams.
- Active Stream Panel for sending and receiving data to and from Speckle.
The Streams Panel shows a list of your most recent streams, which you can search through by name. You can add new streams with the "+" button, delete streams with the "-" button, and refresh the streams with the refresh button.
From version 2.1.9, you can also add existing streams by their URL. You can use the URL to a stream, a specific branch, or a specific commit. Simply paste it into the popup and the correct account, stream, branch, and commit will get selected for you.
The Active Stream Panel will show more details about the stream you've selected in the Streams Panel. From here, you can change the active branch and commit. You can also Send and Receive any items you have selected in Blender. Under the Send and Receive buttons, you can use the dropdown menus to select a script to run on all elements during the send / receive process.
At the very bottom of the panel (not pictured), you'll find a button that will open the stream in the Speckle Web App.
# Clean Meshes
One of the new features we added with the 2.9. release is Clean Meshes for Blender. With this feature, a single surface is obtained by combining triangular coplanar faces. This is especially useful for geometry that is coming from applications that do not support NGON meshes. With Clean Meshes, Material Assignment and UV Mapping will be much easier now.
Clean Mesh option can be accessed from the dialog that pops up after clicking the Receive button. By default, this will be unchecked🔳.
# Supported Elements
# Blender BIM
There is currently some limited support for BlenderBIM (opens new window), though this is intended as an export and does not work coming back. To take advantage of this, simply open an IFC using BlenderBIM then use the Speckle Connector to send to Speckle.
There are a few things to keep in mind when sending an IFC to Speckle using BlenderBIM:
- Structure: The hierarchical structure of collections and objects is preserved when sending to Speckle.
- The name of each object is attached in the
name
field. - Any
/
in names will be replaced with::
- The name of each object is attached in the
- Materials: If the object has a material, this will be simplified into a Render Material (opens new window) and attached in the
renderMaterial
field. - Properties: Custom properties added within Blender are always added to a
properties
field on respective objects. For BlenderBIM objects, this includes theifc_definition_id
.- Additional IFC properties that aren't stored in Blender are currently not extracted from the IFC and attached. This may be explored as an enhancement in the future.
- Type: Objects are all sent as meshes and collections are sent as
Base
objects. None of the objects are currently being converted and sent as BIM objects.
# Developing/Debugging Locally
For developers looking test WIP branches, or develop ontop of/contribute to Speckle Blender, this is the recommended development setup for the speckle-blender (opens new window) repository.
Pre-requisites
Git (opens new window), Poetry (opens new window), and the Python (opens new window) version used by the desired Blender version
(e.g. Python 3.10 for Blender ≥3.0).
Also recommended: VSCode (opens new window) with the Blender Development Addon for VSCode (opens new window) (allows debugging, and automatically symlinks scripts/addons
)
- Git clone the speckle-blender (opens new window) and specklepy (opens new window) repositories into the a folder somewhere on your system.
git clone https://github.com/specklesystems/speckle-blender
git clone https://github.com/specklesystems/specklepy
cd ./speckle-blender
2
3
- Run the following commands to create a local environment
poetry lock --no-update
poetry install --with dev
2
- Run the
export_dependencies.sh
script to export the requirements.txt file for the runtime dependencies - Open the project folder in VSCode and run the
Blender: Build and Start
command.
Or, if not using VSCode, the you can must copy (or symlink) the
bpy_speckle
andmodules
folders into%appdata%/Blender Foundation/Blender/{ver}/scripts/addons/
. (Creatingscripts/addons
if needed). Then start blender.
- From
Edit -> Preferences -> Add-ons
, enable theSpeckle Blender
plugin. - A restart of Blender may be required upon first launch.
Feel free to reachout to us on the forums (opens new window) if you're having any difficulties, or suggestions on better dev setups!