# Rhinoceros 3D

Rhinoceros (typically abbreviated Rhino or Rhino3D) is a commercial 3D computer graphics and computer-aided design (CAD) application software that was developed by TLM, Inc, dba Robert McNeel & Associates, an American, privately held, and employee-owned company that was founded in 1978. Rhinoceros geometry is based on the non-uniform rational B-spline (NURBS) mathematical model, which focuses on producing mathematically precise representation of curves and freeform surfaces in computer graphics (in contrast to a polygon mesh mathematical model).
Rhinoceros is used for computer-aided design (CAD), computer-aided manufacturing (CAM), rapid prototyping, 3D printing and reverse engineering in industries including architecture, industrial design (e.g., automotive design, watercraft design), product design (e.g., jewelry design) as well as for multimedia and graphic design.
Rhinoceros is developed for Microsoft Windows and macOS. A visual scripting language add-on for Rhino, Grasshopper, is developed by Robert McNeel & Associates.

## Overview
### Characteristics

Rhinoceros is primarily a freeform surface modeler that uses the NURBS mathematical model. Rhinoceros's application architecture and open SDK make it modular and enable a user to customize the interface and create custom commands and menus.
Since version 7, Rhinoceros has improved real-time rendering abilities for improved lighting and shading.

## File formats

The Rhinoceros file format (.3DM) is useful for the exchange of NURBS geometry. The Rhino developers started the openNURBS Initiative to provide computer graphics software developers the tools to accurately transfer 3-D geometry between applications. An open-source toolkit, openNURBS includes the 3DM file format specification, documentation, C++ source code libraries and .NET 2.0 assemblies to read and write the file format on supported platforms – Windows, Windows x64, Mac, and Linux.

### Compatibility

Rhinoceros offers compatibility with other software as it supports over 30 CAD file formats for importing and exporting.
The following CAD and image file formats are natively supported (without the use of external plug-ins):
* DWG/DXF (AutoCAD 200x, 14, 13, and 12)
* IGES
* STEP
* SolidWorks: SLDPRT, SLDASM
* SAT (ACIS, export only)
* Microstation DGN
* DirectX (X file format)
* FBX
* X_T (Parasolid, export only)
* .3ds
* LWO
* STL
* SLC
* OBJ
* Adobe Illustrator (AI)
* RIB
* POV
* UDO
* VRML
* CSV (export properties and hydrostatics)
* BMP
* TGA
* uncompressed TIFF
* VDA
* GHS
* GTS
* KML
* PLY
* SketchUp
The following CAD file formats are supported with use of external plug-ins:
* 3DPDF
* ACIS
* CATIA v4, v5, v6
* CGR
* Inventor
* JT
* Parasolid
* PLMXML
* Creo Parametric
* Solid Edge
* Siemens NX
When opening CAD file formats not in its native .3dm file format, Rhinoceros will convert the geometry into its native format; when importing a CAD file, the geometry is added to the current file.
When Autodesk AutoCAD's file format changes (see DWG file format for more information), the Open Design Alliance reverse engineers the file format to allow these files to be loaded by other vendors' software. Rhinoceros's import and export modules are actually plug-ins, so they can be easily updated via a service release. Rhinoceros Service Releases (SR) are frequent and freely downloadable. Rhinoceros 5 SR10 can import and export DWG/DXF file formats up to version 2014.

### Scripting and programming

Rhinoceros supports two scripting languages, Rhinoscript (based on VBScript) and Python (v5.0+ and Mac). It also has an SDK and a complete plug-in system.