
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
gltf-validator
Advanced tools
This is an npm package for the official glTF Validator compiled from Dart to JS.
npm install --save gltf-validator
const fs = require('fs');
const validator = require('gltf-validator');
const asset = fs.readFileSync('./Box.gltf');
validator.validateBytes(new Uint8Array(asset))
.then((report) => console.info('Validation succeeded: ', report))
.catch((error) => console.error('Validation failed: ', error));
const validator = require('gltf-validator');
fetch('Box.gltf')
.then((response) => response.arrayBuffer())
.then((asset) => validator.validateBytes(new Uint8Array(asset)))
.then((report) => console.info('Validation succeeded: ', report))
.catch((error) => console.error('Validation failed: ', error));
const fs = require("fs");
const path = require("path");
const validator = require('gltf-validator');
const filename = 'Box.gltf';
const fullpath = __dirname + '/' + filename;
const asset = fs.readFileSync(fullpath);
validator.validateBytes(new Uint8Array(asset), {
uri: filename,
format: 'gltf', // skip auto-detection and parse the input as glTF JSON
maxIssues: 10, // limit max number of output issues to 10
ignoredIssues: ['UNSUPPORTED_EXTENSION'], // mute UNSUPPORTED_EXTENSION issue
onlyIssues: ['ACCESSOR_INVALID_FLOAT'], // only consider ACCESSOR_INVALID_FLOAT an issue. Cannot be used along with ignoredIssues.
severityOverrides: { 'ACCESSOR_INDEX_TRIANGLE_DEGENERATE': 0 }, // treat degenerate triangles as errors
externalResourceFunction: (uri) =>
new Promise((resolve, reject) => {
uri = path.resolve(path.dirname(fullpath), decodeURIComponent(uri));
console.info("Loading external file: " + uri);
fs.readFile(uri, (err, data) => {
if (err) {
console.error(err.toString());
reject(err.toString());
return;
}
resolve(data);
});
})
}).then((result) => {
// [result] will contain validation report in object form.
// You can convert it to JSON to see its internal structure.
console.log(JSON.stringify(result, null, ' '));
}, (result) => {
// Promise rejection means that arguments were invalid or validator was unable
// to detect file format (glTF or GLB).
// [result] will contain exception string.
console.error(result);
});
Returns a version string.
Returns string
Returns an array of supported extensions names.
Validates an asset from bytes.
data Uint8Array Byte array containing glTF or GLB data.options ValidationOptions Object with validation options.Returns Promise Promise with validation result in object form.
Validates an asset from JSON string.
json string String containing glTF JSON.options ValidationOptions Object with validation options.Returns Promise Promise with validation result in object form.
Type: Object
uri string Absolute or relative asset URI that will be copied to validation report.format string Set to glb or gltf to skip auto-detection of the asset format based on the first byte; any other value will be ignored. This option has no effect on validateString.externalResourceFunction ExternalResourceFunction Function for loading external resources. If omitted, external resources are not validated.writeTimestamp boolean Set to false to omit timestamp from the validation report. Default is true.maxIssues number Max number of reported issues. Use 0 for unlimited output.ignoredIssues Array<string> Array of ignored issue codes.onlyIssues Array<string> Array of only issues to consider. Cannot be used along with ignoredIssues.severityOverrides Object Object with overridden severities for issue codes.Type: Function
uri string Relative URI of the external resource.Returns Promise Promise with Uint8Array data.
FAQs
Library for validating glTF 2.0 assets, compiled from Dart to JS.
The npm package gltf-validator receives a total of 22,500 weekly downloads. As such, gltf-validator popularity was classified as popular.
We found that gltf-validator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.