#graphics-rendering #2d-rendering #art #canvas #graphics

wassily-core

Core rendering infrastructure for wassily generative art library

1 unstable release

0.2.0 Jul 15, 2025

#1497 in Graphics APIs

Download history 34/week @ 2025-07-23 53/week @ 2025-08-06 7/week @ 2025-08-13 68/week @ 2025-08-20 13/week @ 2025-08-27 40/week @ 2025-09-03 43/week @ 2025-09-10 14/week @ 2025-09-17 28/week @ 2025-09-24 22/week @ 2025-10-01 36/week @ 2025-10-15 21/week @ 2025-10-22 15/week @ 2025-11-05

72 downloads per month
Used in 5 crates (4 directly)

MIT/Apache

49KB
1K SLoC

Wassily Core

Core rendering infrastructure for the wassily generative art library. This crate provides the fundamental building blocks for creating generative art: canvas management, shape building, point utilities, and mathematical operations.

Key Components

  • Canvas: The drawing surface that manages scaling and output
  • Shape: A builder for creating geometric shapes with fills and strokes
  • points: 2D point utilities and operations
  • util: Mathematical utilities and helper functions

Quick Start

use wassily_core::*;
use tiny_skia::Color;

let mut canvas = Canvas::new(400, 400);
canvas.fill(Color::from_rgba8(255, 255, 255, 255)); // White background

// Draw a blue circle
Shape::new()
    .circle(center(400, 400), 50.0)
    .fill_color(Color::from_rgba8(0, 0, 255, 255))
    .draw(&mut canvas);

canvas.save_png("output.png");

Features

  • High-Quality Rendering: Built on tiny-skia for precise vector graphics
  • Scalable Output: Create images at any resolution using scale factors
  • Shape Builder: Fluent API for creating complex geometric shapes
  • Multiple Formats: Save as PNG, JPEG, and other image formats
  • Mathematical Utilities: Point operations, transformations, and more

Architecture

This crate is designed to be the foundation layer for more specialized wassily crates. It provides low-level primitives that other crates build upon for colors, noise, effects, and advanced algorithms.

Dependencies

~13MB
~275K SLoC