{"id":13906195,"url":"https://github.com/hannobraun/fornjot","last_synced_at":"2025-05-12T15:25:10.331Z","repository":{"id":37446495,"uuid":"355639559","full_name":"hannobraun/fornjot","owner":"hannobraun","description":"Early-stage b-rep CAD kernel, written in the Rust programming language.","archived":false,"fork":false,"pushed_at":"2025-05-05T10:26:55.000Z","size":19865,"stargazers_count":2170,"open_issues_count":28,"forks_count":121,"subscribers_count":34,"default_branch":"main","last_synced_at":"2025-05-05T11:37:59.002Z","etag":null,"topics":["cad","rust"],"latest_commit_sha":null,"homepage":"https://www.fornjot.app/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hannobraun.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["hannobraun"]}},"created_at":"2021-04-07T18:06:31.000Z","updated_at":"2025-05-05T10:27:00.000Z","dependencies_parsed_at":"2024-04-22T13:28:59.529Z","dependency_job_id":"ceed24aa-fbbc-46e6-99f2-2be93b11c4a1","html_url":"https://github.com/hannobraun/fornjot","commit_stats":{"total_commits":10414,"total_committers":49,"mean_commits":"212.53061224489795","dds":"0.23910120990973693","last_synced_commit":"b69b1440883b068eb2244850643cd25e00086eb6"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hannobraun%2Ffornjot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hannobraun%2Ffornjot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hannobraun%2Ffornjot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hannobraun%2Ffornjot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hannobraun","download_url":"https://codeload.github.com/hannobraun/fornjot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253764425,"owners_count":21960580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cad","rust"],"created_at":"2024-08-06T23:01:31.034Z","updated_at":"2025-05-12T15:25:10.292Z","avatar_url":"https://github.com/hannobraun.png","language":"Rust","funding_links":["https://github.com/sponsors/hannobraun"],"categories":["Rust"],"sub_categories":[],"readme":"# Fornjot\n\n[**Blog**](https://www.fornjot.app/blog/) | [**Community**](https://www.fornjot.app/community/) | [**Contribution Guide**](CONTRIBUTING.md)\n\n## About\n\nFornjot is an **early-stage CAD kernel**, using **boundary representation (b-rep)**, written in the Rust programming language.\n\nAs 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.\n\nIn doing so, Fornjot follows these principles:\n\n- Focus on **mechanical CAD applications**, like 3D printing, machining, woodworking; over other use cases such as architecture or electronics.\n- Favor **reliability over features**. Anything you can do should either work as expected, or result in a clear and actionable error.\n- Maintain **a friendly API for directly defining models** in Rust. This means code-first CAD modeling (or Code-CAD) is natively supported.\n- Support **code-first CAD modeling in other languages**, by enabling third-party APIs.\n\nFornjot is still in development and doesn't always live up to these ambitions. None the less, these are the priorities the project follows.\n\nFor more information, [please check out the website](https://www.fornjot.app/).\n\n\n## Sponsors\n\nFornjot is supported by [**@reivilibre**](https://github.com/reivilibre), [**@thestig4242**](https://github.com/thestig4242), [**@thomasgarrison**](https://github.com/thomasgarrison), [**@seanjensengrey**](https://github.com/seanjensengrey), [**@lthiery**](https://github.com/lthiery), [**@ahdinosaur**](https://github.com/ahdinosaur), [**@martindederer**](https://github.com/martindederer), [**@sucaba**](https://github.com/sucaba), [**@MitchellHansen**](https://github.com/MitchellHansen), [**@Rahix**](https://github.com/Rahix), [**@JanBerktold**](https://github.com/JanBerktold), [**@darwin**](https://github.com/darwin), [**@nullstyle**](https://github.com/nullstyle), [**@HalfVoxel**](https://github.com/HalfVoxel), [**@jessebraham**](https://github.com/jessebraham), [**@jminer**](https://github.com/jminer), [**@U007D**](https://github.com/U007D), [**@guillaumechauvat**](https://github.com/guillaumechauvat), [**@mayfieldiv**](https://github.com/mayfieldiv), [**@bglw**](https://github.com/bglw), [**@refarb**](https://github.com/refarb), [**@hansihe**](https://github.com/hansihe), [**@romixlab**](https://github.com/romixlab), [**@justinmimbs**](https://github.com/justinmimbs), [**@yikesable**](https://github.com/yikesable), [**@hrgdavor**](https://github.com/hrgdavor), [**@ironchief**](https://github.com/ironchief), [**@kingsmountainlabs**](https://github.com/kingsmountainlabs), [**@epyintheshell**](https://github.com/epyintheshell), [**@jneem**](https://github.com/jneem), [**@keithamus**](https://github.com/keithamus), [**@starthal**](https://github.com/starthal), and [my other awesome sponsors](https://github.com/sponsors/hannobraun). Thank you!\n\n**Please consider [supporting me too](https://github.com/sponsors/hannobraun), to help make Fornjot sustainable long-term.**\n\n\n## Table of Contents\n\n- [**Status**](#status)\n- [**Overview**](#overview)\n- [**Usage**](#usage)\n- [**Community**](#community)\n- [**Get Involved**](#get-involved)\n- [**License**](#license)\n\n\n## Status\n\nFornjot is usable for simple models (see [`models/` directory](models)), but currently lacks the features for anything more advanced. Work to change that is underway.\n\nDespite this, there are some experimental projects that are build on top of Fornjot:\n\n- [CommandCAD](https://github.com/IamTheCarl/CommandCAD)\n- [`fj-text`](https://github.com/samgoldman/fj-text)\n- [`bevy_mod_fornjot`](https://github.com/TotalKrill/bevy_mod_fornjot)\n\n\n## Overview\n\nFornjot 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:\n\n- [`fj`]: All-in-one API that re-exports all of the following crates.\n- [`fj-math`]: Math primitives used by the rest of Fornjot.\n- [`fj-interop`]: Basic types that allow other crates to interoperate, without depending on each other.\n- [`fj-core`]: Core primitives and code operating on those primitives.\n- [`fj-export`]: Exports Fornjot models to external data formats.\n- [`fj-viewer`]: Displays Fornjot models.\n- [`fj-window`]: Simple windowing abstraction for use with `fj-viewer`.\n\n[`fj`]: https://crates.io/crates/fj\n[`fj-core`]: https://crates.io/crates/fj-core\n[`fj-export`]: https://crates.io/crates/fj-export\n[`fj-interop`]: https://crates.io/crates/fj-interop\n[`fj-math`]: https://crates.io/crates/fj-math\n[`fj-viewer`]: https://crates.io/crates/fj-viewer\n[`fj-window`]: https://crates.io/crates/fj-window\n\n\n## Usage\n\nFornjot 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.\n\nIf you want to use Fornjot to create a specific model in Rust, the best starting point are the [example models](models/) in this repository:\n\n- To display a model, run `cargo run -p cuboid` (replace `cuboid` with name of model you want to display).\n- To export a model, run `cargo run -p cuboid -- --export model.3mf` (replace `cuboid` with name of model you want to export; optionally replace `3mf` with another supported file format).\n- To see full set of CLI options, run `cargo run -p cuboid -- --help` (all models have the same CLI interface, so this shouldn't differ much between them).\n\n\n## Community\n\nIf you are interested in Fornjot, please consider joining the community. We'd love to have you!\n\nPlease check out [the community page on the website](https://www.fornjot.app/community/) for information on where to find us!\n\n\n## Get Involved\n\nIf you are interested in helping out, just fork one of the GitHub repositories and submit a pull request:\n\n- [Main Fornjot repository](https://github.com/hannobraun/Fornjot)\n- [Website repository](https://github.com/hannobraun/www.fornjot.app)\n\nIf you don't know what to work on, check out the [`good first issues`](https://github.com/hannobraun/Fornjot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). If you need some more guidance, check out the [contribution guide](CONTRIBUTING.md), [or just ask](https://www.fornjot.app/community/)!\n\n\n## License\n\nThis 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.\n\nSee [LICENSE.md] for full details.\n\n[`fj`]: https://crates.io/crates/fj\n[Zero Clause BSD License]: https://opensource.org/licenses/0BSD\n[LICENSE.md]: LICENSE.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhannobraun%2Ffornjot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhannobraun%2Ffornjot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhannobraun%2Ffornjot/lists"}