Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: 4 days ago
JSON representation

Libraries based on OpenNURBS with a RhinoCommon style

Awesome Lists containing this project

README

        

# rhino3dm

[![workflow ci](https://github.com/mcneel/rhino3dm/actions/workflows/workflow_ci.yml/badge.svg?branch=main)](https://github.com/mcneel/rhino3dm/actions/workflows/workflow_ci.yml)
[![workflow ci](https://github.com/mcneel/rhino3dm/actions/workflows/workflow_release.yml/badge.svg?branch=main)](https://github.com/mcneel/rhino3dm/actions/workflows/workflow_release.yml)

[![PyPI](https://img.shields.io/pypi/v/rhino3dm.svg?style=flat-square)](https://pypi.org/project/rhino3dm)![PyPI - Downloads](https://img.shields.io/pypi/dm/rhino3dm?style=flat-square)

[![NuGet](https://img.shields.io/nuget/v/Rhino3dm.svg?style=flat-square)](https://www.nuget.org/profiles/McNeel)[![NuGet Downloads](https://img.shields.io/nuget/dt/rhino3dm.svg?style=flat-square)](https://www.nuget.org/packages/rhino3dm/)

[![npm](https://img.shields.io/npm/v/rhino3dm.svg?style=flat-square)](https://www.npmjs.com/package/rhino3dm)![npm](https://img.shields.io/npm/dm/rhino3dm?style=flat-square)

**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/[email protected]/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)