| Crates.io | wassily |
| lib.rs | wassily |
| version | 0.2.0 |
| created_at | 2023-08-23 12:42:48.514287+00 |
| updated_at | 2025-07-15 22:23:40.30794+00 |
| description | wassily is both an API and set of tools for creating generative 2D art |
| homepage | https://github.com/jeffreyrosenbluth/wassily/ |
| repository | https://github.com/jeffreyrosenbluth/wassily/ |
| max_upload_size | |
| id | 951959 |
| size | 75,457 |
Wassily is both an API and set of tools for creating generative 2D art. It allows you to create images that can easily be scaled to any size without loss of quality, perfect for printed art or high-resolution displays.
Wassily is built as a modular system comprising several focused crates:
wassily-core: Core rendering infrastructure including canvas, shapes, and drawing primitiveswassily-color: Color utilities, palettes, and color space operationswassily-noise: Noise generation functions and utilities optimized for generative artwassily-geometry: Geometric operations, curves, spatial data structures, and subdivision algorithmswassily-effects: Visual effects, textures, and procedural generation toolswassily-algorithms: Specialized rendering algorithms and advanced techniquesuse wassily::prelude::*;
fn main() {
// Create a canvas
let mut canvas = Canvas::new(800, 600);
canvas.fill(*WHITE);
// Draw a simple shape
Shape::new()
.circle(center(800, 600), 100.0)
.fill_color(*BLUE)
.stroke_color(*BLACK)
.stroke_weight(2.0)
.draw(&mut canvas);
// Save the result
canvas.save_png("output.png");
}
use wassily::prelude::*;
// Everything you need is now available
use wassily::core::{Canvas, Shape};
use wassily::color::*;
use wassily::noise::*;
// For more focused dependencies
use wassily_core::Canvas;
use wassily_color::rand_okhsl;
The crate includes numerous examples demonstrating various techniques. Run them with:
cargo run --example schotter
cargo run --example sphere
cargo run --example saturn
Licensed under either of Apache License, Version 2.0 or MIT license at your option.