Lesson 1.2Lesson 1.2 · Rhino & NURBS Fundamentals
Modelling in Rhino
The workspace, the core commands, and the discipline of clean geometry
Rhino will let you build almost anything - which is exactly why undisciplined models turn into a swamp. The core commands are few; the habits are everything.
Most of Rhino's thousand commands are variations on a small core. Learn to build curves, turn curves into surfaces, and combine solids cleanly, and you can model the overwhelming majority of real projects.
But a model is not just its shapes - it is how those shapes are organised. This lesson pairs the essential commands with the construction discipline that keeps geometry clean, so that when you reference it into Grasshopper it behaves instead of fighting you.
Curves -> surfaces -> closed solids. Layers first. Check naked edges. Then Grasshopper is easy.
The workspace: command line, viewports, and the way Rhino listens
Rhino's interface looks busy but rests on a simple idea: the command line is the boss. Almost everything is a typed command - Line, Loft, Move - and the command line prompts you for each input in turn ('Start of line', 'Next point'), while offering options in angle brackets you can click or type to change. Toolbar buttons and menus are just shortcuts that run those same commands. Once you trust the command line, Rhino becomes fast: you type the first few letters, autocomplete offers the command, and you read the prompt to know what it wants next.
The screen is usually split into four viewports - Top, Front, Right and Perspective - all showing the same single model from different angles. This matters more than it seems: you model in 3D by working across views, drawing a plan in Top and pulling height in Front. The status bar along the bottom carries the switches you will toggle constantly - Osnap, Ortho, Grid Snap, Gumball, and the current CPlane - which the next lesson covers in depth. For now, the habit to build is: watch the command line, always know what Rhino is asking you for, and never click randomly hoping something happens.
Two more workspace habits repay themselves immediately. First, learn to navigate fluently - orbit, pan and zoom (and Zoom Extents / Zoom Selected to snap the view back to your geometry) - because most beginner frustration is really disorientation, not modelling difficulty. Second, notice Rhino's display modes (Wireframe, Shaded, Ghosted, Rendered): switching to Wireframe to see through geometry, or to Shaded to read a surface, is not decoration - it is how you check that what you built is what you think you built. A model you cannot clearly see is a model you cannot trust.
The command line is the boss. Read the prompt. Options live in the <angle brackets>.
Curves first: Line, Polyline, Curve
Good surfaces come from good curves, so most modelling starts in 2D. `Line` and `Polyline` give you exact straight segments - the backbone of anything orthogonal. `Curve` (interpolated or control-point) gives you smooth NURBS curves; InterpCrv passes through the points you click, while the control-point Curve command places control points near the shape, which - as the last lesson explained - gives cleaner, lighter curves once you are comfortable.
The discipline here is to draw curves that are as simple as the shape allows and that connect exactly. Use object snaps so endpoints truly coincide rather than 'nearly' meeting - a gap of a hundredth of a millimetre is invisible on screen but will break a Join, a Loft or a Boolean later. Keep profile curves planar when they are meant to be planar (Rhino can tell you with IsPlanar or the properties panel). Think of your curves as the skeleton: a clean, well-connected skeleton makes every surface operation downstream trivial, while a messy one propagates errors into everything you build on top. This is the first place where 'clean geometry' stops being a slogan and becomes a concrete habit.
Simplest curves that describe the shape, endpoints snapped exactly, planar when they should be.
Curves into surfaces: Extrude, Loft, Sweep, Revolve
Four commands turn curves into most surfaces you will ever need. `Extrude` (ExtrudeCrv) pushes a curve straight along a direction - the workhorse for walls, slabs, mullions and anything prismatic. `Loft` skins a surface through a series of section curves in order, like stretching fabric over ribs - ideal for a hull, a tapering tower, a flowing canopy. `Sweep` (Sweep1 / Sweep2) carries a profile curve along one or two rail curves - the tool for handrails, cornices, extruded mouldings and anything with a consistent cross-section following a path. `Revolve` spins a profile around an axis for anything rotational - a column, a vase, a dome.
The craft is in the input curves and the options. A Loft between curves whose seams (their start points) are misaligned will twist; a Sweep with a lumpy rail inherits the lumps. Match the number of control points and the direction of your section curves and the surface comes out fair; feed it inconsistent curves and no option will fully rescue it. Learn to read the preview before committing, and to reach for the simplest command that does the job - an Extrude you can trust beats a clever Sweep you cannot.
Around these four sit a handful of surface-editing companions you will use constantly: Offset and OffsetSrf to give a surface thickness, Trim and Split to cut geometry with other geometry, Join to stitch pieces into a polysurface, Fillet / FilletEdge to round corners, and Cap to close a tube-like polysurface into a solid. None of these is complicated on its own; fluency is simply knowing that most modelling is a sequence of these small moves - draw curves, make a surface, trim it, offset it, join and cap - rather than one heroic command. When you plan a piece of geometry, it helps to think backwards from the result: what surface do I need, what curves make it, and what is the shortest clean path between the two?
Solids and Booleans: combining without corrupting
Closed polysurfaces are solids, and Rhino's Booleans - `BooleanUnion`, BooleanDifference, BooleanIntersection - combine them: union fuses volumes, difference carves one out of another, intersection keeps only the overlap. Under the hood a Boolean is just an automated intersect, trim and join: Rhino finds where the solids cross, trims each along that intersection, and stitches the survivors into one polysurface.
That mechanism is exactly why Booleans fail, and why the failures teach you about clean geometry. If the input solids are not truly closed (they have naked edges - open boundaries), or if two faces are precisely coincident (a wall face sitting exactly on another), or if the model tolerance is too loose for the size of the features, the intersect-and-trim step cannot resolve and the Boolean either errors or leaves a mess. The fixes are habits, not tricks: check solids are closed (ShowEdges reveals naked edges), nudge coincident faces apart by a hair, and keep a sensible tolerance for your units. When a Boolean fails, resist forcing it - repair the input geometry, because a corrupt polysurface will haunt every operation and every Grasshopper reference that touches it afterwards.
Layers, naming and the discipline that pays off downstream
The single biggest difference between a model that is a pleasure to work with and one that is a nightmare is organisation, and it costs almost nothing to get right. Use layers deliberately: a layer per system (structure, envelope, furniture, reference, context), sensibly named and coloured, so you can isolate, hide and select by category. Name the layers before you need them, not after the model is a soup of 'Layer 07'.
This is not tidiness for its own sake - it is the interface to everything that comes next. When you reference geometry into Grasshopper (the last lesson of this module), the cleanest way to grab 'all the facade curves' is to select them by layer; a well-layered model makes a parametric workflow effortless, while a flat one makes it painful. The same discipline covers naming important objects, purging unused blocks and materials, keeping construction curves on a throwaway layer you can delete, and periodically running Audit3dmFile or checking for bad objects (SelBadObjects). None of this is glamorous, and all of it compounds: an hour of organisation habit saves days of untangling later, on every project, forever.
There is a deeper reason this matters in a computational workflow specifically. A Grasshopper definition that pulls its inputs from named layers via a Geometry Pipeline will automatically update when you add or edit geometry on those layers - so a disciplined layer structure turns your Rhino model into a living, structured input feed rather than a pile of objects you must re-pick by hand. In other words, the layer scheme you set up in the first minute of a project is not housekeeping you do instead of the interesting work; it is part of the parametric design itself. Sloppy layers do not just look bad - they actively block the automation that makes computational design worth the effort.
Layer by system, named up front. This IS the interface to Grasshopper - not busywork.
ExtrudeCrv
Push a curve along a direction into a surface/solid
The workhorse for prismatic geometry - walls, slabs, mullions. Cap it to get a closed solid.
Loft
Skin a surface through ordered section curves
Great for tapering or flowing forms. Align curve seams and directions or the surface twists.
Sweep1 / Sweep2
Carry a profile along one or two rail curves
Handrails, cornices, mouldings. A lumpy rail gives a lumpy surface - keep rails clean.
BooleanUnion
Fuse closed solids into one polysurface
Automated intersect-trim-join. Fails on open solids, coincident faces or loose tolerance - fix inputs, don't force it.
ShowEdges / SelBadObjects
Reveal naked edges and invalid geometry
Your honesty check. Naked edges mean the solid isn't closed; bad objects will break downstream tools.
Workshop - a small pavilion, built clean
Model a tiny pavilion using only the core commands, with layers set up from the first click. The point is not the design; it is practising the loop of curves to surfaces to clean solids with proper organisation, so the habit is automatic before it matters on a real project.
Rhino 3D (trial or student licence). No Grasshopper required yet.
Goal: practise the core modelling loop with construction discipline Inputs: a fresh Rhino document Time: ~40 minutes
- 1Before drawing anything, create layers: Structure, Roof, Ground, and Construction (make Construction a colour you'll ignore). Set Construction current.
- 2On Ground, draw a simple rectangular slab outline with
Polyline, snapping corners exactly, thenExtrudeCrvit a small thickness and cap it to a closed solid. Move it to the Ground layer. - 3On Structure, draw one column profile and
Extrudeit to height; array or copy four columns (you'll do this precisely next lesson - rough is fine now). Confirm each is a closed solid. - 4On Roof, draw two or three section curves in the Front view and
Loftthem into a curved canopy surface; if you want a solid roof,OffsetSrfit a thickness. - 5Run
SelBadObjects(should select nothing) andShowEdgeson your solids to confirm no naked edges. Fix anything that flags before continuing. - 6Delete or hide the Construction layer's contents, then
SelLayereach layer in turn to confirm every object is where it belongs. Save. Note how quickly you could now hand this to Grasshopper or a consultant.
You’ll walk away with
A small pavilion model with correctly layered, closed, error-free geometry and no stray construction curves in the final layers - plus a note of any Boolean or naked-edge problem you hit and how you fixed it.
Three altitudes on the same idea
Read the band that fits you — or all three.
A disciplined Rhino model is a coordination asset, not just a shape. Layered by system, with clean closed solids and named objects, it references into Grasshopper cleanly, exports to consultants without surprises, and survives the fifteenth design change. The time you invest in construction discipline is repaid every time the scheme changes - which, on a real project, is constantly.
For interiors the core loop is curves to surfaces to clean solids - a joinery run swept along a rail, a niche carved with a Boolean, a curved bench lofted from sections. Keep profiles planar and solids closed and your fabrication and setting-out drawings come out right the first time. Sloppy geometry here becomes a joiner's query - or a costly remake - later.
Learn the small core - Line, Curve, Extrude, Loft, Sweep, Booleans - and the layer habit, and you can model most studio projects. Tutors and employers can spot a disciplined model instantly: named layers, closed solids, no stray construction junk. That polish reads as competence and makes your files a pleasure for anyone (including future-you) to open and build on.
“Layers and naming are tidy-up chores you can leave until the end.”
Do it yourself
Check your grasp of the core loop.
- 1Which command would you use for a handrail that follows a curved ramp, and why not Loft?
- 2What does a 'naked edge' tell you, and why does it matter before a Boolean?
- 3Name three things that commonly make a BooleanUnion fail.
- 4Why draw and connect curves cleanly before ever making a surface?
- 5Give two concrete reasons a well-layered model helps once you reach Grasshopper.
The one line to carry out
Peer-reviewed journals & authoritative standards
- 01Rhinoceros 3D - Features & documentation — Robert McNeel & Associates, 2026.
- 02McNeel Rhino Documentation — Robert McNeel & Associates, 2026.
- 03Boundary representation (B-rep) — Wikipedia, 2026.
- 04Rhino - Essential Mathematics for Computational Design (Rajaa Issa) — Robert McNeel & Associates, 2019.
You can now build clean shapes, but 'clean' has a precise, numeric meaning. The next lesson makes your modelling _exact_ - coordinates, object snaps, the Gumball, transforms, construction planes, units and tolerance - the precision that separates a model that fabricates from one that merely looks right.
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 →