Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README #1869

Merged
merged 3 commits into from
Jun 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"[markdown]": {
"editor.formatOnSave": false,
},
"rust-analyzer.diagnostics.disabled": [
"mismatched-arg-count"
],
Expand Down
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,29 @@ Fornjot is usable for some toy examples, but currently lacks the features for so

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-math`]: Math primitives used by the rest of the Fornjot ecosystem.
- `fj` (not published yet; crate on `crates.io` is not the same library): 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-kernel`]: CAD kernel of Fornjot. Defines geometric and topological primitives, and algorithms that operate on those primitives.
- `fj-core` (not published yet): Core primitives and code operating on those primitives.
- [`fj-export`]: Exports Fornjot models to external data formats.
- [`fj-viewer`]: Displays Fornjot models.
- `fj-window` (not published yet; crate on `crates.io` is not the same library): Simple windowing abstraction for use with `fj-viewer`.

[`fj-export`]: https://crates.io/crates/fj-export
[`fj-interop`]: https://crates.io/crates/fj-interop
[`fj-kernel`]: https://crates.io/crates/fj-kernel
[`fj-math`]: https://crates.io/crates/fj-math
[`fj-viewer`]: https://crates.io/crates/fj-viewer


## Usage

This repository is currently [in flux](https://www.fornjot.app/blog/a-new-direction/) and the documentation previously available here no longer applies. This section will be updated in due time.
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](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
Expand Down