Skip to content
Novus Examples
glb1020 B

GLB — Inverted Normals / Mixed Winding

The mixed-winding cube as a GLB with a default single-sided material, so the reversed faces are culled and you can see straight through the model. Turning on doubleSided hides the defect without fixing it, which is the trap this fixture is for.

Loading 3D preview…

Specifications

Format
glTF 2.0 binary (GLB)
Vertices
8
Triangles
12
Inverted Triangles
6
Winding Consistent
false
Signed Volume
0
Note
default material is single-sided, so the defect is visible

Testing contract

Expected to recover
Scenario
View with backface culling on, then set the material doubleSided and view again.
Expected result
Culled, three faces are missing; doubleSided makes it look solid again but the winding is still wrong and any volume or boolean operation still fails.

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

“GLB — Inverted Normals / Mixed Winding” is a deterministic Novus Examples fixture for Mesh repair testing, Mesh processing QA. A watertight mesh paired with a deliberately broken twin (holes, missing faces, open ends) — the input and intended result for a mesh-repair / hole-filling tool.

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("inverted-normals.glb")
print(mesh.bounds, mesh.faces.shape)

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