Skip to main content

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