Skip to content

Releases

SlintPlot 0.5.1

Choose a tag to compare

@trondegil trondegil released this 12 Nov 10:32

Added

  • integer-ticks on line, bar, horizontal bar, scatter, bubble and time
    series charts: the value axes step by at least 1. For values that are
    counted, such as people or items, where a short range otherwise gets
    ticks at 0.5 or 0.2: a largest value of 3 gives 0, 1, 2, 3. Off by
    default; a scale that already steps by 1 or more is unchanged.

Fixed

  • Stacked bars with a bar-radius are rounded at the ends of the whole
    stack only, so a stack reads as one bar: every segment used to be rounded
    on all four corners, which left notches between them. A zero value or a
    hidden dataset at the end of a stack passes the rounding on to the
    segment next to it, and stacks above and below zero are square where they
    meet. Bars side by side are rounded as before.
  • The legend's swatches are filled with the chart's own fill-opacity, on
    bar, line, horizontal bar, candlestick and waterfall charts: they used the
    theme's, so a chart with solid bars had pale swatches.

Website

  • The blog's front page shows the picture of each post.

Example apps

  • Gallery: the segmented ring and tile grid samples with four charts show
    one at a time, picked above the chart, on phones and small windows, where
    four were too small to read. The code button shows the code of the chart
    shown.

Gallery and stress apps 0.5.1

Choose a tag to compare

@trondegil trondegil released this 12 Nov 10:32

The example apps for SlintPlot 0.5.1, built with the new library:

  • slintplot-gallery: a sample browser with every chart type, a theme picker, dark mode, and buttons to randomize, add and remove data. New: the segmented ring and tile grid samples with four charts show one at a time, picked above the chart, on phones and in small windows, where four were too small to read; the code button shows the code of the chart shown. Clicking a chart shows what was clicked. The code button opens each sample as a small app that runs as it is. slintplot-gallery --snapshot <dir> renders every sample to PNG.
  • slintplot-stress: streams up to 8 datasets at 10 to 100,000 samples a second into a window of 1,000 to 10,000,000 values or everything received, with zoom and live frame times. slintplot-stress --bench prints headless timings with the software renderer, and --bench-gpu times the same charts with Skia on the GPU.

Both apps draw with Slint's FemtoVG renderer by default; start them with SLINT_BACKEND=winit-software for the software renderer. Built with --features skia, they also run with SLINT_BACKEND=winit-skia. See Choosing a renderer.

What's new in the library: see the 0.5.1 release. Stacked bars with a bar-radius are rounded at the ends of each stack only, the legend's swatches have the chart's own fill-opacity, and integer-ticks keeps the value axis in whole numbers for counted values.

Download

Ready-built apps for macOS (Apple silicon and Intel), Windows and Linux are attached below. Each archive holds both apps, SlintPlot's licenses, Slint's license (LICENSE-SLINT.md) and the licenses of the open-source crates they are built from (THIRD-PARTY-LICENSES.html). They include the FemtoVG and software renderers, not Skia.

  • macOS: the apps aren't signed. After unpacking, run xattr -d com.apple.quarantine slintplot-gallery slintplot-stress in the folder, or right-click the app and choose Open.
  • Linux: needs fontconfig and xkbcommon, which most desktops already have.

Install with Cargo

cargo install slintplot-gallery
cargo install slintplot-stress
cargo install slintplot-gallery --features skia   # with Slint's Skia renderer

License

SlintPlot is free to try: download it, experiment and build prototypes, at home or at work. It is available under the GPLv3, the PolyForm Noncommercial License 1.0.0, or a commercial license for closed-source products: see Pricing.

Made with Slint

SlintPlot 0.5.0

Choose a tag to compare

@trondegil trondegil released this 04 Nov 16:37

Added

  • legend-attached on pie, doughnut, polar area, radar, radial bar,
    sunburst, segmented ring and tile grid charts, on by default: the legend
    stays next to the chart instead of at the edge of its area, which was far
    away when the area was much taller or wider than the round or square
    chart in it. false keeps it at the edge, as before.

Changed

  • The focus ring round a chart shows only when the keyboard brought the
    focus (Tab) or has been used since, not after a click, as :focus-visible
    on the web. Clicking still gives the chart the arrow keys.

Example apps

  • Gallery: the line chart with and without points, the pie chart with
    and without data labels, and the radar chart with lines and filled are one
    sidebar entry each, with a tab per variant; the filled radar chart moves
    from Area charts to the radar chart.
  • Stress test: --bench-gpu [dir] times the same charts as --bench
    with a GPU renderer, Skia on macOS, drawing each frame with
    Window::take_snapshot so that the GPU's work is included; with a folder,
    it saves every frame as a PNG.
  • Both apps: a skia feature builds them with Slint's Skia renderer, to
    run with SLINT_BACKEND=winit-skia.

Tested

  • Skia: every gallery sample draws correctly with Slint's Skia renderer on
    macOS, Linux and Windows, as with FemtoVG and the software renderer.

Documentation

  • A compatibility box next to Getting started: Rust only, the Slint and
    Rust versions, the platforms and renderers tested, and no live preview.
  • Performance: how many points or items each chart can show at 60 fps,
    30 fps and within a second, with the software renderer and with Skia, and
    why the numbers look as they do. The full results moved to a new
    benchmarks page, measured again with SlintPlot 0.5.0 and Slint 1.18.1, with
    Skia's numbers and how to repeat them.
  • How to choose a renderer for the example apps.
  • "Request a commercial license" until checkout opens.

Website

  • A library release (v*) no longer cancels the deploy of the apps
    release that follows it.

Gallery and stress apps 0.5.0

Choose a tag to compare

@trondegil trondegil released this 04 Nov 16:37

The example apps for SlintPlot 0.5.0, built with the new library:

  • slintplot-gallery: a sample browser with every chart type, a theme picker, dark mode, and buttons to randomize, add and remove data. Line charts with and without points, pie charts with and without data labels, and radar charts with lines and filled are now one entry each, with a tab per variant. The legend of round and square charts stays next to the chart in a tall or wide window, and the focus ring shows only after keyboard use. Clicking a chart shows what was clicked. The code button opens each sample as a small app that runs as it is. slintplot-gallery --snapshot <dir> renders every sample to PNG.
  • slintplot-stress: streams up to 8 datasets at 10 to 100,000 samples a second into a window of 1,000 to 10,000,000 values or everything received, with zoom and live frame times. slintplot-stress --bench prints headless timings with the software renderer; new, --bench-gpu times the same charts with Skia on the GPU.

Both apps draw with Slint's FemtoVG renderer by default; start them with SLINT_BACKEND=winit-software for the software renderer. Built with --features skia, they also run with SLINT_BACKEND=winit-skia. See Choosing a renderer.

What's new in the library: see the 0.5.0 release. The website has a new benchmarks page, and Performance shows how many points or items each chart can show at 60 fps, 30 fps and within a second.

Download

Ready-built apps for macOS (Apple silicon and Intel), Windows and Linux are attached below. Each archive holds both apps, SlintPlot's licenses, Slint's license (LICENSE-SLINT.md) and the licenses of the open-source crates they are built from (THIRD-PARTY-LICENSES.html). They include the FemtoVG and software renderers, not Skia.

  • macOS: the apps aren't signed. After unpacking, run xattr -d com.apple.quarantine slintplot-gallery slintplot-stress in the folder, or right-click the app and choose Open.
  • Linux: needs fontconfig and xkbcommon, which most desktops already have.

Install with Cargo

cargo install slintplot-gallery
cargo install slintplot-stress
cargo install slintplot-gallery --features skia   # with Slint's Skia renderer

License

SlintPlot is free to try: download it, experiment and build prototypes, at home or at work. It is available under the GPLv3, the PolyForm Noncommercial License 1.0.0, or a commercial license for closed-source products: see Pricing.

Made with Slint

SlintPlot 0.4.3

Choose a tag to compare

@trondegil trondegil released this 03 Nov 14:38

Fixed

  • FunnelChart: on Linux, Windows and in browsers, where Slint draws with
    femtovg, every stage was drawn a pixel larger all round, so the gap
    between stages was about half of gap, with a stray line at its ends.
    The stages are now drawn counterclockwise and back to their start, as the
    other charts' shapes since 0.4.2, and a test checks that Slint takes them
    as solid.

SlintPlot 0.4.2

Choose a tag to compare

@trondegil trondegil released this 03 Nov 14:13

Fixed

  • SegmentedRingChart, TileGridChart, and the slices and rings of pie,
    doughnut, polar area, radial bar, gauge and sunburst charts: on Linux,
    Windows and in browsers, where Slint draws with femtovg, some cells merged
    into solid bands and gaps closed, on one half of a segmented ring chart and
    in every tile grid. Slint's femtovg renderer works out from a shape's
    points whether it is solid or a hole, leaving out the closing edge, so the
    answer depended on where the shape was; it draws a hole's smoothed edge a
    pixel outside it. Every shape is now drawn counterclockwise and back to its
    start, which Slint takes as solid wherever it is.

SlintPlot 0.4.1

Choose a tag to compare

@trondegil trondegil released this 03 Nov 13:42

Fixed

  • SegmentedRingChart: the gaps between segments are as wide in every ring,
    with parallel sides, and at least 2px. They were a share of each segment's
    angle, so they widened outwards and, on screens of 1 pixel per point such
    as most Linux desktops and browsers, looked uneven where they were under 2
    pixels. segment-gap is now a share of a segment of the inner ring.

SlintPlot 0.4.0

Choose a tag to compare

@trondegil trondegil released this 03 Nov 13:07

Added

  • SegmentedRingChart: a heatmap bent into concentric rings. values is a
    matrix ([[float]]), one row per ring, the first outermost, and one
    segment per column, going round from start-angle, either way. The matrix
    sets the size: as many rings as rows and as many segments as the longest
    row, so data of any shape fits without settings; shorter rows and missing
    values (NaN) are left as a faint track. Cells are colored on a scale, as in
    HeatmapChart (color, diverging, fixed-range), with a color scale
    legend, or by category: with classes set, each value is a category index,
    and the categories make a legend that hides them. x-labels go round the
    outside, thinned where they don't fit, and y-labels name the rings in the
    tooltip. center-text and center-label are written in the middle, and
    hovering a cell shows it there instead. A dot can mark the start, and
    glow adds a soft light in the middle. The cells sweep in when the chart
    appears; the arrow keys go round and between the rings, and
    cell-clicked(row, column) reports clicks.

  • TileGridChart: a matrix as rows of rounded squares, one per value, like
    an activity grid. It takes its data as SegmentedRingChart does: values
    is a matrix ([[float]]), one row of tiles per row, and the matrix sets the
    size, the tiles staying square, as large as fit, and centered. Cells are
    colored on a scale or by category (classes), with the same properties; missing
    values are empty tiles, a faint track. y-labels go at the left and
    x-labels below, thinned where they don't fit; tile-gap and
    tile-radius shape the tiles. The tiles sweep in from the left; hovering
    outlines a tile with a tooltip, the arrow keys move from tile to tile, and
    cell-clicked(row, column) reports clicks.

Example apps

  • Gallery: builds without Slint's binding loop warnings. The window
    shrinks to phone width, so a browser window made narrower switches to the
    phone layout instead of cutting off the page; the layout switches at 900px
    instead of 720px, where the sample list and header no longer fit beside the
    chart.
    Samples of the two new charts under Heatmaps, each one sidebar entry with
    two tabs, by category and on a scale, of four charts of different sizes and
    uses. They follow the theme, with their own colors only where the colors
    carry meaning, such as green, amber and red for a service's status; on the
    segmented ring category page and both tile grid pages, a second dropdown
    under the theme picker switches between the theme's colors and these. The heatmap sample shows
    the visits in each cell, in two-hour blocks so that the numbers fit.
  • Stress test: segmented ring and tile grid charts, on a scale and by
    category, from 100 to 1,000,000 cells.
  • Fuzz test: the two new charts, for 25 chart types.

Gallery and stress apps 0.4.3

Choose a tag to compare

@trondegil trondegil released this 03 Nov 14:38

The example apps for SlintPlot 0.4.3, built with the new library:

  • slintplot-gallery: a sample browser with every chart type, including the new segmented ring and tile grid charts, in tabs by category and on a scale; a theme picker, dark mode, and buttons to randomize, add and remove data. Clicking a chart shows what was clicked. The code button opens each sample as a small app that runs as it is, in tabs: ui/app.slint with the chart's data, src/main.rs, build.rs, Cargo.toml and how to run it. In the Gantt sample, clicking a task opens a dialog that edits it. slintplot-gallery --snapshot <dir> renders every sample to PNG.
  • slintplot-stress: streams up to 8 datasets at 10 to 100,000 samples a second into a window of 1,000 to 10,000,000 values or everything received, with line, bar, time series and scatter charts and more, with zoom and live frame times. slintplot-stress --bench prints headless timings.

What's new in the library: funnel stages keep their gaps on Linux, Windows and in the browser, as the segmented ring, tile grid and radial charts do since 0.4.2. See the 0.4.3 release; the 0.4.0 release added the segmented ring and tile grid charts.

Download

Ready-built apps for macOS (Apple silicon and Intel), Windows and Linux are attached below. Each archive holds both apps, SlintPlot's licenses, Slint's license (LICENSE-SLINT.md) and the licenses of the open-source crates they are built from (THIRD-PARTY-LICENSES.html).

  • macOS: the apps aren't signed. After unpacking, run xattr -d com.apple.quarantine slintplot-gallery slintplot-stress in the folder, or right-click the app and choose Open.
  • Linux: needs fontconfig and xkbcommon, which most desktops already have.

Install with Cargo

cargo install slintplot-gallery
cargo install slintplot-stress

License

SlintPlot is free to try: download it, experiment and build prototypes, at home or at work. It is available under the GPLv3, the PolyForm Noncommercial License 1.0.0, or a commercial license for closed-source products: see Pricing.

Made with Slint

Gallery and stress apps 0.4.2

Choose a tag to compare

@trondegil trondegil released this 03 Nov 14:13

The example apps for SlintPlot 0.4.2, built with the new library:

  • slintplot-gallery: a sample browser with every chart type, including the new segmented ring and tile grid charts, in tabs by category and on a scale; a theme picker, dark mode, and buttons to randomize, add and remove data. Clicking a chart shows what was clicked. The code button opens each sample as a small app that runs as it is, in tabs: ui/app.slint with the chart's data, src/main.rs, build.rs, Cargo.toml and how to run it. In the Gantt sample, clicking a task opens a dialog that edits it. slintplot-gallery --snapshot <dir> renders every sample to PNG.
  • slintplot-stress: streams up to 8 datasets at 10 to 100,000 samples a second into a window of 1,000 to 10,000,000 values or everything received, with line, bar, time series and scatter charts and more, with zoom and live frame times. slintplot-stress --bench prints headless timings.

What's new in the library: segmented ring and tile grid charts, and the slices and rings of the radial charts, draw their gaps correctly on Linux, Windows and in the browser, where some cells merged before. See the 0.4.2 release; the 0.4.0 release added the segmented ring and tile grid charts.

Download

Ready-built apps for macOS (Apple silicon and Intel), Windows and Linux are attached below. Each archive holds both apps, SlintPlot's licenses, Slint's license (LICENSE-SLINT.md) and the licenses of the open-source crates they are built from (THIRD-PARTY-LICENSES.html).

  • macOS: the apps aren't signed. After unpacking, run xattr -d com.apple.quarantine slintplot-gallery slintplot-stress in the folder, or right-click the app and choose Open.
  • Linux: needs fontconfig and xkbcommon, which most desktops already have.

Install with Cargo

cargo install slintplot-gallery
cargo install slintplot-stress

License

SlintPlot is free to try: download it, experiment and build prototypes, at home or at work. It is available under the GPLv3, the PolyForm Noncommercial License 1.0.0, or a commercial license for closed-source products: see Pricing.

Made with Slint