Go to file
Elbert Ronnie 5a1c171fc3
Add Area and Centroid nodes (#1749)
* initial attempt for area node

* allow node preview for more types

* make AreaNode sync and add CentroidNode

* cargo fmt

* preview of DVec2

* make the nodes async again

* use segment domain instead of region domain

* modify the check for linearity

* create a limit for area in centroid calculation

* cargo fmt

* reverse unnecessary changes

* add threshold to area calculation too.

* handle zero area edge case

* add todo comment

* implement 1D centroid and use it as fallback

* formatting floats to skip last zero

* add Centroid Type radio button to Centroid Node

* rename docs to use area and perimeter centroid

* add web demos for perimeter centroid

* add tests for perimeter centroid

* add fallback to use average of points

* Fix for broken area

* missing fixes

* Code review and rename Perimeter Centroid to Length Centroid

* Use dummy footprint in Area and Centroid nodes

* add doc and todo to clarify when `is_linear` fails

* use epsilon instead of zero

---------

Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2024-05-22 13:11:11 -07:00
.devcontainer Change devcontainer image to Debian to support ARM platforms (#1636) 2024-03-05 22:38:10 +00:00
.github Fix anti-aliasing in overlays by aligning everything with the pixel grid (#1603) 2024-02-13 20:47:16 -08:00
.vscode Generalize layers as merge nodes to enable adjustment layers (#1712) 2024-04-30 23:03:42 -07:00
demo-artwork Add Isometric Fountain demo artwork 2024-05-08 19:00:31 -07:00
editor Add Area and Centroid nodes (#1749) 2024-05-22 13:11:11 -07:00
frontend Add Isometric Fountain demo artwork 2024-05-08 19:00:31 -07:00
libraries Add Area and Centroid nodes (#1749) 2024-05-22 13:11:11 -07:00
node-graph Add Area and Centroid nodes (#1749) 2024-05-22 13:11:11 -07:00
proc-macros Refactor Graphite dependency management (#1455) 2023-12-04 12:39:55 +01:00
website Add Area and Centroid nodes (#1749) 2024-05-22 13:11:11 -07:00
.editorconfig Remove all references to Vue 2023-03-10 04:02:02 -08:00
.gitattributes Update Git Attributes for JSON syntax highlighting in `*.graphite` files (#1752) 2024-05-13 22:35:32 +00:00
.gitignore Restructure GPU compilation execution pipeline (#903) 2022-12-31 02:52:04 +01:00
.nvmrc Add dev container configuration 2024-01-24 23:04:00 +00:00
.prettierrc Fix Bezier-rs interactive demos and migrate its Webpack bundler to Vite 2024-01-04 23:13:40 -08:00
Cargo.lock Add grid color customization and choice to display as dots (#1743) 2024-05-08 21:36:15 +00:00
Cargo.toml Simplify Rust deps that depended on a specific commit hash 2024-03-11 00:00:05 -07:00
LICENSE.txt Add Apache 2 license 2020-07-12 13:58:50 -07:00
README.md Finalize GSoC 2024 project idea list 2024-02-11 21:20:00 -08:00
about.hbs Replace license generator web infra to use Vite 2023-11-13 03:38:36 -08:00
about.toml Avoid cargo-about failures by disabling failing API (#1653) 2024-03-07 01:13:36 -08:00
deny.toml Update dependencies and reuse the same usvg version 2024-01-17 20:33:07 -08:00
package-lock.json Add dev container configuration 2024-01-24 23:04:00 +00:00
package.json Readd alias package.json 2023-04-25 00:58:53 +02:00
rustfmt.toml Upgrade rustfmt to 2021 edition 2021-11-02 20:08:39 -07:00
shell.nix Loosen the Graphene type system to allow contravariant function arguments (#1740) 2024-05-07 16:36:25 -07:00

README.md

Graphite logo

Redefining state-of-the-art graphics editing

Graphite is an in-development raster and vector graphics package that's free and open source. It is powered by a node graph compositing engine that fuses layers with nodes, providing a fully nondestructive editing experience.

Presently, Graphite is a lightweight vector graphics editor that runs in your browser. Its node-based compositor lets you apply image effects and co-create art with generative AI.

Photo editing, digital painting, desktop publishing, VFX compositing, and motion graphics are additional competencies planned on the roadmap to make Graphite a highly versatile content creation tool.

Launch the latest alpha release of the Graphite editor and learn more at the project website.

Please remember to star this project here on GitHub!

Vector artwork: "Red Dress"

Red Dress (click to open this artwork and explore it yourself)

Vector artwork: "Valley of Spires"

Valley of Spires (click to open this artwork and explore it yourself)

Discord community

Join our Discord community to chat with the community and development team. Feel free to lurk, ask questions, give suggestions, or get involved in the project. We are always seeking new collaborators to help test, design, and develop the software and this is where we communicate.

Building/contributing

We need Rust and web developers! See instructions here for setting up the project and getting started.

We are also in search of artists to create beautiful sample work in Graphite and illustrations for the website and social media. Please get in touch if you are able to help out.

By submitting code for inclusion in the project, you are agreeing to license your changes under the Apache 2.0 license, and that you have the authority to do so. Some directories may have other licenses, like dual-licensed MIT/Apache 2.0, and code submissions to those directories mean you agree to the applicable license(s).

Features and roadmap

See the web page for this information.

Support the project

Please consider pledging a monthly donation. Your contribution helps sustain this volunteer-run open source project and brings powerful, free creative tools to the masses.