Hey devs! Welcome to the Speckle Dev Docs - a single source of documentation on everything Speckle! If you're looking for info on how to use Speckle, check our user guide.
Speckle is the open source data platform for architecture, engineering, and construction. It liberates your data from proprietary file formats and closed source software and puts it back into your hands.
This part of our docs is for any developer planning to extend, integrate or improve Speckle. We'll walk you through the main concepts behind our tech and guide you through fun tasks as writing your own connector or writing custom Speckle apps.
We hope to see the great things you'll do with our SDKs and APIs, let's go!
# Speckle, The Platform
We call Speckle a data platform; but Speckle is also a set of connectors for AEC applications. There are Speckle Kits, which are the base of our approach to interoperability. Then there's various Speckle apps - like the Speckle 3D viewer, the Speckle Web UI, the Speckle Server...
That's quite a lot to chew; but you're probably still asking yourself - what is Speckle?
# Ultimately, Speckle has two distinct parts: the developer platform, and the applications and products built on top of it.
So what's what? Simple: if an architect/engineer/aec professional interacts with it, it's a Speckle product built on top of Speckle's developer platform.
The developer platform consists of code that makes it easier for us (and you!) to build user facing applications - either web based or desktop based.
This section is about the platform, and not about the products. If you want to see how to use Speckle as an architect or engineer, check our user guide.
# Code Repositories
Our platfrom is made of many moving parts, the code for anything Speckle 2.0 onwards is hosted in our GitHub specklesystems organization (opens new window). Here's a quick summary of the main repos you'll find there, please make sure to give them a star ⭐️ if you like what you see!
Speckle Server (opens new window) contains all the web-based applications including the server backend, the frontend webapp, and the 3D viewer.
└── speckle-server ├── server ├── frontend └── viewer
Speckle Sharp (opens new window) contains all the C# desktop components including the .NET SDK, the Connectors (Rhino, Revit, Grasshopper, & Dynamo...), and Objects (our default interoperability kit).
└── speckle-sharp ├── core ├── connector revit ├── connector rhino ├── connector dynamo ├── connector grasshopper ├── connector autocadcivil ├── desktopui └── objects ├── objects └── conerters ├── revit ├── rhinogh ├── dynamo └── autocadcivil
To put it simply, Speckle Sharp is what you use to free your data from different models and desktop applications and Speckle Server is where you send all this data and interact with it in the browser.
Speckle Py (opens new window) is our Python SDK. Are you more of a pythonista than a .NET ninja? Have a play with it!
Speckle Unity (opens new window) is our Unity Connector, it might make it inside Speckle Sharp in the future.
# Additional tools
Inside our GitHub organization you'll also find a few additional tools you might want to check out, for example the two below.
Ever struggle with janky behaviour in Grasshopper as things start getting complicated? You might really enjoy the GrasshopperAsyncComponent (opens new window). Do any dev work in Revit and want a handy tool for viewing and running unit tests? xUnitRevit (opens new window) might be exactly what you've been looking for.
# Legal stuff