Aioros.Pictor 0.1.0-preview.1

This is a prerelease version of Aioros.Pictor.
dotnet add package Aioros.Pictor --version 0.1.0-preview.1
                    
NuGet\Install-Package Aioros.Pictor -Version 0.1.0-preview.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aioros.Pictor" Version="0.1.0-preview.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aioros.Pictor" Version="0.1.0-preview.1" />
                    
Directory.Packages.props
<PackageReference Include="Aioros.Pictor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aioros.Pictor --version 0.1.0-preview.1
                    
#r "nuget: Aioros.Pictor, 0.1.0-preview.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Aioros.Pictor@0.1.0-preview.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aioros.Pictor&version=0.1.0-preview.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Aioros.Pictor&version=0.1.0-preview.1&prerelease
                    
Install as a Cake Tool

<img src="assets/icon/pictor.svg" alt="Pictor" width="72" height="72" align="right">

Aioros.Pictor

Preview. Aioros and its libraries are in preview: APIs may change between releases, and it is not yet recommended for production.

The chart library of the Aioros ecosystem: charts in pure XAML, on the web and natively, drawn by the chart engine Aioros.Graphs. Named after the Pictor constellation, the painter's easel.

Its charts follow Recharts' API and look, the reference its comparison pages measure against. Pictor is an independent port of Recharts and is not affiliated with or endorsed by the Recharts project. Recharts and recharts-scale are MIT-licensed; their notices are in THIRD-PARTY-NOTICES.md, which every package carries.

<p:LineChart Data="{Binding Sales}">
  <p:CartesianGrid StrokeDashArray="3 3" />
  <p:XAxis DataKey="Month" />
  <p:YAxis />
  <p:Tooltip />
  <p:Legend />
  <p:Line Type="Monotone" DataKey="Revenue" Stroke="#8884d8" />
</p:LineChart>

The same chart on both of Aioros's targets, with the reference's defaults:

  • Web: the chart is written as Recharts' SVG markup straight into the response, per request, from the page's compiled plan, without the XAML engine and without JavaScript authored by the app. What moves in the browser is CSS or a behavior of Aioros's framework script that the chart's markup declares.
  • Desktop: the same control draws itself natively through its DrawingContext, one geometry per series.

The port covers Recharts 2.15.4's whole API (docs/coverage.md: every export, prop and behavior done or not applicable, with its criteria):

  • Charts: LineChart, AreaChart, BarChart, ComposedChart, ScatterChart, PieChart, RadarChart, RadialBarChart, FunnelChart, Treemap, Sankey and SunburstChart, with horizontal and vertical layouts, axes and scales, ErrorBar, ReferenceLine, ReferenceArea, ReferenceDot, Brush (with its panorama), ZAxis, Legend, Tooltip, Label, LabelList, Cell, gradients, and every reference example compared with Recharts' own render.
  • Interactive on the web: tooltips, cursors and active shapes on hover, the tooltip following the pointer; touch (a finger dragged across a chart moves its tooltip) and the keyboard (AccessibilityLayer); clicks on items, legend entries and axis ticks as commands; legend toggles; the Brush's travellers and slide; a nest treemap's zoom; SyncId across charts; live charts pushed by the server. The desktop does the same natively.
  • Animations: Recharts' enter animations and its update animations from the previous data to the new, on both targets, honouring reduced motion.
  • A native XAML control: PictorTheme (Recharts' light theme, a dark theme, Fluent's and Semi's resources through PictorTheme.Host), resource keys overridable per app, page or chart, styles and control themes on chart elements, data binding of every property on both targets, automation peers on the desktop, and custom content (Recharts' shape, dot, tick, label, content...) as XAML DataTemplates.
  • A chart that fills its parent can be laid out at several widths on the web (ResponsiveWidths), and a compiled page writes a chart again from its kept markup while its data does not change.

The Gallery is Pictor's demo: a live analytics dashboard as its home page, a page per chart family, feature pages (interactions, tooltips, themes, updates, custom content, live charts), /families with every interaction on every family, and /compare/{family} with each reference example beside Recharts' screenshot and its measured verdicts.

Performance is the point: see docs/benchmarks.md and docs/performance-history.md.

Start an app

dotnet new pictor creates an Aioros app built with Pictor: its home page is a live analytics dashboard (KPIs with sparklines, traffic compared with yesterday and a brush over it, live events, top pages, traffic sources, a conversion funnel and devices) for three dummy products, pushed by the server, on the web and the desktop:

dotnet new install Aioros.Pictor.Templates
dotnet new pictor -n Metrics
cd Metrics && aioros dev

Layout

Project Role
src/Aioros.Pictor Specs, data, layout (Recharts' algorithms), the painter and the SVG writer Aioros calls at request time. No UI framework.
src/Aioros.Pictor.Avalonia The XAML controls and the desktop canvas.
tests/Aioros.Pictor.Tests One test per acceptance criterion, many against Recharts' own output.
tests/Aioros.Pictor.ArchitectureTests Criteria coverage and the code rules.
bench/Aioros.Pictor.Benchmarks BenchmarkDotNet; tools/recharts/bench.mjs measures Recharts on the same examples.
samples/Gallery Pictor's demo, an Aioros app: a live analytics dashboard as its home page, every chart family, the features and the comparison pages, on the web and on the desktop.
samples/Demo The benchmark's comparison page (each Recharts example drawn by Pictor beside Recharts' own render, with a verdict and timings, samples/Demo/out/index.html) and the browser check scripts.
tools/recharts Renders the reference examples with Recharts 2.15.4 (server and Chromium) and measures it (Node).
tools/golden Generates the golden tick cases from recharts-scale.
dotnet build Aioros.Pictor.slnx -m:4
dotnet test --solution Aioros.Pictor.slnx
dotnet run --project samples/Gallery/Gallery              # the Gallery on the web, http://localhost:3010
dotnet run --project samples/Gallery/Gallery -- --desktop  # the same pages in the native window
samples/Demo/run.sh                                        # a benchmark run: the comparison page, samples/Demo/out/index.html

samples/Demo/run.sh installs tools/recharts' Node packages when they are missing, measures every example on both sides and records its raw results under bench/results (docs/benchmarks.md).

Building

Aioros and Aioros.Graphs come from nuget.org.

The SDK is Aioros's (global.json); link Aioros's repository-local SDK: ln -s ../aioros/.dotnet .dotnet.

License and attribution

MIT, as the whole Aioros ecosystem: see LICENSE. The layout follows Recharts and recharts-scale (MIT) and texts are measured with Inter's metrics (SIL OFL 1.1); their notices are in THIRD-PARTY-NOTICES.md.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Aioros.Pictor:

Package Downloads
Aioros.Pictor.Avalonia

Recharts' cartesian charts as Avalonia XAML controls: drawn through DrawingContext on the desktop, written by Aioros as Recharts' SVG per request on the web.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.1 67 11/9/2026