We appreciate sample asset contributions; they help ensure a consistent glTF ecosystem.
There are a few things that are required for any contribution that are listed here. The details are below.
- glTF model using glTF V2.0 plus any ratified extension
- Screen shot of the model for the catalog
- Description of the model and all important points for file structure, modeling, rendering, or animation.
- Metadata about the model and asset files
To contribute a model, open a pull request with a new subdirectory containing the above listed items. many of the items go into subdirectories. The details are as follows:
-
glTF Model
- The model in as many glTF variations as reasonable (using the same directory structure as the others (example)). Tools for converting to glTF are here.
- Each format should be in its own separate directory
- The model must use glTF Core V2.0 format and structure
- The model should only use ratified glTF extensions
-
A screenshot of the model, stored in a subdirectory called
/screenshot
- The screenshot file should be called
screenshot
with an extension appropriate to the file format. - The screenshot must include all of the model, preferably in the orientation when first displayed
- The largest dimension should be no more than 150 pixels
- The image file format should be the one that is smallest for the content. The preference is for JPEG formatted files, but PNG, WebP are also acceptable. If the image is animated, a GIF formatted file may be used to capture the animation.
- The screenshot file should be called
-
The model description
- This is in Markdown format (
.md
). - The filename must be README.body.md
- The description file must not include the following items. They are automatically provided by the build software.
- Top-level (
#
) tag for the model name - Second-level (
##
) tag for the model tags - Second-level (
##
) tag for the model summary - Second-level (
##
) tag for the model legal, copyright, and license information
- Top-level (
- The description file must include the following items.
- Second-level (
##
) tag for the model screenshot - Second-level (
##
) tag for the model description
- Second-level (
- The description should also have a screen shot.
- This screen shot should have the horizontal dimension between 1000 to 2000 pixels
- The vertical dimension should be between 500 to 1000 pixels
- The model needs to retain the proper perspective.
- The file name may be anything but
screenshot
.screenshot_large
is frequently used. - The file must reside in the
screenshot
directory.
- This is in Markdown format (
-
Metadata
- All metadata is stored in
metadata.json
. It contains various information about the model. - There is an experimental HTML application to assist in the creation of the Metadata file
- The Metadata file may be generated manually.
- The Metadata file will be automatically upgrade if needed during system upgrades.
- See Example Metadata File (below) for details
- All metadata is stored in
Each asset requires detailed information about the asset. The information includes
- Copyright owner
- Copyright year
- License
- Credit name and work performed
An asset may have multiple copyrights and/or credits. For example, if Acme, Inc. created a model rocket and Wyle E Coyote animated it; there would be two copyrights, one for the model and one for the animation.
Assets to be incldued in the Sample Asset repository must have a license that allows Khronos to publish the asset and allow others to use the asset in public. Khronos recommends use of a permissive license like Creative Commons Attribution 4.0 International License or even Creative Commons 1.0 Universal Public Domain Dedication . Assets with semi-restrictive licenses may be included in the repository provided arrangments are made prior to the Pull Request being posted.
The system will attemtp to list the copyrights with the oldest one first. Some manual adjustment may be necessary.
The system can automatically generate a license and credit block in the format below. If you manually generate a README file, then please try to follow this format as much as possible. This item is repeated as many times as necessary. Put the oldest item first.
© <year>, <owner>. <license name> (with optional link to legal text)
- <artist> for <what>
All assets in the repository are assigned tags by the asset submittor and potentially by Repository managers. These tags allow others to easily find the asset and related assets. You may assign any tag you wish; however, only a limited number of tags are used to construct the summary displays.
The metadata file is always called metadata.json and is located in the model root directory (not the root directory of the repo). It specifies the necessary metadata of the model including its name, ownership, artist, license, and tags. The current version of the JSON structure is below. If you are unsure of the details, set the version number to less than the current and the system will automatically upgrade the file.
{
"version" : 2,
"legal" : [
{
"artist" : "",
"owner" : "",
"year" : "",
"license" : "",
"what" : ""
}
],
"tags" : [],
"screenshot" : "screenshot/screenshot.jpg",
"name" : "",
"path" : "",
"summary" : "",
"createReadme" : false
}
The legal structure contains information about each owner of the model. It comprises of the following elements:
-
what: What was done to get the model to this stage. Standard terminology includes Everything or Creation for the initial work; Mesh for the geometry; Texture for all materrials; Animation for movement; and Conversion for converting to glTF.
-
artist: The name of the artist(s) who performed the what.
-
owner: The owner of the model for this operation. This is may be the artist or the organization responsible for the artist. If the work is in the Public Domain, then the owner may be Public.
-
year: The year the work was performed.
-
license: The licensed assigned by the owner. Standard license shorthand should be used. The known shorthand is
- CCO
- PD
- CC-BY / CC-BY International 4.0
- CC-BY-ND
- CC-BY-NC
- CC-BY-NC-ND
- Other licenses may be used with agreement prior to submitting the Pull Request.