I just want to confirm that Rhino surfaces, whether using just Rhino or Rhino with Grasshopper, is only editable via Control Points? i.e. it is not possible to select individual vertices and push and pull these?

You should look into into the differences between NURBS - what you are asking about - and mesh geometry.

NURBS and subdivision surfaces (i.e. surfaces, polysurfaces, solids) are only editable via control points, much like a bezier or NURBS curve. They are math functions of two parameters - u and v - mapping to a surface in three-dimensional space. Due to their properties, surfaces are usually very precise, which makes them great for CAD applications. They store lots of data, which makes them heavy to compute in large quantities or a limited amount of time.

Meshes are however editable by vertices. They are usually defined by these points in three-dimensional space that approximate a geometry, their face vertices - basically the order of vertices per face -, and sometimes even colour information for the vertices. The information needed to produce a mesh is thus fairly limited. Often times, meshes are far quicker to calculate, but they are also far less precise than surfaces, which makes them for example great for games or UI visualisations, where you need a fast and fluid display of geometries.

A mesh can be further subdivided, often times referred to as smoothing the mesh. Subdividing increases the information of the mesh by each iteration and makes the mesh thus slower to compute.

A good example for both geometry types might be a sphere geometry. As a closed surface the sphere seems perfectly spherical from the get go. The corresponding mesh sphere of the same radius is not really a sphere, but rather a polygonal approximation of one. It needs a couple of levels of subdivisions to get more spherical, but will probably never be a perfect sphere.

Now, if you produce for instance a thousand random points and define a mesh or NURBS spheres for each point. The mesh spheres are going to be a lot more efficient and the NURBS spheres a lot more precise.

However, a project doesn’t have to be exclusively mesh or surface based. You can combine both to achieve the results that you want. There are lots of Rhino/Grasshopper workflows that use surfaces first and later convert them into meshes for more complex or different operations or vis versa. You could for instance define a very precise facade surface for a building as a base, subdivide it and continue with mesh geometry.

thank you for your in depth answer to my question, it is very helpful! you mentioned that it is easy to convert mesh to surface and surface to mesh but i am trying to do this in Grasshopper and … well not having a great deal of luck. if it is not too much trouble could you send the code for both of these conversions, but only if it is no trouble. otherwise i will search some more myself. thank you again.

ok found the mesh to surface, surface to mesh Grasshopper formulas thanks anyway!