If you are building design software, this distinction is not academic. Confusing topology with geometry leads directly to architectural mistakes that surface months later as unfixable robustness problems.

The two layers

A solid model has two distinct layers, and conflating them is the classic beginner error.

GeometryTopology (B-Rep)
Answers"What shape is this face?""Which faces touch, and along what?"
ContainsCurves, surfaces, pointsFaces, edges, vertices, loops, shells
NatureContinuous mathematicsDiscrete graph
Typical formNURBS, analytic (plane, cylinder)Half-edge or winged-edge structure
Fails asPrecision loss, bad parameterisationGaps, non-manifold edges, wrong orientation

B-Rep is the skeleton. NURBS is the flesh. Asking "B-Rep or NURBS?" is like asking whether a building is made of floor plans or bricks.

What NURBS actually gives you

Non-Uniform Rational B-Splines are the dominant surface form in CAD for concrete reasons:

  • They represent analytic shapes exactly. The "rational" part means circles, cylinders, spheres and cones are exact, not approximated. This matters enormously for manufacturing.
  • One representation covers everything. Planes, quadrics and freeform surfaces all live in the same mathematical form, so downstream code handles one type.
  • Local control. Moving one control point changes the surface locally, which is what makes interactive editing feasible.
  • Well-understood algorithms. Evaluation, knot insertion, degree elevation and splitting are standard, documented operations.

The costs are real too: surface–surface intersection has no closed-form solution in general and must be computed numerically, and trimmed NURBS — a surface with regions cut away — introduces the tolerance problems that cause most CAD robustness failures.

The trimming problem

This deserves its own section because it is where most real-world CAD pain originates.

A face in a solid is rarely a whole surface. It is a surface with a trimming boundary — curves in parameter space marking which region is actually part of the model. Those trimming curves are computed numerically from intersections, so they carry error.

The consequence: two faces that topologically share an edge may have trimming curves that disagree slightly in 3D space. The model says they meet; the geometry says there is a micron-wide gap. Every serious kernel therefore carries tolerances on topological entities — and reconciling those tolerances is what "tolerant modelling" means.

How B-Rep stores a solid

  1. Vertex A point, referencing geometry (a 3D position).
  2. Edge A connection between vertices, referencing a curve.
  3. Loop A closed circuit of edges bounding a region of a surface.
  4. Face A bounded region, referencing a surface plus its trimming loops.
  5. Shell A connected set of faces forming a closed boundary.
  6. Solid A volume enclosed by one or more shells.

Validity conditions matter as much as the structure: every edge should be used by exactly two faces in a manifold solid, face normals must point consistently outward, and loops must be correctly oriented. A kernel that does not check these will happily produce models that fail three operations later.

Why this decides your architecture

  • Tolerance model. A single global tolerance is simple and fails on imported data. Per-entity tolerances are harder and survive real geometry. Choose early; changing later is a rewrite.
  • Exact vs approximate predicates. Whether "are these coincident?" uses floating-point comparison or exact arithmetic determines your robustness ceiling.
  • Analytic surface handling. Keeping planes and cylinders as analytic forms rather than converting everything to NURBS gives faster, more robust intersections in the common cases.
  • Validation discipline. Checking topological validity after every operation catches corruption at its source instead of far downstream.

Practical advice for product teams: do not build this layer yourself unless your geometry domain is narrow. Use Open CASCADE or a commercial kernel and invest your engineering in the domain logic above it. The teams who regret their kernel decision are almost always the ones who underestimated trimming and tolerance.

When you can simplify

If your product only needs 2D profiles, or 2.5D prismatic shapes, or meshes rather than exact solids, you may not need a full B-Rep and NURBS stack at all. A narrower representation is dramatically less work and far more robust — because most of the difficulty above simply does not arise.

Deciding on a geometry architecture? Tell us what shapes your product must handle — the honest answer is often simpler than a full kernel. See our CAD kernel service.

Frequently asked questions

No — and this is the most common misunderstanding. B-Rep is a topological scheme describing how faces, edges and vertices connect. NURBS is a mathematical form for the curves and surfaces themselves. A B-Rep solid is typically built from NURBS geometry; they operate at different levels.
Other solid representations: constructive solid geometry (CSG), which stores a tree of primitives and boolean operations, and voxel or implicit representations, which describe solids as fields. B-Rep dominates mechanical CAD because it stores exact surfaces and supports precise manufacturing output.
Because exchange formats carry geometry more reliably than topology and tolerance. Surfaces survive; the information about how they join, and at what tolerance, often does not — leaving gaps that must be stitched before the model behaves as a solid.