Lesson 1.1Lesson 1.1 · Rhino & NURBS Fundamentals
NURBS Curves & Surfaces
The exact, smooth mathematics under everything you will model
Every smooth line you will ever draw in Rhino is the same object underneath: a NURBS curve, defined by a handful of control points and a little maths.
You do not need to derive the equations, but you do need an honest mental model of what a NURBS curve actually is - because when a fillet fails, a surface ripples, or a definition chokes on 'bad geometry', the reason almost always lives here.
This lesson builds that model from the ground up: control points, weights, knots and degree; why NURBS can represent smooth shapes exactly rather than approximately; how curves become surfaces become polysurfaces; and what continuity - G0, G1, G2 - really means when two pieces meet.
Fewest points, right degree, checked seams. Model exact, mesh only when you must.
Control points, weights, knots, degree - the four dials
NURBS stands for Non-Uniform Rational B-Spline. Ignore the acronym for a second and picture the thing it describes: a smooth curve that follows, but usually does not touch, a set of control points. Drag a control point and the curve nearby shifts smoothly; the rest stays put. That local, predictable control is the whole appeal, and it is the reason NURBS became the standard for design - you can nudge a shape into exactly what you want without the whole curve lurching in response.
Four ingredients fully define the curve. The control points are the handles you move. The degree sets how smooth and how 'stiff' the curve is - degree 1 is straight segments (a polyline), degree 3 is the everyday smooth curve most modelling uses, and higher degrees are smoother but floppier and heavier. The knot vector is a non-decreasing list of numbers that parametrises the curve - it decides where each control point's influence begins and ends along the length; 'non-uniform' just means those spacings need not be equal, which is what lets NURBS bend where you want. The weights are the 'rational' part: give one control point a heavier weight and the curve is pulled closer to it. Uniform weights give an ordinary B-spline; unequal weights let NURBS describe conic sections - a true circle, ellipse or arc - exactly, which plain polynomial curves cannot.
There is one more useful idea hiding in the degree: a NURBS curve is built from many small polynomial pieces (spans) stitched together seamlessly, and the degree sets how many control points influence any given span - a degree-3 curve is locally shaped by four control points at a time. That is why editing one point only ripples out a short way, and why a Bezier curve (which you may meet elsewhere) is really just the simplest special case - a single-span curve where every control point affects the whole shape. NURBS generalise Beziers so you can chain long, editable curves without them going global and unruly.
You rarely edit knots or weights by hand. But knowing they exist explains a lot: why inserting a point changes the knot vector, why a 'rebuilt' curve looks subtly different, why a curve has a visible seam at its start point, and why degree matters when a loft or fillet comes out wrong.
Control points move it, degree sets smoothness, knots set influence, weights pull it. Four dials.
Why 'exact' matters: NURBS vs meshes
A NURBS curve or surface is a continuous mathematical object. Ask for the point at parameter 0.5, or the tangent, or the exact area, and Rhino computes it from the equation - there is no resolution to run out of. Zoom in forever and a NURBS circle stays a perfect circle.
Contrast a mesh: a mesh approximates a shape with flat triangles or quads. It is light, fast and perfect for rendering, sculpting and 3D-printing, but a mesh circle is really a many-sided polygon, and its smoothness is baked in at creation. NURBS is the language of precise, manufacturable design - CAD, CNC, architectural surfaces - because it carries exact geometry and clean tangents all the way to fabrication. Meshes are the language of visualisation and organic form.
This is why Rhino is a NURBS modeller at heart (with strong mesh tools alongside): architectural and product geometry usually needs the exactness. It also explains a recurring workflow fact - you will often convert NURBS to mesh for analysis or rendering, but going the other way (mesh back to clean NURBS) is hard and lossy. Model in the exact world for as long as you can, and mesh only when you must.
The distinction matters more than it first appears when you reach Grasshopper. Some analysis and simulation tools - Kangaroo physics, many environmental workflows, game-engine exports - want meshes, because triangles are fast and predictable to compute on. Other operations - offsets, fillets, clean boolean solids, fabrication of a milled surface - want NURBS, because they need exact tangents and continuous geometry. A large part of being fluent later is knowing which representation each task expects and converting deliberately, at the right moment, rather than being surprised when a component refuses your geometry because it wanted the other kind.
NURBS = exact equation, zoom forever. Mesh = triangles, fixed resolution. Don't confuse them.
Curves, surfaces, polysurfaces - and isocurves
A NURBS surface is the two-dimensional version of the same idea: a grid of control points in two directions, called u and v, spanning a smooth patch. Every single NURBS surface is topologically a rectangle - it has a u direction and a v direction and four sides - even when it looks like a doubly-curved blob. The faint lines you see flowing across a surface in Rhino are isocurves: curves of constant u or constant v. They are a display of the surface's internal grid, not real edges, and not something you can usually select and cut. New modellers constantly mistake isocurves for edges; they are not.
Real designs are rarely one clean rectangle, so surfaces get trimmed (a curve cuts a hole or a boundary while the underlying maths continues behind the trim) and joined. Join several surfaces along shared edges and you get a polysurface - Rhino's word for a shell of multiple surface faces stitched together. A closed, watertight polysurface with no gaps is a solid. Under the hood both are stored as a Brep (boundary representation): faces, edges and vertices describing a volume by its skin. Getting comfortable with this ladder - point, curve, surface, polysurface, solid - is most of what makes downstream modelling behave.
Continuity: G0, G1, G2 and why it shows
When two curves or surfaces meet, the quality of the join is described by geometric continuity. G0 (positional) means they simply touch - the endpoints coincide, but there can be a sharp kink, like two straight lines meeting at a corner. G1 (tangent) means they touch and share the same tangent direction at the seam - no kink, but the curvature can jump abruptly. G2 (curvature) means they touch, share tangent, and share the same curvature across the seam - the transition is truly smooth.
Why care? Because continuity is visible. Run a reflection or a zebra-stripe analysis across a G1 join and the stripes bend sharply at the seam; across a G2 join they flow through unbroken. Car bodies, product housings and premium architectural surfaces are held to G2 (or higher) precisely because the eye - and the highlight sliding across a real material - reveals anything less. For a rough massing model G0/G1 is fine; for a surface that will be milled and seen up close, aim for G2. Rhino's Match, BlendCrv and BlendSrf tools let you set exactly which level you want, and the analysis tools (Zebra, EMap, curvature graph) let you verify it honestly rather than trusting your eye.
Why this substrate matters for computational work
Everything you will do in Grasshopper - dividing curves, lofting surfaces, panelising facades, evaluating points for an attractor - operates on this NURBS substrate. A Grasshopper Divide Curve component walks the curve by its parameter space, which is exactly the knot-driven parametrisation from the first section; Evaluate Surface samples a surface at a (u, v) coordinate; a loft's fairness depends on the degree and matching of its input curves. When a definition produces ugly, bunched or flipped geometry, the fix is usually upstream in the NURBS - a curve of the wrong degree, seams that do not align, surfaces whose u,v run opposite ways.
So this is not throat-clearing before the 'real' software. It is the grammar. Spend an afternoon dragging control points, changing degree, rebuilding curves and running Zebra on a few joins, and the abstract terms become physical intuitions. Every later module - data trees, geometry, facades, form-finding - assumes you can look at a curve and roughly know its degree, tell a surface from a polysurface, and predict whether two pieces meet cleanly. Get fluent here and the rest of the course stops fighting you.
NURBS
Non-Uniform Rational B-Spline - the exact curve/surface maths
Rhino's native geometry. Defined by control points, degree, a knot vector and weights. Represents conics (circles, arcs) exactly.
Degree
How smooth/stiff a curve or surface is
Degree 1 = polyline; degree 3 = the everyday smooth curve; higher = smoother but floppier and heavier.
Isocurve
Display line of constant u or v on a surface
Shows the surface's internal grid; it is NOT an edge and usually can't be selected or cut. A common beginner confusion.
Brep / polysurface
Boundary representation - joined surface faces
Faces, edges, vertices describing a shell. A closed, watertight polysurface is a solid. Rhino stores both as Breps.
Zebra / EMap
Rhino surface-continuity analysis
Projects stripes or an environment map to reveal G0/G1/G2 - the honest way to check smoothness at a seam.
Workshop - feel the four dials, then check a seam
This is a look-and-feel exercise, not a race. The goal is to convert the abstract words of this lesson into physical intuition by dragging things and watching what happens. Twenty focused minutes here saves hours of confused modelling later.
Rhino 3D (free 90-day trial or student licence). No Grasshopper yet - this is pure Rhino geometry.
Goal: build hands-on intuition for control points, degree and continuity Inputs: a fresh Rhino document (free trial or student licence is fine) Time: ~30 minutes
- 1Draw an interpolated curve (
InterpCrv) with about six clicks, then turn on control points (PointsOn/ F10). Notice the control points are NOT on the curve - drag one and watch only the nearby region move. - 2Make three curves through the SAME points at degree 1, 3 and 5 (
Curvewith the Degree option). Compare: degree 1 is a polyline, degree 3 is a clean smooth curve, degree 5 is smoother but 'looser'. This is what degree means. - 3Take a wobbly, over-built curve and run
Rebuildwith a low point count and degree 3. See it get cleaner, not worse - fewer points, better curve. Note the point count before and after. - 4Draw a circle and a NURBS 'freehand' near-circle. Use the curvature graph (
CurvatureGraph) on both: the true circle has a constant graph; the freehand one wobbles. This is why NURBS circles are exact and hand-drawn ones are not. - 5Loft two simple curves into a surface, mirror a copy, and
Match/BlendSrfthe two along the seam at G0, then G1, then G2. RunZebraafter each and watch the stripes go from broken, to kinked, to flowing. - 6Write one sentence for each of the four dials (control points, degree, knots, weights) in your own words. If you can, you own the concept.
You’ll walk away with
A screenshot set showing the degree 1/3/5 comparison and the three Zebra results (G0/G1/G2), plus your four one-sentence definitions. This is your reference sheet for the rest of the course.
Three altitudes on the same idea
Read the band that fits you — or all three.
Your ambitious surfaces live or die on NURBS quality. A doubly-curved roof that reads beautifully in render but fails to panelise or fabricate almost always has a continuity or trimming problem you could have caught with Zebra at the sketch stage. Treat control-point count, degree and G2 seams as design decisions, not afterthoughts - clean geometry is what makes an ambitious form actually buildable.
For interiors the payoff is crisp, manufacturable detail. A curved reception desk, a flowing ceiling baffle, a moulded seat - all are NURBS surfaces that a CNC or moulder will take literally. Understanding degree and continuity means your joinery reads as one continuous sweep instead of a faceted approximation, and your fabrication files carry exact arcs and fillets your maker can trust.
This is the fluency that separates people who _use_ Rhino from people who _fight_ it. You do not need the equations, but you do need to feel what a control point, a degree and a continuity level do. Practise it deliberately now: it is the vocabulary every later lesson, every studio critique and every interview 'model this' test quietly assumes you already own.
“More control points make a curve smoother and better.”
Rebuild (which re-fits a curve to a chosen point count and degree) so often fixes a misbehaving curve - it removes redundant points. When a loft or fillet looks lumpy, the first question is 'how many control points, and could this be done with fewer?', not 'should I add more?'Do it yourself
Reason it through - no need to open anything yet.
- 1In your own words, what do control points, degree, knots and weights each control?
- 2Why can a NURBS curve represent a true circle exactly when a plain polynomial curve cannot?
- 3What is the difference between an isocurve and an edge on a surface?
- 4Two surfaces meet with matching tangents but the reflection kinks at the seam. What continuity level is that, and what would you need for a smooth reflection?
- 5A loft comes out lumpy. Is your first instinct to add control points or to rebuild with fewer? Why?
The one line to carry out
Peer-reviewed journals & authoritative standards
- 01Non-uniform rational B-spline (NURBS) — Wikipedia, 2026.
- 02Rhino - Essential Mathematics for Computational Design (Rajaa Issa) — Robert McNeel & Associates, 2019.
- 03B-spline — Wikipedia, 2026.
- 04Bezier curve — Wikipedia, 2026.
- 05Rhinoceros 3D - Features & documentation — Robert McNeel & Associates, 2026.
Now that you know what the geometry _is_, the next lesson puts you at the controls: modelling in Rhino - the workspace, the core commands that build curves and surfaces, and the construction discipline that keeps geometry clean enough to survive the trip into Grasshopper.
The author
Amogh N P
Architect, interior designer, and creative polymath. Studio Matrx began in his notebooks — his vision of design made honest, useful, and open to everyone. Its Academy is written and taught in his memory, and free, forever.
More about Amogh →