You are a 3D software publisher and want to add a social layer and let your users show their creations in full 3D and VR glory online? Awesome, you came to the right place! We already partnered with many 3D creation applications that natively integrated our API to add a “Share to Sketchfab” button in their tool (see full list of partners here).
The goal of the exporter guidelines is to help you build the best possible integration and understand all the benefits it will bring to your application.
The exact implementation of the API will depend on your needs and the scope of the project (stand-alone application, plug-in, etc.),
but following some guidelines will help maintain a smooth publishing process and make your exporter as user-friendly as possible.
Please keep us in the loop so we can track progress and offer support. Contact us with any questions.
Allow users to upload to their own account; do not use a generic account for all uploads. Users need to have control on their uploads to be able to edit their 3D settings and make their content (and your app's gallery) look beautiful. If you don’t want your users to be able to set their models as downloadable we can detect the source parameter of your app and remove the download feature from these models.
When possible, let users decide what to upload (entire scene, only selected object, etc.)
When possible, allow users to cancel while the file is uploading.
Offer basic metadata: Name, Description, Tags. More data from your users means better search results on Sketchfab and more exposure for your app.
Offer to publish models immediately or upload as a Draft. Draft mode lets users edit their 3D settings before the models appear in the newsfeed of their Sketchfab followers.
Add an option to auto-share to Facebook. We partnered with Facebook to natively display our 3D viewer in the Facebook newsfeed. Your users will love to easily share their creations with their friends on the most famous social network. Learn more about the workflow with OAuth.
Provide feedback and handle errors:
Show a progress bar when file is being uploaded
Display any error(s) if they occur - good error messages are accurate and help the user fix the issue
Offer to view the file online when upload/processing is successful
Warn users about maximum characters in text fields (Title: 48; Description: 1024; Password: 64; Tags: 48, and no more than 42 separate tags)
Warn users about file size limits (Free: 100 MB; Pro: 200 MB; Premium: 500 MB). Use ZIP/RAR/7z compression to save bandwidth and maximize upload size.
Add safeguards to prevent user errors (e.g. Check title length before uploading, so that an error can be displayed before sending a large file)
Leverage your application:
Automatically append 1 or 2 tags related to your software. This will generate a gallery for your software that we can customize with your logo, tagline and a link to your website. Check out this example for Substance Painter.
For desktop VR creation apps, there are some more specific UX considerations. Because it is not yet easy to type in Virtual Reality, Sketchfab login can be painful inside a VR headset. From a user experience standpoint, it's easy to allow users to press the Share to Sketchfab button inside the headset and continue the export process outside. Here are our current recommendations:
Integrate the share to Sketchfab button in your VR interface in a place easily accessible for the users.
Display a message such as "Take off your headset to continue sharing your creation with the world."
Open a pop-up menu on the user's desktop so they can log in or sign up using OAuth2 login.
Once logged in, let your users fill in their model information: title, categories, description, tags, etc. and click upload.
If you plan to implement the Upload API in a public application, the 'source' parameter is very important.
We use it for internal tracking, and it can be used to create custom processing pipelines on our end if there is a need.
It is not exposed publicly. It should be explicit and remain constant for the lifespan of your application.
For example: 'source': 'zbrush-exporter'. It should contain only lower-case letters and hyphens ('-').
DO NOT include any periods/dots ('.'), like 'myapp-2.0', or spaces.
If you want to include dynamic version information ('3dsmax-18000', '3dsmax-17000')
or distinguish between users ('qubicle-trial', 'qubicle-pro'),
or if you have any doubts about the 'source' parameter,
PLEASE contact us.
The preferred format for upload is FBX. If your application supports animations, you’ll need to use the FBX format. If your application cannot generate FBX, or you have specific needs,
you can upload any of our supported formats.
However, certain formats are more reliable than others:
OBJ + MTL: The best option after FBX; good support for materials, textures, vertex colors/normals
STL: For single material models and printable assets;
note that hard edges will be smoothed
To make the most of file size limits and minimize bandwidth usage, you should compress your model file(s) into a ZIP, RAR, or 7z archive.
License and Hosting
Giving us access to any source code that uses the API means we can help test, debug, and look for potential problems.
We understand that this might not be feasible for non-free software.
For public, free applications or plug-ins, explicit GNU GPL or MIT License is preferred.
Hosting the source on GitHub is a good option, as we may choose to contribute to, fork, or host some exporters ourselves.