Skip to content

Open-source notices

Lineplate is built on open-source software. The most important piece is its geometry kernel, Open CASCADE Technology, which reads CAD files and works out hidden lines.

Open CASCADE Technology

This product makes use of facilities provided by the Open CASCADE Technology software. Open CASCADE Technology (OCCT) is licensed under the GNU Lesser General Public License version 2.1, with the Open CASCADE exception. The kernel is built from OCCT 8.0.1 with 4 patches of ours, listed below.

Open CASCADE exception (version 1.0) to GNU LGPL version 2.1.

The object code (i.e. not a source) form of a "work that uses the Library"
can incorporate material from a header file that is part of the Library.
As a special exception to the GNU Lesser General Public License version 2.1,
you may distribute such object code incorporating material from header files
provided with the Open CASCADE Technology libraries (including code of CDL
generic classes) under terms of your choice, provided that you give
prominent notice in supporting documentation to this code that it makes use
of or is based on facilities provided by the Open CASCADE Technology software.

What runs where

The kernel is compiled to WebAssembly and loaded by your browser at run time, as two separate files, from /kernel/cadoc-kernel.0dea8f936d3fef53.mjs and the .wasm of the same name beside it. It runs in a background worker in your browser tab and is never bundled into the rest of the application's code. The name carries a hash of the files' contents, so a new build of the kernel always has a new name.

Getting the source

Replacing the kernel

The LGPL lets you use a modified version of the library with the application. The kernel is kept separate for that reason: it contains no product logic, the rest of the studio talks to it only through a versioned message format (protocol version 1), and it is loaded from its own URL.

Our terms allow you to modify the kernel for your own use and to reverse-engineer the application as far as needed to debug such modifications, as the LGPL requires. See the draft terms.

The example drawings

The assembly drawings on the home page, and the example model in the studio, are made from the leader arm in Alexander Koch's low_cost_robot repository. We replaced its six servos, with their screws and connectors, and its servo frame with models of our own, made to the same outside dimensions and mounting holes, so the arm goes together as before. The printed parts and the assembly are Alexander Koch's. The example file, leader_arm.step, carries this notice in its header. The single-part drawings are of the NIST MBE PMI test parts, a US government work used without restriction. The arm is published under the MIT licence:

MIT License

Copyright (c) 2024 Alexander Koch

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Fonts and colour profiles

Software packages

The JavaScript packages the studio is built with, including three.js (3D view) and PDFKit (PDF export, which includes Adobe's metrics for the standard PDF fonts). This list is generated from the project's lockfile by apps/studio/scripts/third-party-notices.mjs, which refuses GPL and AGPL licences.

PackageVersionLicence
@auth/core0.41.3ISC
@auth/prisma-adapter2.11.3ISC
@img/colour1.1.0MIT
@img/sharp-libvips-linux-x64libvips, an optional dependency Next.js installs for server-side image optimisation. It runs only on the server, is never sent to a browser, and the studio does not use image optimisation.1.3.4LGPL-3.0-or-later
@img/sharp-linux-x640.35.5Apache-2.0
@next/env16.3.8MIT
@next/swc-linux-x64-gnu16.3.8MIT
@noble/ciphers1.3.0MIT
@noble/hashes1.8.0MIT
@panva/hkdf1.2.1MIT
@prisma/adapter-pg7.10.0Apache-2.0
@prisma/client7.10.0Apache-2.0
@prisma/client-runtime-utils7.10.0Apache-2.0
@prisma/debug7.10.0Apache-2.0
@prisma/driver-adapter-utils7.10.0Apache-2.0
@swc/helpers0.5.23Apache-2.0
@types/node24.19.1MIT
@types/pg8.23.1MIT
base64-js0.0.8MIT
base64-js1.5.1MIT
baseline-browser-mapping2.11.27Apache-2.0
brotli1.3.3MIT
caniuse-lite1.0.30001814CC-BY-4.0
client-only0.0.1MIT
clone2.1.2MIT
dfa1.2.0MIT
dotenv17.4.2BSD-2-Clause
fast-deep-equal3.1.3MIT
fflate0.8.3MIT
fontkit2.0.4MIT
jose6.2.12MIT
linebreak1.1.0MIT
nanoid3.3.19MIT
next16.3.8MIT
next-auth5.0.0-beta.32ISC
oauth4webapi3.8.8MIT
pako0.2.9MIT
pdfkit0.20.2MIT
pg8.23.0MIT
pg-cloudflare1.4.1MIT
pg-connection-string2.14.1MIT
pg-int81.0.1ISC
pg-pool3.14.0MIT
pg-protocol1.16.1MIT
pg-types2.2.0MIT
pgpass1.0.5MIT
picocolors1.1.1ISC
png-js2.0.0MIT
postcss8.5.23MIT
postgres-array2.0.0MIT
postgres-array3.0.4MIT
postgres-bytea1.0.1MIT
postgres-date1.0.7MIT
postgres-interval1.2.0MIT
preact10.24.3MIT
preact-render-to-string6.5.11MIT
react19.3.0MIT
react-dom19.3.0MIT
restructure3.0.2MIT
scheduler0.28.0MIT
semver7.8.5ISC
server-only0.0.1MIT
sharp0.35.5Apache-2.0
source-map-js1.2.2BSD-3-Clause
split24.2.0ISC
stripe22.6.1MIT
styled-jsx5.1.6MIT
tailwindcssCompiled into the site's CSS (its base styles and licence banner ship to the browser).4.3.3MIT
three0.186.1MIT
three-mesh-bvh0.9.15MIT
tiny-inflate1.0.3MIT
tslib2.8.10BSD
undici-types7.24.6MIT
unicode-properties1.4.1MIT
unicode-trie2.0.0MIT
xtend4.0.2MIT