Speckle v2 is a brand new Speckle, re-written from scratch to scale - both in terms of data, as well as features. We've incorporated the lessons learned during V1, and we've brought along the best parts and made them even better.
All the code for v2 can be found in our new github organisation, Speckle Systems. There are three main repositories:
- speckle-sharp: a monorepo containing all our .NET projects: Core (the .NET SDK), Objects (our default Kit), converters and connectors (currently for Revit, Rhino, Dynamo & Grasshopper)
- speckle-server: the backend and frontend monorepo.
- speckle-py: the 2.0 Python SDK.
To get started as a developer, read the instructions in each repo's README. Inside speckle-sharp, you'll also find additional instructions under each connector's folder.
- What are the main changes and new features? Okay, this is going to be a long list, but it's worth reading it!
- New server architecture: goodbye MongoDB, welcome Postgress. The new DB is better suited for our new data structures and queries.
- Speckle ❤️Git: v2 is highly inspired by how Git works. You'll now see that Streams behave a bit like git repositories: they have branches and commits! More on this in a future post.
- Extensible objects: our new .NET SDK makes use of a new
Baseclass which lets you add properties at runtime and do a lot of other cool things without having to define your own schemas or Kits, read more on The Base Object.
- Better performance: big streams of data can now be decomposed into smaller entities, this means you can stream really huge models and then only query the parts that you need! Read more on the Decomposition API
- Transports: ever desired saving Speckle data to disk, to JSON or to any other database/location/format? Now you can! You can now create new Transports (eg a MongoDB or a InMemory transport) and send your data there instead than to a Speckle server. Read more on Transports.
- More stable Kits: we have also changed the way Kits behave (basically custom schemas you can use with Speckle), and made them much more stable and still as flexible as they used to be. Read on this in Introducing Kits 2.0.
- Better conversions: we have managed to finally support some fundamental geometry conversions that v1 never had, namely NURB Surfaces and BREPs. We have also highly extended and improved various other conversions, especially in the Revit Converter and when generating Revit elements from Grasshopper (the so called SchemaBuilder component).
- Brand new Python SDK, together with our brand new .NET SDK, we are releasing a Python one to match it in almost all features and functionalities
- We have also released publicly and under an open source permissive license, some tools that we have developed and use internally that you might find useful too. An xUnit test framework for Revit and an Async Grasshopper component. Check them out!
- What is not ready yet? Being this an alpha release, there's still parts that need a lot of love and other that we haven't started yet, namely:
- 3D viewer, is not there yet! We know it's a crucial part of speckle and we're working on it
- web app, it's there but it's still very minimal, new features will be added as soon as we develop them
- additional connectors, especially community contributions that we had in 1.0 haven't been ported to 2.0 yet, these include: Excel, Unreal, Blender & Civil3D. We have recently started working on the Unity connector and its WIP version is hosted here. If you'd like to help Speckle and contribute to develop and maintain any of these, please get in touch!
- Cool stuff, what next? We're working hard to get to a stable v2 release, we expect to have a first release candidate in Q1 of 2021, it's soon so stay tuned! You can see the maturity of each Speckle piece of the puzzle in our Release Roadmap and of course keep in touch on our forum and on Twitter!
- Any additional questions on 2.0? Please drop them in the forum!