https://github.com/mcneel/rhino3dm
Libraries based on OpenNURBS with a RhinoCommon style
https://github.com/mcneel/rhino3dm
hacktoberfest javascript-library opennurbs python python3 rhino3d rhinocommon wasm
Last synced: about 1 year ago
JSON representation
Libraries based on OpenNURBS with a RhinoCommon style
- Host: GitHub
- URL: https://github.com/mcneel/rhino3dm
- Owner: mcneel
- License: mit
- Created: 2018-09-24T21:55:32.000Z (over 7 years ago)
- Default Branch: dev
- Last Pushed: 2025-04-03T10:00:35.000Z (about 1 year ago)
- Last Synced: 2025-04-14T23:15:49.747Z (about 1 year ago)
- Topics: hacktoberfest, javascript-library, opennurbs, python, python3, rhino3d, rhinocommon, wasm
- Language: C#
- Homepage:
- Size: 223 MB
- Stars: 646
- Watchers: 53
- Forks: 143
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# rhino3dm
[](https://github.com/mcneel/rhino3dm/actions/workflows/workflow_ci.yml)
[](https://github.com/mcneel/rhino3dm/actions/workflows/workflow_release.yml)
[](https://pypi.org/project/rhino3dm)
[](https://www.nuget.org/profiles/McNeel)[](https://www.nuget.org/packages/rhino3dm/)
[](https://www.npmjs.com/package/rhino3dm)
**rhino3dm** is a set of libraries based on the [OpenNURBS](https://developer.rhino3d.com/guides/opennurbs/what-is-opennurbs/) geometry library with a ["RhinoCommon"](https://developer.rhino3d.com/guides/rhinocommon/what-is-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](https://www.rhino3d.com/compute) for advanced manipulation of geometry objects
- Available on most platforms (Windows, macOS, Linux)
---
## rhino3dm.py (Python)
**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](docs/python/RHINO3DM.PY.md) for details
## rhino3dm.js (JavaScript and node.js)
**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](https://nodejs.org/).
rhino3dm.js packages are available on npm: https://www.npmjs.com/package/rhino3dm

```html
{
"imports": {
"rhino3dm":"https://unpkg.com/rhino3dm@8.17.0/rhino3dm.module.min.js"
}
}
import rhino3dm from 'rhino3dm'
const rhino = await rhino3dm()
const sphere = new rhino.Sphere( [1,2,3,], 12 )
console.log(sphere.diameter)