Version 0.6.1 - 2026-01-25
- Added validation for the
3DTILES_content_gltfextension #336 - Added validation for the
MAXAR_gridextension #337 - Added validation for the
MAXAR_extentextension #338, #347, #351 - Added validation for the
MAXAR_content_geojsonextension #339 - Changed the validation issue type for string lengths that are invalid according to the
minLength/maxLengthdefinitions of the JSON schema fromARRAY_LENGTH_MISMATCHtoSTRING_LENGTH_MISMATCH#340 - Added validation for the
MAXAR_image_orthoglTF extension #341 - Added validation for the
MAXAR_temporal_light_traitsglTF extension #342 - Added validation for the
MAXAR_nonvisual_geometryglTF extension #343 - Fixed a case where a missing
extensionsRequireddeclaration was not detected #346 - Changed the mechanism for resolving semantic schema files to resolve them relative to the options file that defines them #350
- Fixed MAXAR spatial reference system validation of S2 faces #352
- Fixed a case where a validation issue was erroneously generated when a non-scalar class property defined valid
min/maxproperties #356 - Added validation of the values in binary property tables in glTF against the value ranges that have been defined in the schema #357
- Build process: The CI will now fail when
eslintgenerates warnings #344
Version 0.6.0 - 2025-02-24
- Fixed a bug where a
BOUNDING_VOLUMES_INCONSISTENTerror was reported when a tile defined atransform#328 - Allow users to provide schema files for validating custom metadata semantics #329
- Do not emit warnings when encountering
MAXAR_content_geojson,VRICON_class, orVRICON_gridextensions #330 - Fixes for 3TZ validation #331
- Fixed a bug where a 3TZ file could not be referred to with a relative path
- Handled the case where completely invalid 3TZ files caused an
INTERNAL_ERROR
- Updated
3d-tiles-toolsversion to0.5.0- Minor updates for the new
asyncAPI that was introduced via3d-tiles-tools/pull/167 - Includes a bugfix from `3d-tiles-tools/pull/173 where 3TZ files that contained certain local ZIP file headers caused an internal error in the validator
- Minor updates for the new
- Changed the severity of issues that have been generated for content types that are known but not validated (like
VCTR,GEOM, andGEOJSON) fromWARNINGtoINFO#332
Version 0.5.1 - 2024-12-05
- The maximum number of issues that are reported for a single glTF asset is now limited (#291).
- When the number of bytes that are required for a certain property texture property did not match the number of
channels, then the validator reported this as anERROR, with the typeTEXTURE_CHANNELS_OUT_OF_RANGE. This could cause errors to be reported for the case of 16-bit channels in textures, where these numbers do not have to match. Now, these cases are only reported as aWARNING, of the typeTEXTURE_CHANNELS_SIZE_MISMATCH(#293). - The
refineproperty for tiles is optional in general, but required for the root tile. The validator did not check this. Now, it reports aTILE_REFINE_MISSING_IN_ROOTerror when therefineproperty is missing in a root tile (#303). - When encountering an invalid alignment in the binary data of legacy tile content files, the validator stopped the validation of these files, and only reported a
BINARY_INVALID_ALIGNMENTerror. Now, it will try to process the data despite the invalid alignment, and perform further validation steps, for example, of the binary glTF data (#304). - Fixed a bug where the validator erroneously reported validation error when external tilesets did not use extensions that had been declared in the
extensionsUsedof the containing tileset (#305). - Added a convenience function to the
ValidationResultclass, to easily deserialize and post-process validation reports (#307). - Fixed a bug where the default value for
texCoordproperties of property texture was not handled properly (#309). - Added the option to define a severity threshold for content validation issues. Setting the
contentValidationIssueSeverityin the validation config file will omit all content validation issues that are below this severity threshold (#310). - Fixed a bug where the validator reported an error for binary
.subtreefiles that did not contain any buffers (#313). - Added support for the validation of the
NGA_gpm_localglTF extension (#316). - Added support for the validation of the
NGA_gpm3D Tiles extension (#319). - Fixed a bug where the validator erroneously reported a
BOUNDING_VOLUMES_INCONSISTENTerror when a tile with atransformcontained acontentwith aboundingVolume(#322). - Updated the underlying
3d-tiles-toolsdependency to include a fix for a bug where the validator reported anINTERNAL_ERRORwhen trying to validate a tileset that contains glTF that use theEXT_meshopt_compressionextension (#323). - Fixed a bug where the semantics that are referred to as 'General Semantics' in the 3D Metadata Semantic Reference had been reported to be unknown with a
METADATA_SEMANTIC_UNKNOWNmessage (#325).
Version 0.5.0 - 2023-10-24
- Added validation of glTF extensions via #280 and #284. In addition to the basic validation of glTF tile content that is performed with the glTF validator, the 3D Tiles Validator now checks the validity of certain glTF extensions:
- For
EXT_mesh_features, it will check the validity of feature ID attributes and feature ID textures - For
EXT_instance_features, it will check the validity of the feature ID attributes that refer to theEXT_mesh_gpu_instancingextension - For
EXT_structural_metadata, it will check the validity of the metadata schema definition, property tables, property attributes, and property textures
- For
- Added a command line functionality for validating single tile content files (glTF/GLB, B3DM, I3DM, PNTS, and CMPT), via #285
- When an I3DM refers to an external glTF asset with a URI, then the URI has to be padded with
0x20(space) bytes if necessary to satisfy the alignment requirements. The validator only accepted0x00(zero) bytes as padding bytes. Now the validator properly handles trailing spaces, and reports the presence of zero-bytes with a validation warning (#276) - Changed the severity level of validation issues:
- The case that the
geometricErrorof a tile was larger than thegeometricErrorof its parent was reported as anERROR. The specification does not explicitly disallow this, so it is now only treated as aWARNING(#286) - An empty
childrenarray in a tile was treated as anERROR, but is now treated as aWARNING, via #288
- The case that the
Version 0.4.1 - 2023-05-02
- Moved most of the internal implementation into the
3d-tiles-tools, and replaced it with a dependency to3d-tiles-tools - Detect cycles in external tilesets (#269)
- Handle 3D Tiles packages that contain entries that are individually compressed with GZIP
Version 0.4.0 - 2023-01-31
- Padding bytes in B3DM that had only be inserted to align its length to 8 bytes had not been handled properly, and caused unwanted validation warnings. This case is now handled by restricting the glTF validation to the GLB without padding bytes (#256)
- When a tileset referred to glTF (JSON) data that could not be resolved, then this was ignored. Now, it creates an error saying that the data could not be resolved. The treatment of non-resolvable data might be configured with validation options in the future (see #224)
- When the glTF validator generated messages with the "hint" severity, these had not been shown in the tileset validation report. Now, they show up as issues with the
INFOseverity level. - The
tile.transformmatrices had been checked to be invertible. Now they are checked to be affine (#262). - Fixed a bug where the validation of PNTS caused wrong validation issues for the batch table length for batched point clouds.
- Added experimental support for validating tileset package files. The
--tilesetFilethat is given at the command line can now also be a 3TZ or 3DTILES file. - When input JSON files contained a Unicode BOM (Byte Order Mark), the validator reported a
JSON_PARSE_ERRORwithout information about the reason for the parsing error. Now it reports anIO_ERRORwith a helpful error message.
Version 0.3.0 - 2022-12-20
- Updated the packaging so that the validator can more easily be executed as a command line tool after installing
- Updated the scripts in
package.jsonto simplify the packaging process
Version 0.2.0 - 2022-12-13
- Add support for validation options that allow to include/exclude certain content types for the validation. These options can either be given via the
--optionsFilecommand line argument, or passed as an optional parameter toValidators.validateTilesetFile. - Fixed a bug where the content data was not validated when the validator was used as a library (#248)
- Fixed a bug that caused validation errors for
statistics.classproperties - When a tileset input file did not exist, the validator generated a
JSON_PARSE_ERROR. Now it generates anIO_ERROR(including the file path) instead. - Dependency updates:
- Updated
better-sqlite3from7.5.3to8.0.1(for compatibility with Node 19 - see #245) - Removed
jasmine-node - Removed
tsconfig/node16 - Reduced
engines.nodeversion from>=16.0.0to>=14.0.0
- Updated
Version 0.1.0 - 2022-11-29
- Initial release