
Speckle | AEC Tech Masterclass
A Speckle app to compare different commits and visualize the results
Speckle is data infrastructure for the AEC industry.
About Speckle
Features
- Object-based: say goodbye to files! Speckle is the first object based platform for the AEC industry
- Version control: Speckle is the Git & Hub for geometry and BIM data
- Collaboration: share your designs collaborate with others
- 3D Viewer: see your CAD and BIM models online, share and embed them anywhere
- Interoperability: get your CAD and BIM models into other software without exporting or importing
- Real time: get real time updates and notifications and changes
- GraphQL API: get what you need anywhere you want it
- Webhooks: the base for a automation and next-gen pipelines
- Built for developers: we are building Speckle with developers in mind and got tools for every stack
- Built for the AEC industry: Speckle connectors are plugins for the most common software used in the industry such as Revit, Rhino, Grasshopper, AutoCAD, Civil 3D, Excel, Unreal Engine, Unity, QGIS, Blender and more!
Try Speckle now!
Give Speckle a try in no time by:
Resources
for help, feature requests or just to hang with other speckle enthusiasts, check out our community forum!
our tutorials portal is full of resources to get you started using Speckle
reference on almost any end-user and developer functionality
Repo structure
This repo is divided into two distinct parts, a frontend and a server
Frontend
The frontend/ folder contains all code related to the app any user will be able to access.
The app was built using Vue.js, and communicates with Speckle through our GraphQL API. It also communicates with the app's server using REST calls.
Backend
The server/ folder contains all code related to the app's backend.
It's a FastAPI server, written in Python and uses our Python SDK to communicate with our public server
FastAPIgenerates automatic documentation on the/docsroute of the server.
It is a very basic server composed of two routes:
diff-check/STREAM_ID/CURRENT_COMMIT_ID/PREV_COMMIT_ID
Checks for an existing commit in a predefined diff branch and returns the diff commit if it does exist.
diff/STREAM_ID/CURRENT_COMMIT_ID/PREV_COMMIT_ID
Performs a diff operation against two commits from the same stream.
Result of the diff operation will be commited to the stream on a predefined branch.
Returns the diff commit if the operation was successfull.
Workshop pre-requisites
You'll need an IDE to follow along with the code. We'll be using VSCode for the class, but any other will work too. You will also need the following extensions:
- Vetur
- Python (comes preinstalled now, but just to be safe)
For the server, you must have:
pythoninstalled in your computer (at least version3.6,3.9recommended) Download it here- Install
FastAPI:pip install fastapi # and then pip install "uvicorn[standard]" - Install
specklepypip install specklepy
For the Vue app:
- Install
nodeDownload it here - Install
vue CLI- Instructions here - Install
veturVSCode extension - Install
vue dev toolsfor Chrome
