Skip to content
Novus Examples
stl3.5 KB

STL — Zero-area Facets with Null Normals

An ASCII STL of the reference cube with two extra facets that have no area and declare a null (0 0 0) normal — exactly what CAD tessellators emit at a sliver. Slicers either drop them, warn, or divide by zero; this is how you find out which.

Loading 3D preview…

Interactive preview rendered from the equivalent glTF (zero-area-triangles.glb); drag to orbit. Download the file above for the STL original.

Specifications

Format
STL (ASCII)
Facets
14
Zero Area Facets
2
Null Normals
2
Note
normals declared as 0 0 0

Testing contract

Expected to recover
Scenario
Load into a slicer or STL repair tool and check the reported facet count and any warnings.
Expected result
14 facets are read, 2 are identified as degenerate and dropped, and the remaining 12 form a watertight cube.

What is a .stl file?

STL (Stereolithography) is a 3D model format that represents a surface as an unstructured collection of triangular facets, each with a normal and three vertices. It stores only geometry with no color, texture, or units, and comes in ASCII and binary variants. It is the workhorse format for 3D printing.

How to use this file

Use an example STL to test mesh loaders, ASCII versus binary parsing, slicer and 3D-print pipelines, and geometry validation such as watertightness checks.

How to use this file for testing

“STL — Zero-area Facets with Null Normals” 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: STL (ASCII). 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("zero-area-facets.stl")
print(mesh.bounds, mesh.faces.shape)

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