hannobraun / fornjot

Early-stage b-rep CAD kernel, written in the Rust programming language.
https://www.fornjot.app/
Other
2.02k stars 113 forks source link
cad rust

Fornjot

Blog | Community | Contribution Guide

About

Fornjot is an early-stage CAD kernel, using boundary representation (b-rep), written in the Rust programming language.

As a CAD kernel, the project's main goal is to provide a solid foundation for developers to build on top of, whether for special purpose tooling, third-party libraries for extending Fornjot's feature set, or full-featured CAD applications.

In doing so, Fornjot follows these principles:

Fornjot is still in development and doesn't always live up to these ambitions. None the less, these are the priorities the project follows.

For more information, please check out the website.

Sponsors

Fornjot is supported by @reivilibre, @krl, @thestig4242, @seanjensengrey, @lthiery, @ahdinosaur, @martindederer, @sucaba, @MitchellHansen, @Rahix, @nullstyle, @HalfVoxel, @jessebraham, @jminer, @U007D, @guillaumechauvat, @mayfieldiv, @bglw, @refarb, @hansihe, @romixlab, @justinmimbs, @yikesable, @hrgdavor, and my other awesome sponsors. Thank you!

Please consider supporting me too, to help make Fornjot sustainable long-term.

Table of Contents

Status

Fornjot is usable for simple models (see models/ directory), but currently lacks the features for anything more advanced. Work to change that is underway.

Overview

Fornjot features a modular architecture, allowing you to pick and choose which parts of it you want to use. It is made up of the following libraries:

Usage

Fornjot is a set of Rust libraries (see list above). The definitive documentation on how to use those is their reference documentation. The crates.io pages of each library (see list above) link to those.

If you want to use Fornjot to create a specific model in Rust, the best starting point are the example models in this repository:

Community

If you are interested in Fornjot, please consider joining the community. We'd love to have you!

Please check out the community page on the website for information on where to find us!

Get Involved

If you are interested in helping out, just fork one of the GitHub repositories and submit a pull request:

If you don't know what to work on, check out the good first issues. If you need some more guidance, check out the contribution guide, or just ask!

License

This project is open source, licensed under the terms of the Zero Clause BSD License (0BSD, for short). This basically means you can do anything with it, without any restrictions, but you can't hold the authors liable for problems.

See LICENSE.md for full details.