What You’ll Build
In this quickstart, you’ll learn how to:- Authenticate with Speckle Server
- Create a project and model
- Send geometry data to Speckle
- Receive geometry data from Speckle
- Create a version (commit)
Prerequisites
1
Install specklepy
bash pip install specklepy 2
Set up authentication
Get a personal access token from your Speckle profile
(Avatar → Settings → Developer → Access Tokens)
(Avatar → Settings → Developer → Access Tokens)
Full Workflow
Step 1: Authentication
First, let’s authenticate with Speckle Server:- Using Token
- Using Local Account
If this works, you’ll see your name printed!
Step 2: Create a Project
Projects are the top-level containers for your data:If the workspace plan is already at your maximum project limit, you’ll need to delete some
projects before creating a new one.
Projects replace what used to be called “Streams” in prior versions of Speckle.
Step 3: Create Geometry
Now let’s create some geometry objects:Step 4: Send Data to Speckle
Useoperations.send() to send your data:
The
object_id is a unique hash that represents your data. You’ll use this to create a version.
The hash is of the serialized data, not the object itself. Learn more about
serialization.Transports continue to use the v2 nomenclature of
stream_id in place of project_id. This will
likely be deprecated in the future.Step 5: Create a Version
Versions capture a snapshot of your data:Go to that URL to see your data in the 3D viewer!
Step 6: Receive Data
Now let’s receive the data back:Why two steps?: Versions store metadata (author, timestamp, message) separately from the actual
object data. This keeps version lists fast and lightweight. You only download the full data when
you explicitly
receive() it.You’ve now completed your first full Speckle workflow with Python! 🎉
Complete Example
Here’s the complete script:What’s Next?
Now that you understand the basics, explore more advanced topics:Core Concepts
Learn about Projects, Models, Versions, and Transports
Working with Geometry
Explore all available geometry types
API Reference
Dive into the complete API documentation
Need Help?
Community Forum
Ask questions and get help
GitHub
View source code and report issues