glTF Morph Targets — POSITION + NORMAL Deltas (GLB)
Morph targets that displace both positions and normals, with the first target already at weight 0.3 in the bind pose. Shading that stays flat while the surface ripples is the symptom of a loader that morphs positions and forgets the normal deltas.
Specifications
- Format
- glTF 2.0 binary (GLB)
- Morph Targets
- 2
- Target Attributes
- POSITION, NORMAL
- Base Weights
- 0.3, 0.0
- Note
- non-zero bind weight
Testing contract
Expected to pass- Scenario
- Render with weights (1.0, 0.0) and compare the shaded result against the same mesh with the NORMAL targets stripped.
- Expected result
- The lit surface differs; the morphed normals must be added and then renormalised, and the 0.3 bind weight must already be applied before any animation runs.
What is a .glb file?
GLB is the binary form of glTF, packaging 3D scene geometry, materials, textures, animations, and node hierarchy into a single self-contained file. It is optimized for efficient runtime loading and is often called the JPEG of 3D. It is widely used in web, AR, and real-time 3D applications.
How to use this file
Use an example GLB to test glTF loaders, embedded-texture and animation handling, and real-time rendering pipelines in web or game engines.
How to use this file for testing
“glTF Morph Targets — POSITION + NORMAL Deltas (GLB)” is a deterministic Novus Examples fixture for Conversion testing, Mesh processing QA, Normal map testing. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.
Documented properties for this file: glTF 2.0 binary (GLB). Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
3D and CAD fixtures carry one small, documented solid or scene. Convert and inspect against the known geometry, units, and structure; format twins let you diff interchange fidelity, and the 3D viewer previews the actual mesh.
Code examples
import trimesh # pip install trimesh
mesh = trimesh.load("targets-with-normals.glb")
print(mesh.bounds, mesh.faces.shape)Related files
- jsonConvert v2 3DS Semantic Geometry ReferenceJSON semantic reference for the 3DS tetrahedron, publishing vertex order, face indices, bounds, and the closed-mesh contract. Stable P8 artifact p8-convert-model-3ds-reference.

- jsonConvert v2 AMF Semantic Geometry ReferenceJSON semantic reference for the AMF tetrahedron, publishing vertex order, face indices, bounds, and the closed-mesh contract. Stable P8 artifact p8-convert-model-amf-reference.

- jsonConvert v2 DRC Semantic Geometry ReferenceJSON semantic reference for the DRC tetrahedron, publishing vertex order, face indices, bounds, and the closed-mesh contract. Stable P8 artifact p8-convert-model-drc-reference.

- jsonConvert v2 FBX Semantic Geometry ReferenceJSON semantic reference for the FBX tetrahedron, publishing vertex order, face indices, bounds, and the closed-mesh contract. Stable P8 artifact p8-convert-model-fbx-reference.

- jsonConvert v2 LWO Semantic Geometry ReferenceJSON semantic reference for the LWO tetrahedron, publishing vertex order, face indices, bounds, and the closed-mesh contract. Stable P8 artifact p8-convert-model-lwo-reference.

- voxConvert v2 Occupied Voxels Source (VOX)Real deterministic VOX source with four occupied voxel coordinates, palette indices, and unit occupied-coordinate bounds for Convert v2 import coverage. Stable P8 artifact p8-convert-model-vox.

Generated by generation/models_p7.py. Free for any use, no attribution required — license.