I have an exciting announcement about a working Proof of Concept to solve the Thingiverse challenge.
After reviewing all of the comments, here and on Youtube, I decided to help fix Thingiverse instead of competing with it by creating a website that acts as a front end to Thingiverse using their official API.
The goal of the application is to present a clean and simple “Google Like” front end to Thingiverse with limited graphics and two added features:
- 3d Viewer you can use to view and rotate any STL file
- Working OpenSCAD customizer
The site’s future availability of free and subscription versions is necessary to pay for the Amazon AWS hosting fees. I anticipate the availability of the basic customizer capabilities to retrieve a model and render it will remain accessible at no cost to everyone.
The site will support the following in the initial release.
You will have to create a FREE account and log in to use the app. User accounts are necessary to create separate processing queues for each user.
Then you can:
- Search Thingiverse for traditional or OpenSCAD models. In the future, I will expand on the search capabilities, including support for other model repositories.
- The models' parts are viewable as thumbnails or with a fun-to-use 3d viewer that will allow you to rotate and scale images of the STL parts.
- For non-OpenSCAD parts, a link is presented to the Thingiverse part on Thingiverse. I do not allow downloads of non-OpenSCAD parts to ensure compliance with the Thingiverse API terms, which states, "Make limited intermediate copies of Content only as necessary to perform an activity permitted under the Agreement."
- For OpenSCAD parts, you can download the OpenSCAD file and/or customize the part.
- When customizing a part, the OpenSCAD parameters are presented, and then you have an option to queue the part for rendering (processing). The same thing that Thingiverse did when it worked
[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“height”:“521”,“title”:“Screen Shot 2021-12-14 at 8.21.07 AM.png”,“width”:“800”,“data-attachmentid”:13010}[/ATTACH]
[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“height”:“521”,“title”:“Screen Shot 2021-12-14 at 8.19.35 AM.png”,“width”:“800”,“data-attachmentid”:13011}[/ATTACH]
[ATTACH=JSON]{“data-align”:“none”,“data-size”:“custom”,“height”:“521”,“title”:“Screen Shot 2021-12-14 at 8.24.06 AM.png”,“width”:“799”,“data-attachmentid”:13012}[/ATTACH]
Current Known POC Limitations:
- Ranges and selections lists are not yet available in the customizer, so it is possible to configure a part that will not render.
- If your part does not render, it will disappear from the queue but not appear in the rendered list. (In the future, the error log will be added to the rendered list instead of the file.)
- The U.I. still needs work. So I am looking for suggestions.
While testing, please leave general comments here and use the feedback button on the site to report bugs and request specific feedback about a function.
When I am comfortable that the application/website is stable, I will release it to the public via a video on my channel. Unless you ask me not to, I will share your forum I.D. in a thank you as part of the video or in the video description.
Irv
P.S. For those of you that want to geek out.
The application is built in Javascript using the Vue.js framework (version 2) and the Vuetify extension. It is hosted in the Amplify subs-system on AWS and uses Cognition for authentication, S3 for storage, and Fargate to run containers with the OpenSCAD image. A container is started and run for each customization which is why it is both robust and scalable and also why it takes 60 seconds to start a customization run. Future features will utilize a GraphQL database on AWS for private user data.
The application relies on the official Thingiverse API, which looks complete on paper but is inconsistent. Specifically, Thingiverse’s handling of CORS policy headers varies from “thing” to “thing,” which is quite complex to handle.