An attribute's name and its value type separate: `AttrValue` declares everything `Attribute` does except the name and its name-specific default, and `Named<X, V>` pairs one with a name the graph supplies. The value type stays concrete in the signature while the name varies per instance, so a computed name has nowhere to come from. `LayoutMeta` gains the name-from-input variant the fold consumes: a `FieldWrite` template with every facet minted from the concrete type and only the name left as a placeholder, plus the input position the name's constant sits at. `fold_name` resolves one, preferring the census row's descriptor where the name is declared so a known name keeps its census default. `RecordLayout` carries the folded names so `set_layout` can resolve offsets without a marker's `NAME`. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
cargo check with a system global Cargo config.toml rustflags override (#4277)
Your procedural toolbox for 2D content creation
Graphite is a free, open source vector and raster graphics engine, available now in alpha. Get creative with a fully nondestructive editing workflow that combines layer-based compositing with node-based generative design.
Having begun life as a vector editor, Graphite continues evolving into a generalized, all-in-one graphics toolbox that's built more like a game engine than a conventional creative app. The editor's tools wrap its node graph core, providing user-friendly workflows for vector, raster, and beyond. Photo editing, motion graphics, digital painting, desktop publishing, and VFX compositing are additional competencies on the planned roadmap making Graphite into a highly versatile content creation tool.
Learn more from the website, subscribe to the newsletter, consider volunteering or donating, and remember to give this repository a ⭐!
https://github.com/user-attachments/assets/f4604aea-e8f1-45ce-9218-46ddc666f11d
Support our mission ❤️
Graphite is 100% community built and funded. Please become a part of keeping the project alive and thriving with a donation if you share a belief in our mission:
Graphite strives to unshackle the creativity of every budding artist and seasoned professional by building the best comprehensive art and design tool that's accessible to all.
Mission success will come when Graphite is an industry standard. A cohesive product vision and focus on innovation over imitation is the strategy that will make that possible.
Screenshots
Contributing/building the code
Are you a graphics programmer or Rust developer? Graphite aims to be one of the most approachable projects for putting your engineering skills to use in the world of open source. See instructions here for setting up the project and getting started.
License
Graphite's source code is dual-licensed under your choice of either the MIT license or the Apache License 2.0, at your option, unless otherwise noted within the repository. By submitting code for inclusion in the project, you agree to license your contributions under both licenses, and that you have the authority to do so.