Developer Guidelines
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.
Table of Contents
- Parameters and Interface
- Virtual Reality Workflows
- GUI Examples
- Source
- File Formats
- License and Hosting
- Features
Parameters and Interface
Use safe and up-to-date workflows:
- The Data API makes it easy to include Sketchfab as your 3D publishing solution.
- Use the
/v3/
endpoint. - Include a source.
- Prefer OAuth2 login over token authentication to offer a better UX.
- For security, do not expose API Tokens publicly.
- If using token authentication, offer to save the token for future use.
- Include current branding.
Give users control:
- 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 Private and Password fields; indicate that these are Pro features.
- 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.
- Adding a source parameter to your app allows us to identify your content and add a custom label like "Uploaded with Substance Painter" on all model pages.
- We can also add your app to the Exporters page.
- Contact us to discuss your custom tag page and branded uploads
Virtual Reality Workflows
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.
- Follow the rest of the guidelines to provide the best possible integration (show a progress bar, add automatic tags and a source parameter, open a link to the model page on Sketchfab, etc.)
GUI Examples
Source
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.
File Formats
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
- PLY or ASCII: Best for point clouds
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.
Features
Any other features you want to include are great! For example, the 3ds Max exporter has robust texture management and light baking features. Many of the 3D Scanning tools with Sketchfab publishing automatically set some 3D settings like Orientation and Shading. We're happy to discuss these possibilities, just drop us a line.