nightgraph
A creative coding platform in Rust. Provides drawing APIs, a CLI, Native and WASM GUIs, and low-boilerplate artwork creation. Designed initially for @night_generator pen-plotter works, but steadily expanding into a general purpose platform.
Status
This project is in very early active development, and probably shouldn't be used by anyone until it's first release in the near future
With that said, there are a lot of exciting features on the roadmap:
- Scripting language and/or node editor for user created sketches at runtime.
- Keyframes/animations in
nightgraph-ui
, as well as rendering to various video formats - Higher order geometric operations: clustering, fracturing, tiling, canvas-iterating operations.
- Forward-porting @night_generator works written in a previous version of this platform (such as Kinect scans).
and many more in this project's issues.
Crates
nightgraphics
A 2D drawing API, with a collection of shapes primitives as well as standard operations on them, and between other shapes, and a canvas to place them on and render from.
nightsketch
An internal crate used by nightgraph-ui
and nightgraph-cli
to store, expose, and modify sketches (self contained works of art written in nightgraphics
).
nightgraph-ui
A GUI written in egui
that displays nightsketch
sketches, as well as auto-generated controls from their parameters. Runs natively on all Linux/MacOS/Windows, or in any modern web browser via wasm
.
nightgraph-cli
A CLI for nightsketch
sketches that lists sketches, their parameters, descriptions for both, and allows rendering sketches to SVGs with modified values.
nightsketch_derive
An internal crate that greatly simplifies the act of adding new sketches to nightsketch
. Through doc comments, attributes, and object naming, CLI/GUI controls are auto-generated for selection of sketches, setting of parameters, etc.
Credit & Licenses
This project and its contained crates are licensed under the MIT license. Any artwork generated by an existing sketch, such as sketch/src/blossom.rs
, is licensed CC BY 4.0. Artwork can be attributed to Kyle Kneitinger ([email protected]), or @night_generator on Instagram.
Jost-500-Medium.otf
and Jost-400-Book.otf
by indestructible type*, SIL Open Font License
Monofur_Regular.ttf
by Tobias Köhler, Custom "Freeware" License
nightgraph-ui
derived from emilk/eframe_template