Slack is a collaboration hub that is changing the way people work and communicate. As 3D modelling is being implemented into the workflow of various fields, the need for an effortless pipeline is crucial. While some image files and websites have a preview thumbnail generated within the slack discussion, 3D files such as .stl are shown as a file name.

What it does

Upload model to an external viewing service and link the URL and render a video/GIF preview of the model.

How we built it

Using Slack API, Javascript, and stdlib. We also used Blender to create an animated GIF, and as the external 3D viewer.

Challenges we ran into

-We tried displaying the 3D viewer directly in Slack, but they don’t allow iframe/JS rendering for security reasons, so we went with our current plan instead, where an external link is generated.

-There were some issues debugging Slack API, so we had to limit our scope to hardcoding the links generated, and keeping it to link only and no GIF preview.

-Slack processing is slower, so some responses may be delayed (getting the previous model's link while uploading the current model).

Accomplishments that we're proud of

No one has attempted this for Slack before even though there's a huge demand for it, so we would be the first to implement this idea. While not as convenient as direct viewing in Slack, it still significantly improves workflow:

-Current: Slack -> Downloads folder -> local 3D software -> Deleting file after viewing (4 steps, 3 software, desktop only)

-Improved: Slack -> online 3D viewer (2 steps, 1 software, all platform)

What we learned

We learned that integrating and relying on different components (Slack API, js, stdlib) can be challenging, and you can be limited in scope because of the components' limitations, and the increased debugging time because the components may not be able to communicate perfectly.

What's next for Slack 3D Viewer App

-Port the app to another workspace software, ie Microsoft Teams, Rocket Chat, etc.

-When Slack allows iframe/JS rendering, embed the 3D viewer directly into Slack

-Add options for user to make minor adjustments, ie scale, transform, rotate

-Automatic file upload to external services, ie Github, Thingiverse, Sketchfab, GrabCAD

Built With

Share this project: