solidcore vs SMLib: upstream test models

About this page

Each model is read by two kernels: SMLib, NVIDIA's C++ B-rep kernel (reference build), and solidcore, a Rust port of it. Both run the same sampling:

A model matches when both kernels have the same face and edge counts, the same inside/outside mask at every grid point, and every grid, edge and trim-loop sample within 1e-5 (outputs are written with 6 decimals).

Meshes: the grid cells are clipped to the face's trim loops (even-odd, Clipper) and triangulated with earcut. Each new boundary vertex is evaluated on the surface by the same kernel. Loops that close only across a periodic seam are unwrapped. Edge uses with no UV trim curve, such as degenerate pole edges, are bridged in UV. A face whose loop polygon still disagrees with the kernel's inside mask, or that has no UV trim curves, uses the inside-mask cells instead. The meshes shown are built on every 2nd grid line (45×45 per face). The agreement numbers come from the full 88×88 run.

Each model runs per kernel in its own process with a 60 s limit, and solidcore runs that hit the limit were retried with 300 s. Times are wall-clock on one shared workstation with other jobs running, measured for this sampling workload only.

Models: NVIDIA SMLib test files (TestFiles/pt_TestFiles), Apache-2.0. SMLib is NVIDIA's; solidcore is an independent Rust port. Source: github.com/tangency-labs/solidcore.

Loading…

SMLib (C++)
solidcore (Rust)