Skip to content

Releases: abey79/vsvg

0.4.0 - The Too Late for Genuary Release

21 Jan 09:09
Compare
Choose a tag to compare

Release Notes

Released 2024-01-21

Highlights

Parameter persistence and sketch breaking changes

Sketch parameters are now persisted across sketch launches, which dramatically improves the QoL when iterating on sketch code. A new "Reset" button sets all parameters to the sketch defaults. This also lays the groundwork for a future configuration management feature.

Two breaking changes were introduced to accommodate for this.

  1. Use MySketch::runner().run() instead of Runner::new(MySketch::default()).run() in your main() function.
  2. Use the #[sketch_app], resp. #[sketch_widget] attributes instead of the Sketch, resp. Widget derive macros. These new attributes take care of deriving the now-required serde::Serialize and serde::Deserialize using the correct, whiskers-exported version of the serde crate.

Example:

use whiskers::prelude::*;

#[sketch_app]
#[derive(Default)]
struct HelloWorldSketch {
    width: f64,
    height: f64,
}

impl App for HelloWorldSketch {
    fn update(&mut self, sketch: &mut Sketch, _ctx: &mut Context) -> anyhow::Result<()> {
        /* sketch code here */
        Ok(())
    }
}

fn main() -> Result {
    HelloWorldSketch::runner()
        .with_page_size_options(PageSize::A5H)
        .run()
}

Other highlights

  • It's now possible to override pen width and opacity in the viewer.
  • The viewer now persists the antialiasing setting (note: persistence happens on a per-binary basis, so the AA setting must be set e.g. for each different sketch).
  • You can use custom enum types as sketch parameter (use the new #[sketch_widget] attribute as noted above).
  • vsvg introduces a new Length type which combines a float and a Unit. whiskers supports them, and, when used as sketch parameter, provides a nice UI where both the value and the unit can be changed.
  • msvg now sorts files "correctly" when they are numbered, and has a much nicer CLI experience.
  • It's now possible to directly "draw" into a vsvg::Layer using the APIs from the vsvg::Draw trait.
  • Both vsvg and vsvg-viewer now cleanly re-export key dependencies.

whiskers crates

  • BREAKING: Persist sketch parameters across app relaunches #94
  • BREAKING: Add a button to reset the sketch parameters to their defaults #91
  • Add support for custom enum as sketch parameter #107
  • Add support for vsvg::Unit and vsvg::Length as sketch parameters #95
  • Add Context::rng_weighted_choice() helper function #102 (thanks @afternoon2!)
  • Split whiskers widgets in their own whiskers-widgets crate #108
  • Add particle example based on geos #105
  • Make Runner::new() private and update docs accordingly #96
  • Fix README.md code example to use SketchApp::runner() instead of now private Runner::new() #103 (thanks @reidab!)

msvg CLI

  • Sort files in natural order rather than in lexicographical order #104 (thanks @danieledapo!)
  • Use clap for msvg for a nicer CLI experience #83

vsvg crate

  • BREAKING: Improve Unit and introduce Length #88
  • Implement the Draw trait for Layer #111
  • Re-export core vsvg dependencies #113
  • Fix unescaped <dc:source> content in SVG output #116

vsvg-viewer crate

  • Add options to override pen width and opacity #89
  • Persist antialias setting across app relaunches #90
  • Add on_exit() hook to the ViewerApp trait #106 (thanks @danieledapo!)
  • Re-export core vsvg-viewer dependencies #115 (thanks @danieledapo!)

Common

  • Run documentation tests in CI #92
  • Update rust toolchain to 1.75.0 #82
  • Update egui to 0.25.0 #118
  • Update cargo dist to 0.8.0 #117
  • Fix web demo publishing action 5f42b4a
  • changelog.py: highlight breaking changes and generate a list of contributors #93

Contributors

afternoon2 danieledapo reidab

Full Changelog: v0.3.0...v0.4.0

msvg 0.4.0

Install msvg 0.4.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.4.0/msvg-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.4.0/msvg-installer.ps1 | iex

Download msvg 0.4.0

File Platform Checksum
msvg-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
msvg-x86_64-apple-darwin.tar.xz Intel macOS checksum
msvg-x86_64-pc-windows-msvc.zip x64 Windows checksum
msvg-x86_64-pc-windows-msvc.msi x64 Windows checksum
msvg-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
msvg-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

vsvg-cli 0.4.0

Install vsvg-cli 0.4.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.4.0/vsvg-cli-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.4.0/vsvg-cli-installer.ps1 | iex

Download vsvg-cli 0.4.0

File Platform Checksum
vsvg-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
vsvg-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
vsvg-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
vsvg-cli-x86_64-pc-windows-msvc.msi x64 Windows checksum
vsvg-cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
vsvg-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Version 0.4.0-rc.0

20 Jan 16:47
Compare
Choose a tag to compare
Version 0.4.0-rc.0 Pre-release
Pre-release

Release Notes

TODO

msvg 0.4.0-rc.0

Install msvg 0.4.0-rc.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.4.0-rc.0/msvg-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.4.0-rc.0/msvg-installer.ps1 | iex

Download msvg 0.4.0-rc.0

File Platform Checksum
msvg-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
msvg-x86_64-apple-darwin.tar.xz Intel macOS checksum
msvg-x86_64-pc-windows-msvc.zip x64 Windows checksum
msvg-x86_64-pc-windows-msvc.msi x64 Windows checksum
msvg-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
msvg-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

vsvg-cli 0.4.0-rc.0

Install vsvg-cli 0.4.0-rc.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.4.0-rc.0/vsvg-cli-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.4.0-rc.0/vsvg-cli-installer.ps1 | iex

Download vsvg-cli 0.4.0-rc.0

File Platform Checksum
vsvg-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
vsvg-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
vsvg-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
vsvg-cli-x86_64-pc-windows-msvc.msi x64 Windows checksum
vsvg-cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
vsvg-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

0.3.0 - New `msvg` CLI, better `whiskers`, and more

28 Dec 08:37
Compare
Choose a tag to compare

Release Notes

Released 2023-12-28

Highlights

  • Inspect SVG collections with the new, blazing fast msvg CLI (early alpha stage).
  • whiskers improvements:
    • New hexagonal grid helper.
    • Support for nested struct in sketch param.

whiskers crates

  • Add support for custom struct as sketch parameter #66
  • Add hexagonal grid helper #60 (thanks @afternoon2!)
  • Change HexGrid::spacing() to accept a single scalar and maintain hexagonal grid #72 (thanks @karliss!)
  • Implement step UI parameter for numeric value in normal mode #58

msvg CLI

  • First prototype of msvg #68
  • Improve msvg's file list side panel and add file name overlay #76
  • Fix blank window on first start #81

vsvg CLI

  • Add "merge layers" operation to vsvg and vsvg-cli #61
  • Add --strokewidth <W> command to override the stroke width of all paths #62
  • Add --flatten <TOL> command to flatten all curves with the provided tolerance #63

vsvg-viewer crate

  • Improve ViewerApp hooks to give implementers more flexibility #71
  • Add input handle hook to the ViewerApp trait #74
  • Add ListItem UI widget #75

Common

  • Fit to view on double click #73
  • Add binary publishing support with cargo-dist #78
  • Update CHANGELOG.md for compatibility with cargo-dist and add automation script #79
  • Add plausible.io traffic monitoring to https://whisk.rs 1228521
  • Update to egui 0.24 and wgpu 0.18 #64

Contributors

afternoon2 karliss

Full Changelog: v0.2.0...v0.3.0

msvg 0.3.0

Install msvg 0.3.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.3.0/msvg-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.3.0/msvg-installer.ps1 | iex

Download msvg 0.3.0

File Platform Checksum
msvg-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
msvg-aarch64-unknown-linux-gnu.tar.xz Linux arm64 checksum
msvg-x86_64-apple-darwin.tar.xz macOS Intel checksum
msvg-x86_64-pc-windows-msvc.zip Windows x64 checksum
msvg-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum
msvg-x86_64-pc-windows-msvc.msi Windows x64 checksum

vsvg-cli 0.3.0

Install vsvg-cli 0.3.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.3.0/vsvg-cli-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.3.0/vsvg-cli-installer.ps1 | iex

Download vsvg-cli 0.3.0

File Platform Checksum
vsvg-cli-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
vsvg-cli-aarch64-unknown-linux-gnu.tar.xz Linux arm64 checksum
vsvg-cli-x86_64-apple-darwin.tar.xz macOS Intel checksum
vsvg-cli-x86_64-pc-windows-msvc.zip Windows x64 checksum
vsvg-cli-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum
vsvg-cli-x86_64-pc-windows-msvc.msi Windows x64 checksum

Version 0.3.0-rc.3

27 Dec 21:22
Compare
Choose a tag to compare
Version 0.3.0-rc.3 Pre-release
Pre-release

Release Notes

whiskers crates

  • Add support for custom struct as sketch parameter #66
  • Add hexagonal grid helper #60 (thanks @afternoon2!)
  • Change HexGrid::spacing() to accept a single scalar and maintain hexagonal grid #72 (thanks @karliss!)
  • Implement step UI parameter for numeric value in normal mode #58

msvg CLI

  • First prototype of msvg #68
  • Improve msvg's file list side panel and add file name overlay #76
  • Fix blank window on first start #81

vsvg CLI

  • Add "merge layers" operation to vsvg and vsvg-cli #61
  • Add --strokewidth <W> command to override the stroke width of all paths #62
  • Add --flatten <TOL> command to flatten all curves with the provided tolerance #63

vsvg-viewer crate

  • Improve ViewerApp hooks to give implementers more flexibility #71
  • Add input handle hook to the ViewerApp trait #74
  • Add ListItem UI widget #75

Common

  • Fit to view on double click #73
  • Add binary publishing support with cargo-dist #78
  • Update CHANGELOG.md for compatibility with cargo-dist and add automation script #79
  • Add plausible.io traffic monitoring to https://whisk.rs 1228521
  • Update to egui 0.24 and wgpu 0.18 #64

Full Changelog: v0.2.0...v0.3.0

msvg 0.3.0-rc.3

Install msvg 0.3.0-rc.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.3/msvg-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.3/msvg-installer.ps1 | iex

Download msvg 0.3.0-rc.3

File Platform Checksum
msvg-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
msvg-aarch64-unknown-linux-gnu.tar.xz Linux arm64 checksum
msvg-x86_64-apple-darwin.tar.xz macOS Intel checksum
msvg-x86_64-pc-windows-msvc.zip Windows x64 checksum
msvg-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum
msvg-x86_64-pc-windows-msvc.msi Windows x64 checksum

vsvg-cli 0.3.0-rc.3

Install vsvg-cli 0.3.0-rc.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.3/vsvg-cli-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.3/vsvg-cli-installer.ps1 | iex

Download vsvg-cli 0.3.0-rc.3

File Platform Checksum
vsvg-cli-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
vsvg-cli-aarch64-unknown-linux-gnu.tar.xz Linux arm64 checksum
vsvg-cli-x86_64-apple-darwin.tar.xz macOS Intel checksum
vsvg-cli-x86_64-pc-windows-msvc.zip Windows x64 checksum
vsvg-cli-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum
vsvg-cli-x86_64-pc-windows-msvc.msi Windows x64 checksum

Version 0.3.0-rc.2

27 Dec 20:42
Compare
Choose a tag to compare
Version 0.3.0-rc.2 Pre-release
Pre-release

Release Notes

whiskers crates

  • Add support for custom struct as sketch parameter #66
  • Add hexagonal grid helper #60 (thanks @afternoon2!)
  • Change HexGrid::spacing() to accept a single scalar and maintain hexagonal grid #72 (thanks @karliss!)
  • Implement step UI parameter for numeric value in normal mode #58

msvg CLI

  • First prototype of msvg #68
  • Improve msvg's file list side panel and add file name overlay #76
  • Fix blank window on first start #81

vsvg CLI

  • Add "merge layers" operation to vsvg and vsvg-cli #61
  • Add --strokewidth <W> command to override the stroke width of all paths #62
  • Add --flatten <TOL> command to flatten all curves with the provided tolerance #63

vsvg-viewer crate

  • Improve ViewerApp hooks to give implementers more flexibility #71
  • Add input handle hook to the ViewerApp trait #74
  • Add ListItem UI widget #75

Common

Full Changelog: v0.2.0...v0.3.0

msvg 0.3.0-rc.2

Install msvg 0.3.0-rc.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.2/msvg-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.2/msvg-installer.ps1 | iex

Download msvg 0.3.0-rc.2

File Platform Checksum
msvg-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
msvg-x86_64-apple-darwin.tar.xz macOS Intel checksum
msvg-x86_64-pc-windows-msvc.zip Windows x64 checksum
msvg-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum
msvg-x86_64-pc-windows-msvc.msi Windows x64 checksum

vsvg-cli 0.3.0-rc.2

Install vsvg-cli 0.3.0-rc.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.2/vsvg-cli-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.2/vsvg-cli-installer.ps1 | iex

Download vsvg-cli 0.3.0-rc.2

File Platform Checksum
vsvg-cli-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
vsvg-cli-x86_64-apple-darwin.tar.xz macOS Intel checksum
vsvg-cli-x86_64-pc-windows-msvc.zip Windows x64 checksum
vsvg-cli-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum
vsvg-cli-x86_64-pc-windows-msvc.msi Windows x64 checksum

Version 0.3.0-rc.1

27 Dec 15:26
Compare
Choose a tag to compare
Version 0.3.0-rc.1 Pre-release
Pre-release

Release Notes

whiskers crates

  • Add support for custom struct as sketch parameter #66
  • Add hexagonal grid helper #60 (thanks @afternoon2!)
  • Change HexGrid::spacing() to accept a single scalar and maintain hexagonal grid #72 (thanks @karliss!)
  • Implement step UI parameter for numeric value in normal mode #58

msvg CLI

  • First prototype of msvg #68
  • Improve msvg's file list side panel and add file name overlay #76

vsvg CLI

  • Add "merge layers" operation to vsvg and vsvg-cli #61
  • Add --strokewidth <W> command to override the stroke width of all paths #62
  • Add --flatten <TOL> command to flatten all curves with the provided tolerance #63

vsvg-viewer crate

  • Improve ViewerApp hooks to give implementers more flexibility #71
  • Add input handle hook to the ViewerApp trait #74
  • Add ListItem UI widget #75

Common

Full Changelog: v0.2.0...v0.3.0

msvg 0.3.0-rc.1

Install msvg 0.3.0-rc.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.1/msvg-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.1/msvg-installer.ps1 | iex

Download msvg 0.3.0-rc.1

File Platform Checksum
msvg-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
msvg-x86_64-apple-darwin.tar.xz macOS Intel checksum
msvg-x86_64-pc-windows-msvc.zip Windows x64 checksum
msvg-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum
msvg-x86_64-pc-windows-msvc.msi Windows x64 checksum

vsvg-cli 0.3.0-rc.1

Install vsvg-cli 0.3.0-rc.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.1/vsvg-cli-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/abey79/vsvg/releases/download/v0.3.0-rc.1/vsvg-cli-installer.ps1 | iex

Download vsvg-cli 0.3.0-rc.1

File Platform Checksum
vsvg-cli-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
vsvg-cli-x86_64-apple-darwin.tar.xz macOS Intel checksum
vsvg-cli-x86_64-pc-windows-msvc.zip Windows x64 checksum
vsvg-cli-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum
vsvg-cli-x86_64-pc-windows-msvc.msi Windows x64 checksum

whiskers / vsvg 0.2.0

22 Oct 12:20
Compare
Choose a tag to compare

What's Changed

New features

  • Add support for Catmull-Rom splines by @abey79 in #36
  • Add some rng_XXX convenience functions to whiskers::Context and make rng_range generic over type by @afternoon2 in #35
  • Add Grid helper for grid-based layout by @afternoon2 in #43
  • Add logarithmic slider support to numerical sketch parameter by @abey79 in #39
  • Add support for vsvg::Color sketch parameters by @abey79 in #41
  • Add an example to demo the use of the noise-rs crate by @abey79 in #42
  • Add in-process profiling with puffin and parallelize some layer-level operations by @abey79 in #44
  • Bump egui to 0.23 and wgpu to 0.17 by @abey79 in #54

Performance

  • Improve performance of noise example by @abey79 in #45
  • Refactor vsvg-viewer to defer all unneeded render data generation by @abey79 in #49
  • Fix frame profiling order by @abey79 in #51
  • Add tolerance control and vertex count display to vsvg-viewer by @abey79 in #50
  • Parallelize native CI jobs by @abey79 in #37

Fixes

  • Fix README paths linked from main README by @reidab in #34
  • Rename whiskers::Runner::with_layout_options for consistency by @abey79 in #38
  • Fix spurious colon in bool UI widget label by @abey79 in #40

New Contributors

Full Changelog: v0.1.0...v0.2.0

whiskers / vsvg 0.1.0

01 Oct 13:59
Compare
Choose a tag to compare

Initial release, including:

  • vsvg
  • vsvg-viewer
  • vsvg-cli
  • whiskers
  • whiskers-derive

Note: msvg is still WIP and not included in this release.

Thanks to @afternoon2 for the contribution!

whiskers / vsvg 0.1.0-alpha.3

01 Oct 11:40
Compare
Choose a tag to compare
Pre-release

What's Changed

  • improved READMEs
  • fixed quad bezier disappearing upon import
  • minor API improvements
  • add installation note and some fixes to readme files by @afternoon2 in #30
  • remove a useless dependency

Full Changelog: v0.1.0-alpha.2...v0.1.0-alpha.3

whiskers / vsvg 0.1.0-alpha.2

30 Sep 20:11
Compare
Choose a tag to compare
Pre-release

What's Changed

  • fix another use:: build time errors by @afternoon2 in #29
  • cleaned Cargo.toml files
  • removed buggy and actually useless "bevy" feature from vsvg

Full Changelog: v0.1.0-alpha.1...v0.1.0-alpha.2