Object-Based Data Exchange
Speckle uses objects as the fundamental unit of data exchange, not files. This means:- Data is structured and queryable - Objects have defined schemas and properties
- Objects can reference each other - Build complex hierarchical data structures
- Version history is built-in - Every change creates a traceable version
- No file format conversions needed - Work directly with structured data
Instead of files, Speckle stores sets of objects in Models. Models are contained within Projects. Projects are contained within Workspaces. Learn more about organizing your data in the User Guide.
Open & Extensible
Speckle is fully open source and designed to be extended:- Open source - All core components are available on GitHub
- API-first - Everything is accessible via REST and GraphQL APIs
- SDKs available - Python SDK with more coming
- Customizable - Deploy your own server with custom branding and workflows
Version Control for AEC
Every change creates a new version, giving you:- Complete history and traceability - See who changed what and when
- Ability to compare versions - Diff models to understand changes
- Branching and merging workflows - Work on parallel development tracks
- Collaboration features - Built-in commenting and review tools
Data Model
Speckle represents building data as a directed acyclic graph (DAG):- Objects reference other objects but never themselves
- Properties can be primitive (strings, numbers) or references to other objects
- References are one-way (parent → child)
- Common structures include
elements,parameters,units,applicationId
For a deep dive into Speckle’s data model, see the Data Schema documentation.
Next Steps
- Data Schema Overview - Learn about Speckle’s data structures
- Getting Started - Build your first integration
- Python SDK - Start working with Speckle data