libfive is a software library and set of tools for solid modeling, especially suited for parametric and procedural design. It is infrastructure for generative design, mass customization, and domain-specific CAD tools.

Your browser does not support the video tag.

The geometry kernel is based on functional representations, which have several benefits over traditional triangle meshes:

Constructive solid geometry is trivial, and scales well to large models

Resolution can be arbitrarily high (down to floating-point accuracy)

Many unusual operations (e.g. blends and warps) are robust and easy to express

The libfive stack includes a low-level geometry kernel, bindings in higher-level languages, a standard library of shapes and transforms, and a desktop application for script-based design.

Studio is a great place to start, but it's only one example of an application that can be built on this framework. The layers are loosely coupled, so you can build useful tools at various levels of abstraction.

Building your own CAD software? Use the libfive kernel for solid modeling, then add domain-specific details with your own GUI and frontend.

Need bindings in a high-level language? Use the C bindings and your language's FFI to build tools that integrate with the rest of your system.

How about a design customizer? Write a headless CAD application with the Scheme bindings and standard library, then run it as a service to generate user-customized models.

libfive is an open-source project licensed under the MPL (for core libraries) and GPL (for bindings and desktop application).