Skip to content

Libraries based on OpenNURBS with a RhinoCommon style

License

Notifications You must be signed in to change notification settings

taichi-dev/rhino3dm

 
 

Repository files navigation

rhino3dm

workflow ci Discourse users PyPI NuGet npm

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 (Python)

rhino3dm.py is a python package that can be used on all current versions of CPython (2.7 and 3.7+) and is available on all platforms (Windows, macOS, Linux) through PyPi.org.

pip install --user rhino3dm

See our python documentation for details

rhino3dm.js (Javascript/web assembly)

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.

<!DOCTYPE html>
<html>
  <!-- stuff -->
  <body>
    <script src="https://cdn.jsdelivr.net/npm/rhino3dm@0.12.0/rhino3dm.min.js"></script>
    <script>
      rhino3dm.then((Module) => {
        sphere = new Module.Sphere([1,2,3], 12)
        // more stuff
      })
    </script>
    <!-- even more stuff -->
  </body>
</html>

See our javascript documentation for details

Rhino3dm.NET

Rhino3dm.NET (formerly known as Rhino3dmIO) allows you to write standalone .NET applications.

We are in transition from compiling Rhino3dm using internal tools to use the code in this repo. If you are not interested in compiling Rhino3dm.NET, then check out the documentation on installing and using Rhino3dmIO packages on nuget

For compiling Rhino3dm.NET from source, see our .NET documentation for details

More

Some more details and discussions can be found at:

About

Libraries based on OpenNURBS with a RhinoCommon style

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 74.7%
  • C++ 16.1%
  • C 7.3%
  • Python 1.5%
  • CMake 0.4%
  • Batchfile 0.0%