Morphé
Third-Party Notices
Last updated: 5 October 2026
Morphé is built on open-source software. This page lists every third-party component we distribute with the plug-in and names the licence each one is offered under.
The complete version, with every licence text in full, is THIRD-PARTY-NOTICES.txt. The same file is installed alongside the Morphé plug-in files, so you always have a copy of it locally. This page is the readable summary; that file is the authoritative record.
If anything here is unclear, or you require this information in another form for procurement, please write to support@morphe-design.app.
Nothing in the Morphé Terms of Service limits the rights these licences give you over the components they cover. Where a Morphé term and a component's own licence disagree about that component, the component's licence governs. That is written into the terms themselves, at section 23.
- 1. Two components that give you extra rights
- 2. What is installed with Morphé
- 3. Native components
- 4. Rust components
- 5. Licence texts
- 6. What is not distributed with Morphé
1. Two components that give you extra rights
Most components below ask only to be credited, which this page and the notices file do. Two ask for more, and both hand you something worth knowing about.
mmg — you may replace it. Morphé uses mmg for its Remesh components.
mmg is covered by the GNU Lesser General Public License, and we distribute it as a separate
file, mmgs.dll, sitting beside the other Morphé files rather than compiled into
them.
That is deliberate. The LGPL gives you the right to run Morphé against your own build of
mmg — a modified one, or a different version — and shipping it as its own DLL is what makes
that possible without any help from us. To do it, replace mmgs.dll in the Morphé
installation folder with your own build of the same interface. That is not a breach of the
Morphé terms.
We do not support Morphé running against a modified mmg, and a replacement that changes behaviour may produce different or invalid meshes. The right is yours regardless of whether we support the result.
Source, at the version Morphé is built against: github.com/MmgTools/mmg (tag v5.8.0).
Fidget — we modified it, and the source is public. Morphé's geometry
kernel is built on Fidget by Matt Keeter,
which is covered by the Mozilla Public License 2.0. We maintain a fork and we have changed
two of its files. In fidget-mesh/src/dc.rs the dual-contouring edge routine was
replaced with a quad-split using a face-normal diagonal heuristic, which removes the fold and
flap triangles the upstream routine produces on curved surfaces. In
fidget-mesh/src/octree.rs the mesher evaluates its leaf cells in batches, and its
edge search is guarded against floating-point rounding.
The MPL requires that the source of modified files be available to anyone who receives a
binary built from them. Our fork is public and the changes are in its history:
github.com/Metamorphic-AM/Fidget,
branch Morphe.
The MPL is a file-level licence. It covers those Fidget files and no others — not the rest of Morphé, and nothing you design with it.
Neither licence places any obligation on the Grasshopper definitions you write or on the geometry you produce. That work is yours.
2. What is installed with Morphé
Morphé installs one Grasshopper assembly, one native runtime, and seven supporting native libraries.
| File | What it is |
|---|---|
| Morphe.gha | The plug-in itself. Our code. |
| MorpheRuntime.dll | Our native runtime. OpenVDB, FCPW, nanoflann, Boost, Eigen and the whole Rust stack are compiled into this one file. |
| geogram.dll | geogram |
| mmgs.dll | mmg — see section 1 |
| tbb12.dll | Intel oneTBB |
| blosc.dll | c-blosc |
| lz4.dll | LZ4 |
| zstd.dll | Zstandard |
| zlib1.dll | zlib |
3. Native components
"Compiled in" means the component's code forms part of MorpheRuntime.dll;
"separate DLL" means it ships as its own file. Every one of them is used unmodified except
where noted.
| Component | Version | Licence | Form |
|---|---|---|---|
| OpenVDB | 13.0.0 | Apache-2.0 | compiled in |
| FCPW | 1.2.0 | MIT | compiled in |
| nanoflann | 1.7.1 | BSD-2-Clause | compiled in |
| Boost | 1.86.0 | BSL-1.0 | compiled in |
| Eigen | 3.4.0 | MPL-2.0 | compiled in |
| Fidget (our fork) | 0.4.3 | MPL-2.0, modified | compiled in |
| geogram | 1.9.7 | BSD-3-Clause | separate DLL |
| mmg | 5.8.0 | LGPL-3.0-or-later | separate DLL |
| Intel oneTBB | 2022.0.0 | Apache-2.0 | separate DLL |
| c-blosc | 1.21.6 | BSD-3-Clause | separate DLL |
| LZ4 | 1.10.0 | BSD-2-Clause | separate DLL |
| Zstandard | 1.5.6 | BSD-3-Clause — see below | separate DLL |
| zlib | 1.3.1 | zlib licence | separate DLL |
| bzip2 | 1.0.8 | BSD-style | via c-blosc |
| liblzma | 5.6.3 | public domain / 0BSD | via c-blosc |
| snappy | 1.2.1 | BSD-3-Clause | via c-blosc |
Zstandard is offered under a choice of BSD 3-Clause or GPLv2. We elect the BSD 3-Clause option, so no GPL obligation arises from Morphé's use of it. The compression libraries below c-blosc are reached through OpenVDB, which uses them to compress volume grids.
4. Rust components
Morphé's geometry kernel and its GPU preview are written in Rust and compiled into
MorpheRuntime.dll. The list below is every third-party crate linked into the
shipped build — 203 of them — with the licence expression each crate declares.
"A OR B" means the crate offers a choice of licences. Where a choice exists we take the MIT option if MIT is among them, and otherwise the first permissive option listed. The Fidget crates are our modified fork; see section 1.
Show all 203 Rust crates
| Crate | Version | Licence |
|---|---|---|
| adler2 | 2.0.1 | 0BSD OR MIT OR Apache-2.0 |
| ahash | 0.8.12 | MIT OR Apache-2.0 |
| aho-corasick | 1.1.4 | Unlicense OR MIT |
| aligned-vec | 0.6.4 | MIT |
| allocator-api2 | 0.2.21 | MIT OR Apache-2.0 |
| anstream | 1.0.0 | MIT OR Apache-2.0 |
| anstyle | 1.0.14 | MIT OR Apache-2.0 |
| anstyle-parse | 1.0.0 | MIT OR Apache-2.0 |
| anstyle-query | 1.1.5 | MIT OR Apache-2.0 |
| anstyle-wincon | 3.0.11 | MIT OR Apache-2.0 |
| approx | 0.5.1 | Apache-2.0 |
| array-init | 2.1.0 | MIT OR Apache-2.0 |
| arrayvec | 0.7.6 | MIT OR Apache-2.0 |
| ash | 0.38.0+1.3.281 | MIT OR Apache-2.0 |
| az | 1.3.0 | MIT/Apache-2.0 |
| bitflags | 2.11.1 | MIT OR Apache-2.0 |
| bit-set | 0.8.0 | Apache-2.0 OR MIT |
| bit-vec | 0.8.0 | Apache-2.0 OR MIT |
| bytemuck | 1.25.0 | Zlib OR Apache-2.0 OR MIT |
| bytemuck_derive | 1.10.2 | Zlib OR Apache-2.0 OR MIT |
| byteorder | 1.5.0 | Unlicense OR MIT |
| byteorder-lite | 0.1.0 | Unlicense OR MIT |
| cfg-if | 1.0.4 | MIT OR Apache-2.0 |
| chacha20 | 0.10.0 | MIT OR Apache-2.0 |
| clap | 4.6.1 | MIT OR Apache-2.0 |
| clap_builder | 4.6.0 | MIT OR Apache-2.0 |
| clap_derive | 4.6.1 | MIT OR Apache-2.0 |
| clap_lex | 1.1.0 | MIT OR Apache-2.0 |
| cmov | 0.5.3 | Apache-2.0 OR MIT |
| codespan-reporting | 0.12.0 | Apache-2.0 |
| colorchoice | 1.0.5 | MIT OR Apache-2.0 |
| colored | 2.2.0 | MPL-2.0 |
| const-fnv1a-hash | 1.1.0 | MIT |
| const-random | 0.1.18 | MIT OR Apache-2.0 |
| const-random-macro | 0.1.16 | MIT OR Apache-2.0 |
| cpufeatures | 0.3.0 | MIT OR Apache-2.0 |
| crc32fast | 1.5.0 | MIT OR Apache-2.0 |
| crossbeam-channel | 0.5.15 | MIT OR Apache-2.0 |
| crossbeam-deque | 0.8.6 | MIT OR Apache-2.0 |
| crossbeam-epoch | 0.9.18 | MIT OR Apache-2.0 |
| crossbeam-utils | 0.8.21 | MIT OR Apache-2.0 |
| crunchy | 0.2.4 | MIT |
| divrem | 1.0.0 | MIT |
| document-features | 0.2.12 | MIT OR Apache-2.0 |
| dynasm | 5.0.0 | MPL-2.0 |
| dynasmrt | 5.0.0 | MPL-2.0 |
| either | 1.15.0 | MIT OR Apache-2.0 |
| equator | 0.4.2 | MIT |
| equator-macro | 0.4.2 | MIT |
| equivalent | 1.0.2 | Apache-2.0 OR MIT |
| facet | 0.46.0 | MIT OR Apache-2.0 |
| facet-core | 0.46.0 | MIT OR Apache-2.0 |
| facet-macro-parse | 0.46.0 | MIT OR Apache-2.0 |
| facet-macros | 0.46.0 | MIT OR Apache-2.0 |
| facet-macros-impl | 0.46.0 | MIT OR Apache-2.0 |
| facet-macro-types | 0.46.0 | MIT OR Apache-2.0 |
| facet-path | 0.46.0 | MIT OR Apache-2.0 |
| facet-reflect | 0.46.0 | MIT OR Apache-2.0 |
| fdeflate | 0.3.7 | MIT OR Apache-2.0 |
| fidget | 0.4.3 | MPL-2.0 |
| fidget-core | 0.4.3 | MPL-2.0 |
| fidget-jit | 0.4.3 | MPL-2.0 |
| fidget-mesh | 0.4.3 | MPL-2.0 |
| fixed | 1.31.0 | MIT/Apache-2.0 |
| flate2 | 1.1.9 | MIT OR Apache-2.0 |
| fnv | 1.0.7 | Apache-2.0 / MIT |
| foldhash | 0.1.5 | Zlib |
| foldhash | 0.2.0 | Zlib |
| generator | 0.8.8 | MIT/Apache-2.0 |
| getrandom | 0.2.17 | MIT OR Apache-2.0 |
| getrandom | 0.3.4 | MIT OR Apache-2.0 |
| getrandom | 0.4.2 | MIT OR Apache-2.0 |
| gpu-alloc | 0.6.0 | MIT OR Apache-2.0 |
| gpu-allocator | 0.27.0 | MIT OR Apache-2.0 |
| gpu-alloc-types | 0.3.0 | MIT OR Apache-2.0 |
| gpu-descriptor | 0.3.2 | MIT OR Apache-2.0 |
| gpu-descriptor-types | 0.2.0 | MIT OR Apache-2.0 |
| half | 2.7.1 | MIT OR Apache-2.0 |
| hashbrown | 0.15.5 | MIT OR Apache-2.0 |
| hashbrown | 0.17.0 | MIT OR Apache-2.0 |
| heck | 0.5.0 | MIT OR Apache-2.0 |
| hexf-parse | 0.2.1 | CC0-1.0 |
| image | 0.25.10 | MIT OR Apache-2.0 |
| impls | 1.0.3 | MIT OR Apache-2.0 |
| indexmap | 2.14.0 | Apache-2.0 OR MIT |
| is_terminal_polyfill | 1.70.2 | MIT OR Apache-2.0 |
| itoa | 1.0.18 | MIT OR Apache-2.0 |
| kiddo | 5.3.1 | MIT OR Apache-2.0 |
| lazy_static | 1.5.0 | MIT OR Apache-2.0 |
| libloading | 0.8.9 | ISC |
| libm | 0.2.16 | MIT |
| litrs | 1.0.0 | MIT OR Apache-2.0 |
| lock_api | 0.4.14 | MIT OR Apache-2.0 |
| log | 0.4.29 | MIT OR Apache-2.0 |
| matrixmultiply | 0.3.10 | MIT/Apache-2.0 |
| memchr | 2.8.0 | Unlicense OR MIT |
| memmap2 | 0.9.10 | MIT OR Apache-2.0 |
| miniz_oxide | 0.8.9 | MIT OR Zlib OR Apache-2.0 |
| moxcms | 0.8.1 | BSD-3-Clause OR Apache-2.0 |
| mutants | 0.0.3 | MIT |
| naga | 26.0.0 | MIT OR Apache-2.0 |
| nalgebra | 0.34.2 | Apache-2.0 |
| nalgebra-macros | 0.3.0 | Apache-2.0 |
| nu-ansi-term | 0.50.3 | MIT |
| num-complex | 0.4.6 | MIT OR Apache-2.0 |
| num-integer | 0.1.46 | MIT OR Apache-2.0 |
| num-rational | 0.4.2 | MIT OR Apache-2.0 |
| num-traits | 0.2.19 | MIT OR Apache-2.0 |
| once_cell | 1.21.4 | MIT OR Apache-2.0 |
| once_cell_polyfill | 1.70.2 | MIT OR Apache-2.0 |
| ordered-float | 4.6.0 | MIT |
| ordered-float | 5.3.0 | MIT |
| parking_lot | 0.12.5 | MIT OR Apache-2.0 |
| parking_lot_core | 0.9.12 | MIT OR Apache-2.0 |
| paste | 1.0.15 | MIT OR Apache-2.0 |
| pin-project-lite | 0.2.17 | Apache-2.0 OR MIT |
| png | 0.18.1 | MIT OR Apache-2.0 |
| pollster | 0.4.0 | Apache-2.0/MIT |
| portable-atomic | 1.13.1 | Apache-2.0 OR MIT |
| presser | 0.3.1 | MIT OR Apache-2.0 |
| proc-macro2 | 1.0.106 | MIT OR Apache-2.0 |
| proc-macro-error2 | 2.0.1 | MIT OR Apache-2.0 |
| proc-macro-error-attr2 | 2.0.0 | MIT OR Apache-2.0 |
| profiling | 1.0.18 | MIT OR Apache-2.0 |
| pxfm | 0.1.29 | BSD-3-Clause OR Apache-2.0 |
| quote | 1.0.45 | MIT OR Apache-2.0 |
| rand | 0.10.1 | MIT OR Apache-2.0 |
| rand_core | 0.10.1 | MIT OR Apache-2.0 |
| range-alloc | 0.1.5 | MIT OR Apache-2.0 |
| rawpointer | 0.2.1 | MIT/Apache-2.0 |
| raw-window-handle | 0.6.2 | MIT OR Apache-2.0 OR Zlib |
| rayon | 1.12.0 | MIT OR Apache-2.0 |
| rayon-core | 1.13.0 | MIT OR Apache-2.0 |
| regex | 1.12.3 | MIT OR Apache-2.0 |
| regex-automata | 0.4.14 | MIT OR Apache-2.0 |
| regex-syntax | 0.8.10 | MIT OR Apache-2.0 |
| renderdoc-sys | 1.1.0 | MIT OR Apache-2.0 |
| rustc-hash | 1.1.0 | Apache-2.0/MIT |
| rustc-hash | 2.1.2 | Apache-2.0 OR MIT |
| safe_arch | 0.7.4 | Zlib OR Apache-2.0 OR MIT |
| scopeguard | 1.2.0 | MIT OR Apache-2.0 |
| serde | 1.0.228 | MIT OR Apache-2.0 |
| serde_core | 1.0.228 | MIT OR Apache-2.0 |
| serde_derive | 1.0.228 | MIT OR Apache-2.0 |
| serde_json | 1.0.149 | MIT OR Apache-2.0 |
| sharded-slab | 0.1.7 | MIT |
| simba | 0.9.1 | Apache-2.0 |
| simd-adler32 | 0.3.9 | MIT |
| smallvec | 1.15.1 | MIT OR Apache-2.0 |
| smallvec | 2.0.0-alpha.12 | MIT OR Apache-2.0 |
| sorted-vec | 0.8.10 | Apache-2.0 |
| spirv | 0.3.0+sdk-1.3.268.0 | Apache-2.0 |
| static_assertions | 1.1.0 | MIT OR Apache-2.0 |
| strsim | 0.11.1 | MIT |
| strum | 0.28.0 | MIT |
| strum_macros | 0.28.0 | MIT |
| syn | 2.0.117 | MIT OR Apache-2.0 |
| thiserror | 1.0.69 | MIT OR Apache-2.0 |
| thiserror | 2.0.18 | MIT OR Apache-2.0 |
| thiserror-impl | 1.0.69 | MIT OR Apache-2.0 |
| thiserror-impl | 2.0.18 | MIT OR Apache-2.0 |
| thread_local | 1.1.9 | MIT OR Apache-2.0 |
| tiny-keccak | 2.0.2 | CC0-1.0 |
| tracing | 0.1.44 | MIT |
| tracing-attributes | 0.1.31 | MIT |
| tracing-core | 0.1.36 | MIT |
| tracing-log | 0.2.0 | MIT |
| tracing-subscriber | 0.3.23 | MIT |
| typenum | 1.20.0 | MIT OR Apache-2.0 |
| unicode-ident | 1.0.24 | (MIT OR Apache-2.0) AND Unicode-3.0 |
| unicode-width | 0.2.2 | MIT OR Apache-2.0 |
| unsynn | 0.3.0 | MIT OR Apache-2.0 |
| utf8parse | 0.2.2 | Apache-2.0 OR MIT |
| wgpu | 26.0.1 | MIT OR Apache-2.0 |
| wgpu-core | 26.0.1 | MIT OR Apache-2.0 |
| wgpu-core-deps-windows-linux-android | 26.0.0 | MIT OR Apache-2.0 |
| wgpu-hal | 26.0.6 | MIT OR Apache-2.0 |
| wgpu-types | 26.0.0 | MIT OR Apache-2.0 |
| wide | 0.7.33 | Zlib OR Apache-2.0 OR MIT |
| windows | 0.58.0 | MIT OR Apache-2.0 |
| windows | 0.62.2 | MIT OR Apache-2.0 |
| windows_x86_64_msvc | 0.52.6 | MIT OR Apache-2.0 |
| windows-collections | 0.3.2 | MIT OR Apache-2.0 |
| windows-core | 0.58.0 | MIT OR Apache-2.0 |
| windows-core | 0.62.2 | MIT OR Apache-2.0 |
| windows-future | 0.3.2 | MIT OR Apache-2.0 |
| windows-implement | 0.58.0 | MIT OR Apache-2.0 |
| windows-implement | 0.60.2 | MIT OR Apache-2.0 |
| windows-interface | 0.58.0 | MIT OR Apache-2.0 |
| windows-interface | 0.59.3 | MIT OR Apache-2.0 |
| windows-link | 0.2.1 | MIT OR Apache-2.0 |
| windows-numerics | 0.3.1 | MIT OR Apache-2.0 |
| windows-result | 0.2.0 | MIT OR Apache-2.0 |
| windows-result | 0.4.1 | MIT OR Apache-2.0 |
| windows-strings | 0.1.0 | MIT OR Apache-2.0 |
| windows-strings | 0.5.1 | MIT OR Apache-2.0 |
| windows-sys | 0.59.0 | MIT OR Apache-2.0 |
| windows-sys | 0.61.2 | MIT OR Apache-2.0 |
| windows-targets | 0.52.6 | MIT OR Apache-2.0 |
| windows-threading | 0.2.1 | MIT OR Apache-2.0 |
| zerocopy | 0.8.48 | BSD-2-Clause OR Apache-2.0 OR MIT |
| zerocopy-derive | 0.8.48 | BSD-2-Clause OR Apache-2.0 OR MIT |
| zmij | 1.0.21 | MIT |
5. Licence texts
Every licence named on this page is reproduced in full, verbatim, in THIRD-PARTY-NOTICES.txt — the same file that installs with the plug-in. It contains the Apache 2.0, MIT, BSD 2-Clause, BSD 3-Clause, Mozilla Public License 2.0, LGPL v3, GPL v3, Boost Software License 1.0, zlib, ISC, CC0 1.0 and Unicode v3 licences, together with the individual copyright notices of each component.
The GPL v3 appears there because the LGPL v3 covering mmg is drafted as a set of additional permissions on top of it and incorporates it by reference. No part of Morphé is distributed under the GPL, and nothing in it reaches your Grasshopper definitions or your geometry.
6. What is not distributed with Morphé
Listed for completeness, because they appear in Morphé's source tree or build configuration and would otherwise raise a question for anyone reviewing our work. None of them is distributed to you.
- RhinoCommon and Grasshopper (Robert McNeel & Associates)
- Morphé is built against the Rhino 8 SDK and runs inside Rhino, but redistributes no part of it. The build references those assemblies with runtime assets excluded, so nothing McNeel-owned is copied into the Morphé output. Your Rhino licence covers Rhino.
- parry3d
- A Rust collision library used only as a test-time stand-in for FCPW. It is an optional dependency that the production build switches off, so it is never compiled and never shipped.
- Build-time tools
- bindgen, yasm, pkgconf and the vcpkg helper ports run on our machines to produce the build. Their code is not part of the result.