Product · NURBS geometry

Curved offset, curved shell, surfaces from points, mesh back to B-rep

Six bodies, each built live by the kernel: a cylinder and a cone offset along their own curved and planar faces, a sphere hollowed to a wall thickness, a torus offset past the point where its tube would swallow its own axis — refused, by name, rather than approximated — a NURBS surface fitted exactly through a 7×7 point grid, and a real STL file brought back as an analytic sphere, shown next to its input mesh in one x-ray view. Every volume, residual and watertight audit below is re-measured off the shipped STEP file — none of it is typed in. The full STL-to-solid scoreboard is on the Reconstruction page.

The cards

Loading the model index…

What these demonstrate

  1. Offset routes automatically. ops/offset.js#offsetBody reads the body BEFORE validating a distance or writing an entity; a wholly planar body still takes the v1 planar path byte for byte, and a body carrying a cylinder, cone, sphere, torus or B-spline face is routed, whole, to ops/offsetCurved.js — same call, same signature, either way.
  2. Correct-or-refuse, not correct-or-approximate. The torus card is a deliberate failure: the requested offset would fold the tube through its own axis, and the kernel measures that before authoring anything and refuses under offset_torus_self_intersect rather than writing a self-intersecting surface.
  3. A fit surface passes through its points, not near them. NurbsSurface.fitGrid is global INTERPOLATION (Piegl & Tiller §9.2), not a least-squares approximation — the residual the card reports is measured by evaluating the fitted surface back at every input parameter.
  4. A mesh comes back as what it is. A triangle mesh with no declared kind — the only thing a real STL ever carries — comes back as a genuine analytic B-rep face when it really is one, never as a spline patch that merely looks round.

The same offset and shell calls are single ops on the MCP surface: cad_offset { distance: 2.5 } and cad_shell { thickness: 2, openFaces: [...] }.

More demos

All demos →

Build your own part with NativeCAD

Free for education and makers with a registered key · $200 per seat per year · Kernel SDK for products.