rhino3dm is a set of libraries based on the OpenNURBS geometry library with a "RhinoCommon" style. This provides the ability to access and manipulate geometry through .NET, Python or JavaScript applications independent of Rhino.
Functionality includes
- Create, interrogate, and store all geometry types supported in Rhino. This includes points, point clouds, NURBS curves and surfaces, polysurfaces (B-Reps), meshes, annotations, extrusions, and SubDs.
- Work with non-geometry classes supported in Rhino like layers, object attributes, transforms and viewports
- Read and write all of the above information to and from the .3dm file format
- Use as a client to make calls into the Rhino Compute cloud server for advanced manipulation of geometry objects
- Available on most platforms (Windows, macOS, Linux)
- C#
- JavaScript
- SampleSketch2d - [Live] Sketch NURBS curves on a canvas. Also shows how to download the resulting 3dm file.
- SampleObjectTypes - [Live] Sample shows the creation of various object types.
- SampleParse3dmObjects - [Live] Sample shows the creation of various object types and parsing with the Rhino3dmLoader for three.js.
- SampleUserStrings - [Live] Sample loads objects from a Rhino file and shows how to access the attribute and geometry user strings from the loaded 3dm directly and after it has been loaded by the Rhino3dmLoader for three.js.
- SampleViewer (Basic) - [Live] Loads a .3dm file and renders the geometry with Three.js.
- Sample Viewer (Advanced) - [Live] Loads a .3dm file and renders the geometry and material with Three.js.
- SampleViewer Multiple Files - [Live] Select dropdown input to load different files. Renders the geometry with Three.js.
- Sample OBJ to 3DM conversion - [Live] Loads an .obj file via Three.js and converts the object to a 3dm.
- Sample3dmReader (node.js) - Shows how to read a file with node.js.
- Python