How accurate is Rhino?

Since many free‑form modelers are not accurate enough for manufacturing or engineering analysis, and since Rhino is a free‑form modeler, many people assume Rhino is not accurate enough for their application.

In fact, Rhino is just as or even more accurate than most CAD software.

Here are the details:

There are two common methods 3D models are stored in computers:

  1. The first method is using meshes (sometimes called faces or facets), which are usually used for rendering, animation, or conceptual design. While mesh modelers often have what appear to be precise techniques for creating models like spheres, boxes, splines, or even NURBS, behind the scenes, they eventually turn everything into a mesh. Meshes are inherently inaccurate because a mesh is simply a collection flat triangles. Even if the surface is curved, a mesh modeler still represents it with flat triangles. This is fine for most renderings, animations, and games, but not when designing for manufacturing. It should be noted that many manufacturing processes use meshes, but the mesh density must be under the control of the manufacturing application to achieve the desired accuracy. Rhino does not use meshes for modeling, but it can convert NURBS to meshes at any density as needed for file exports and rendering.

  2. The second method is NURBS. Most CAD, CAM, CAE, and CAID modelers, including Rhino, represent free‑form shapes as NURBS. Products that use NURBS can potentially represent free‑form shapes accurately enough for the most demanding application if they are diligent in their NURBS implementation. If an application’s primary focus is machinery design and not free‑form shapes, it is possible for its NURBS implementation to be less than robust for demanding free‑form modeling. This is typical of the mid-range feature-based parametric solid modelers that are so popular today.

Since Rhino’s focus is free‑form NURBS modeling, its NURBS implementation is one of the most robust available today. Here are the primary considerations when evaluating whether a modeler is accurate enough for your application:

  • Position. Rhino, like most CAD products, represents position in double-precision floating-point numbers. That means the x‑, y‑, or z-coordinate of any point can have a value ranging from as large as ±10308 to as small as ±10-308. Because of the limitation of current computer technology, we expect calculations to be accurate to 15 digits of precision in a range from ±1020 to ±10-20. This limitation is found in all modern CAD products.

    Older CAD products often have additional limitations because they were developed originally to run on computers with less precision. For example, many CAD modelers are designed for performing calculations on geometry that is restricted to be in a box of size 1000x1000x1000 meters centered at the origin. (Geek alert: Another popular off-the-shelf modeling kernel requires parameterizations that are within a factor of 10 of being arc-length parameterizations.) Rhino has none of the limitations found in these older products.

  • Intersections. In Rhino, when two free‑form surfaces are intersected, the resulting intersection curve is calculated to the accuracy you specify. The Rhino default accuracy (tolerance) is 1/100 millimeter. Many CAD systems have built‑in tolerances that you cannot override.

    If you carefully examine the geometry other modelers produce from free‑form surface intersections, free‑form fillet creation, and free‑form surface offsets, you will discover that this free‑form geometry is actually calculated with accuracy between 10-2 and 10-4 meters even though the precision advertised is 10-8 (without mentioning that the units are meters).

  • Continuity (curvature change matched across a seam.) Most CAD products don’t even have tools to match curvature, let alone do it accurately enough for a discriminating designer. If your application requires smooth free‑form surfaces such as airfoils, hydrofoils, lenses, or reflective surfaces, you need these tools found only in Rhino or in high‑end surface modeling products like CATIA and Alias.

Other things to consider:

  • Units. In Rhino you can specify units. The units are actually changed and then all calculations are done in those units. In many CAD products, units are only a display attribute. Even though you may have specified millimeters, all of the calculations are actually being done in meters. No big deal. You just move the decimal place over. Wrong! Read on.

  • Changing units. Changing units or unit conversions can be one of most commonly-overlooked accuracy hazard in CAD/CAM. Most of us might think that converting from imperial units to metric units would introduce some inaccuracy while never giving millimeter to centimeter conversions a thought. Why? Because we think in decimal. But guess what! The computer doesn’t. It is binary (that is base 2, not base 10). That means one or more floating-point multiplies or divides are needed to convert from millimeters to centimeters. The inaccuracies introduced by converting from millimeters to centimeters are the same as those introduced by converting from millimeters to inches.

In summary, Rhino is at least as accurate as any other CAD product on the market today. In addition, Rhino provides tools for setting accuracy and units and tools for controlling and evaluating continuity not found in most CAD products.