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)
rhino3dm.py is a python package that can be used on all current versions of CPython (3.7 - 3.11) and is available on all platforms (Windows, macOS, Linux)
rhino3dm.js packages are available on pypi: https://pypi.org/project/rhino3dm/
pip install --user rhino3dm
See our python documentation for details
rhino3dm.js is a javascript library with an associated web assembly (rhino3dm.wasm). rhino3dm.js should run on all major browsers as well as node.js.
rhino3dm.js packages are available on npm: https://www.npmjs.com/package/rhino3dm
<!DOCTYPE html>
<body>
<!-- Import maps polyfill -->
<!-- Remove this when import maps will be widely supported -->
<script async src="https://unpkg.com/es-module-shims@1.8.2/dist/es-module-shims.js"></script>
<script type="importmap">
{
"imports": {
"rhino3dm":"https://unpkg.com/rhino3dm@8.4.0/rhino3dm.module.min.js"
}
}
</script>
<script type="module">
import rhino3dm from 'rhino3dm'
const rhino = await rhino3dm()
const sphere = new rhino.Sphere( [1,2,3,], 12 )
console.log(sphere.diameter)
</script>
</body>
</html>
See our javascript documentation for details
Rhino3dm.NET (formerly known as Rhino3dmIO) allows you to write standalone .NET applications.
rhino3dm.net packages are available on nuget: https://www.nuget.org/packages/Rhino3dm/
From this repository we build macOS, windows, and linux packages in various runtimes which all all delivered via the nuget package.
Some more details and discussions can be found at: