• Stars
    star
    1,827
  • Rank 24,636 (Top 0.5 %)
  • Language
    Rust
  • License
    Other
  • Created about 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Early-stage b-rep CAD kernel, written in the Rust programming language.

Fornjot

Blog | Community | Contribution Guide

About

Fornjot is an early-stage b-rep CAD kernel written in the Rust programming language.

For an introduction of what the project aims to achieve, please check out the website.

Sponsors

Fornjot is supported by @MitchellHansen, @webtrax-oz, @reivilibre, @lthiery, @ahdinosaur, @martindederer, @bollian, @nullstyle, @tachiniererin, @HalfVoxel, @sucaba, @Kethku, @jessebraham, @seanjensengrey, @MattOslin, @benwis, @happysalada, @jminer, @jeevcat, @voxpelli, @U007D, @guillaumechauvat, @mayfieldiv, 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 some toy examples, but currently lacks the features for something more advanced. Work to change that is underway.

Overview

This is a list of the crates that make up Fornjot, along with a short description for each, starting with the most basic ones and leading up to the high-level ones:

  • fj: All-in-one API that re-exports all of the following crates.
  • fj-math: Math primitives used by the rest of Fornjot.
  • fj-interop: Basic types that allow other crates to interoperate, without depending on each other.
  • fj-core: Core primitives and code operating on those primitives.
  • fj-export: Exports Fornjot models to external data formats.
  • fj-viewer: Displays Fornjot models.
  • fj-window: Simple windowing abstraction for use with fj-viewer.

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:

  • To display a model, run cargo run -p cuboid (replace cuboid with name of model you want to display).
  • 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).
  • 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).

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.

More Repositories

1

inotify-rs

Idiomatic inotify wrapper for the Rust programming language
Rust
246
star
2

vndf-2016

Von Neumann Defense Force
Rust
119
star
3

stepper

Universal Stepper Motor Interface
Rust
94
star
4

ramp-maker

Stepper Acceleration Ramp Generator
Rust
28
star
5

3mf-rs

3MF (3D Manufacturing Format) support for Rust
Rust
28
star
6

kari

Kari, an embeddable programming language, written in and for Rust
Rust
27
star
7

embedded

I'm teaching myself embedded programming. This repository is where I put my code. There's also a blog.
Rust
27
star
8

rum

An experiment with Rust and Emscripten.
Python
20
star
9

rustecs

Entity Component System for Rust
Rust
20
star
10

rust-dwm1001

[DEPRECATED] This repository was merged with https://github.com/braun-embedded/rust-dw1000
Rust
15
star
11

embedded-test-stand

A test stand for firmware applications.
Rust
11
star
12

cnc-mill

Rust
9
star
13

rust-embedded-timeout-macros

Rust macros for working with timeouts on top of embedded-hal APIs
Rust
6
star
14

caterpillar

An experiment in programming language design.
Rust
5
star
15

inotify-sys

Low-level inotify bindings for the Rust programming language
Rust
5
star
16

flott

Flott Meta Repository
Rust
5
star
17

notebooks

open source stationery
5
star
18

www.fornjot.app

The Fornjot website
HTML
4
star
19

fornjot-extra

Components of Fornjot that are no longer actively maintained. Pull requests still welcome!
Rust
4
star
20

model-api

Proof of concept for a web API that can export 3MF files from parametric OpenSCAD models
Rust
4
star
21

ScalableDynamics

An experimental 2D physics library for games.
Scala
3
star
22

stepper-terminal

Manual testing tool and full application example for Stepper.
Rust
3
star
23

playground

Rust
3
star
24

braun-embedded.com

The Braun Embedded website
SCSS
2
star
25

pi-pico-examples

Embedded examples using the Raspberry Pi Pico.
Rust
2
star
26

prusa-mini-enclosure

Enclosure for my Prusa Mini
Python
2
star
27

vndf-2020

Von Neumann Defense Force - a game about spaceships
Rust
2
star
28

upstart

Unfinished game prototype written in JavaScript, using the HTML5 Canvas element.
JavaScript
2
star
29

probe-rs-arch

Experimental probe-rs Arch Linux package.
Shell
1
star
30

rust-gnat

Unofficial Rust Board Support Crate for the Tlera Corp Gnat
Shell
1
star
31

my-boss

Software that tells me what to do and when to do it.
Rust
1
star
32

hannobraun

1
star
33

hanno.braun-odw.eu

My personal website
SCSS
1
star
34

MissileGame

Not really a game yet, but it's about missiles, so the name is at least half-correct.
Scala
1
star
35

vndf

Von Neumann Defense Force
Rust
1
star
36

ludus

A game about gladiators. Made for #bbg challenge 5 (https://github.com/hughfdjackson/bbgchallenge5).
CoffeeScript
1
star
37

lpc845-example

Example program for the LPC845, written in Rust
Rust
1
star
38

gravity

Unfinished game prototype written in JavaScript, using the HTML5 Canvas element.
JavaScript
1
star
39

robust-predicates

Robust predicates for computer geometry
Rust
1
star