Speckle
Contents
Introduction
Speckle is ideal for communicating Rhino and Grasshopper data between the different design partners, including the one working on Revit. It allows the user to stream Rhino and Grasshopper data to a central server where the design partners can download them. Because the data is streamed, the data is constantly updated on the server. The Speckle plugin works in Rhino, Grasshopper and Revit (through Dynamo), where it has additional functionality. This consists of adding a variety of data to an object, which can be read by the receiver of the object.
Speckle Installation
You can install speckle on your system by downloading the file from below link.
https://github.com/speckleworks/SpeckleInstaller/releases/tag/1.8.15
Run ‘speckle.exe’ and select full installation. It will install Speckle server for Rhino, Grasshopper and Dynamo. Followed by the installation you will need to make an account for the Speckle server. The instructions for creating account are shown below.
- Install Speckle.exe according the instructions of the installer
Windows may block the installation of Speckle.exe because it does not trust the file.
Speckle in Rhino
In Rhino the use of Speckle is limited to the transfer of geometry data to the Speckle server, while in grasshopper you can send additional data. If in a design team some designers are working on the structure, others on the cladding and others on the whole design, the data will also be distributed between the partners. Speckle will allow you to send and receive data to and from your design partners. For using Speckle you need an account.
After opening Rhino, the software will automatically recognize the new Speckle plugin. You will get a message that Rhino is installing Speckle.
- Start Rhino
Speckle may not be immediately visible in Rhino. Enter the SpecklePanel command to open the Speckle panel in your viewport.
- Open the Speckle viewport in Rhino
- In the commandline, click on Show
Making an account
In the Speckle menu, you will need to create an account. If you don't have yet an account it will ask you to make one. This account will give you access to the server and allows you to communicate with your design partners.
- Click on "Add an account"
- In the new opened viewport, enter the following URL: https://hestia.speckle.works/api/v1
- Click on "Add new account"
Your browser will now open a new webpage. You will need to do a default authentication.
- In the opened webpage, click on Default Authentication
You will need to create a new account. With the account you can now log into the server and send and receive data.
- Click on "No account yet? Register!"
- Enter your personal details. Use your @student.tudelft.nl email address for your account
In your Rhino viewport, the Speckle viewport will tell you you signed in successfully. Close the Speckle Accounts viewport.
Your installation and sign-in is now completed.
Sending data in Rhino
With the account made it will be possible to send and receive data in Rhino. In this case a set of columns are made and will be send to the server. The following steps are needed:
- Click on the dark blue send button
- Fill in the account name
- Define the name of the stream, so it can easily be recognized by the person who will download this stream.
- Select the objects you want to stream to the server
If you want to edit the stream by adding or deleting data then use the arrow in the menu to open the option of changing the content of the stream. You will have to update the stream after changing the content.
Receiving data in Rhino
It is possible to open a specific stream of a sender or the whole stream of the sender. It is also possible to use multiple receivers from different senders or specific streams from a same sender.
The geometry will be displayed in Rhino. However it won't be editable. Any update from the sender will trigger a response with the question if you want to update the stream.
To edit the geometry you need to bake it. Keep in mind that the link with the stream will be severed and updates won't take place anymore.
Speckle in Grasshopper
The options of speckle in Grasshopper are more extensive. Besides the option of sending and receiving of grasshopper data, there are options of linking non formal data to a formal object. This can be very useful in communicating certain non formal properties of the object which might be,for example , related to costs, material used, embedded energy etc.
Data like this is especially useful when working in design teams where the various disciplines need to exchange data which is useful for the the various disciplines. This option is related to BIM. BIM stands for Building Information Modelling and is a method of efficiently handeling and organizing design data from various disciplines in a common design space.
Sending data from Grasshopper
To send data to the Speckle server you need an account. When you click the icon of Send, a menu opens asking for an account or to make a new account. This works similar to the Rhino option for making an account as explained in the text above this segment.
The component has several inputs. These can be extended to more then 3. Each input will be read in the receiving component. Give the stream a relevant name so to make the selection of the streams more easy.
The generated ID number is essential for the receiving party to fill in their receiving component. That makes sure the receiving component receives the correct stream.
The ID can be copied to the clipboard in the settings of the component.
Receiving data from Grasshopper
Receiving data in grasshopper is similar to receiving data in Rhino. The following steps will have to be taken:
- Select the correct account in the menu which opens when the receiver component is added to the grasshopper work field.
- Copy the ID number from the sender to the receiver.
The receiver will now mirror the input of the sender.
Managing data streams in Grasshopper
A list of available accounts will be produced with the Account component. A project can have multiple accounts running.
A further refinement is the option of producing a list of streams related to that account.
User Data Utility
The User Data Utility options allows you to couple a wide range and amount of data to an object. This functionality is very useful in a BIM environment.
Connecting object with data
There are several options to build this data and extract it. It can be a simple list or a composition of lists in a tree structure.
The most straight forward option is to use:
- Create Custom User Data - and add the information which you want to couple to the object
- Use the Set User Data to couple the data to the object.
- Send the object and data
Extracting data from object
The most straight forward option is to use:
- Use the Get User Data - this will extract the data from the object
- Use the Expand User Data to read the data attached to the object.
Extracting data of the object
Any description of the geometry can be extracted from the object. This is information about the geometry of the object.
To access the data:
- Use the Expand Object component to extract the data of the geometry.
If you want to extract only the texture coordinates of a mesh then you can use the Get Mesh Texture Coordinates.
This will generate a set of coordinates based on an U.V.W Object coordinate system.
Serializing an object
Serializer converts the object in to a string which is suitable for data storage and communication.
It also will make a Speckle object of the Rhino geometry.
The string data could be for example be imported into Excel.
The Deserializer can convert the Speckle geometry back into Rhino geometry
Speckle in Dynamo
Speckle in Dynamo works like the one in grasshopper. It is also containing the same components to send and receive the objects. The option to add Custom User Data is also available in Dynamo. After the installation, you would be able to see the icons on the left of Dynamo.
On clicking the components, you can send the geometry data by the same method as mentioned in the grasshopper section. The more information on how to use Speckle for Dynamo is compiled in the below link –
https://speckle.systems/docs/clients/dynamo/basics
Interoperability between Revit and Rhino
Speckle also allows you to transfer the geometrical data from Rhino interface to Revit interface and vice versa. This can be done through Grasshopper and Dynamo interface. The following link shows detailed documentation of how this can be achieved: https://github.com/speckleworks/SpeckleDynamo
One example is shown in the following pictures where data of floors and core is transferred from Grasshopper to Dynamo.