Quantcast
Channel: SciChart
Viewing all 303 articles
Browse latest View live

Changes to the SciChart Forum Permissions

$
0
0

We had a little bit of a spam problem recently on the SciChart Forums, so we’ve enabled a reputational based system for posting questions, answers and comments. This article talks about the changes and what permissions you will have and how you can earn better permissions through earning rep!

The Rep Scheme on SciChart Forums

Similar to StackOverflow, by asking questions which get voted up, answering questions which get voted up or accepted, or accepting answers, you can earn reputation. Below is a table of the actions you can take and what rep you can earn.

ActionRep Earned
One of your questions is voted up+5
One of your questions is voted down-2
One of your answers is voted up+10
One of your answers is voted down-2
One of your answers is accepted+15
You accept an answer+2
You vote an answer down-1
One of your questions is deleted as spam-100
Table of reputation earned on the SciChart Forums allowing you to post comments or answers without approval

What Reputation do you need to post / answer or comment?

Actions everyone can do with zero rep

Everyone starts off with zero rep but you can quickly earn rep allowing you more permissions. Here’s what you can do with zero rep:

ActionRep Required
Ask a question with moderator approval0
Edit your own question0
Comment on your own question0
Edit your own comments0
Delete your own comments0
Close your own questions0
Add an answer with moderator approval0
Edit your own answers0
Delete your own answers0
Edit own comments on answers0
Delete your own comments0

Note that if a question or answer is marked as spam you will quickly get -100 rep and it will be a while before you can post again.

Actions that require earning rep

Some actions will require you to earn rep before you can carry them out. These include:

ActionRep Required
Ask question without moderator approval10
Add answer without moderator approval10
Vote up questions / answers15
Vote down questions / answers125
Add comments to questions / answers50

When your questions (posts) or answers require moderation

As a completely new user to the SciChart forums, you will still be able to post questions & answers, but they will require moderation.

An email will be sent to our team who will approve a question or answer as soon as possible. If the question is well formatted and valuable they will also vote it up! This will start you on the journey to unlocking privileges by earning rep.

How to Earn Rep quickly to unlock privileges!

To earn rep quickly all you have to do is ask a few good questions, our moderators will vote up the questions giving you +5 rep per question asked.

If you answer a question and this is voted up and accepted as answer, you will earn +10 and +25 respectively.

Lastly, if you do have +15 or more rep you can vote up other people’s questions or answers in order to encourage the community.

Thanks and happy forum posting!

Best regards,
Andrew

The post Changes to the SciChart Forum Permissions appeared first on SciChart.


SciChart WPF v6.6 Released!

$
0
0

We’re delighted to announce SciChart WPF v6.6 has now completed it’s BETA testing phase and SciChart WPF v6.6 build 26505 has been released! This update includes a number of stability fixes and enhancements.

What’s New in SciChart WPF v6.6?

There is a number of new features, examples and improvements in SciChart WPF v6.6. We’ve compiled a list over at the page SciChart WPF v6.6 Beta Released. Take a look! There are over ten new features, three new examples and many improvements to our High Performance WPF Chart Library.

Disabling VisualXccelerator Option

Since SciChart v6.5, VisualXccelerator Engine, hardware-accelerated renderer, is used by SciChartSurface as default render. Normally SciChart uses autodetection to determine whether hardware acceleration is supported by a running machine, and falls back automatically to software rendering if it isn’t.

However, autodetection is not always possible. It fails sometimes when SciChart is run by virtual machines or other limited environments, that are often used as build servers.

For such cases, we added a static property VisualXcceleratorEngine.IsEnabledByDefault. Setting it to “False” allows to specify that hardware-accelerated rendering should not be used and to avoid all checks related to autodetection of rendering capabilities:

// Disables hardware-accelerated rendering and autodetection of rendering capabilities
VisualXcceleratorEngine.IsEnabledByDefault = false;

Other Improvements since Beta

  • Improved handling of inner VerticalLines collection by VerticalSliceModifier
  • Improved new DataPointWidthProvider API: reworked IUniformDataPointWidthProvider interface and introduced IBarRenderableSeries interface for those RenderableSeries types that use DataPointWidthProvider API
  • Improved memory management in SciChart WPF Examples Demo
  • Added option to install SciChart SDK and LicensingWizard for all Users on a PC

Bug Fixes since Beta

  • SC-6582 Fixed NullReferenceException when clicking on an AnnotationLabel, caused by multiple inner subscriptions to Mouse events in some cases
  • SC-6650 Fixed NullReferenceException in DataPointSelectionModifier when some points in DataSeries didn’t have PointMetadata
  • SC-5493 Fixed an issue with FastImpulseRenderableSeries, XyScatterRenderableSeries not appearing in Chart Legend when added using RenderableSeries MVVM API
  • SC-6479 Fixed ZoomExtents behavior with LogarithmicNumericAxis and HlcDataSeries
  • SC-6484 Fixed LogarithmicNumericAxis not handling values less or equal to zero in DataSeries properly
  • SC-6562 Fixed an issue when TimeSpanAxis caused intermittent lines to zero for Line chart with realtime updates
  • SC-6583 Fixed an issue when setting the default range as VisibleRange caused zooming to data extents
  • SC-6544 Added an assertion to warn users when XyDataSeries is created with empty data arrays
  • SC-6640 Fixed an issue when setting IsDigitalLine didn’t affect FastLineRenderableSeries if StrokeDashArray was set
  • SC-6574 Fixed ArgumentOutOfRangeException when removing a RenderableSeries through RenderableSeries MVVM API
  • SC-6631 Fixed an issue when FastLineRenderableSeries disappeared after it was made visible through Chart Legend
  • SC-6395 Fixed handling of Relpace and Move actions in RenderbaleSeries collection
  • SC-6635 Fixed a memory leak in SciChartSurface3D when NumericAxis3D used custom Styles for Major and Minor GridLines
  • SC-6527 Fixed an issue when hiding AxisLabels3D through the DrawAxisLabels property also hid AxisTitles
  • SC-6547 Fixed as issue when VertexSelectionModifier3D failed to select a newly added point to a XyzDataSeries3D
  • SC-6546 Fixed an issue when VertexSelectionModifier3D failed to select points if SciChart3DSurface was initialized without any data
  • SC-6604 Fixed issues when trying to export an example from the SciChart WPF Examples Demo in various usage scenarios

Breaking Changes

This is a complete list of breaking changes in SciChart v6.6.

  • Method signature change: added a single parameter flag to IDataSeries.Clear() method that indicates whether to release internally allocated arrays. All implementers of IDataSeries interface and custom DataSeries have to consider this change in their implementations.
  • Method signature change: added a single parameter flag to IDataSeries.GetXRange() method that specifies whether requested range should be entire data range or positive part of it only. All implementers of IDataSeries interface and custom DataSeries have to consider this change in their implementations.
  • API change: IOhlcDataSeries does not extend IHlcDataSeries interface any longer. Also, OhlcPointSeriesTransformation does not extend HlcPointSeriesTransformation and has corresponding API changes.
  • Obsolete method: BaseRenderableSeries.GetDatapointWidth() method and all overloads made obsolete.
  • Obsolete property: UseUniformWidth property in BaseColumnRenderableSeries and BaseColumnRenderableSeriesViewModel marked obsolete. It hadn’t have any effect on Columns rendering, because bars always were drawn with uniform width.

Breaking changes since SciChart v6.6 Beta release:

  • API change (since Beta): IUniformDataPointWidthProvider interface has been reworked to be more self-explanatory and useful for external users. Also, its implementers were modified correspondingly.
  • Obsolete method (since Beta): BaseRenderableSeries.GetDatapointWidth() method overload with four parameters has been made obsolete.
  • Obsolete method (since Beta): TimaSpenAxisBase.ToVisibleRange() method with two parameters has been made obsolete.

Where to get it

SciChart WPF v6.6 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

Please ensure you uninstall the previous version(s) of SciChart before installing the latest version as this can prevent some issues in the upgrade process!

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

The post SciChart WPF v6.6 Released! appeared first on SciChart.

SciChart.js v2 BETA Released!

$
0
0

Hey everyone!

It’s my great pleasure to announce today we are releasing SciChart.js version 2.0-Beta. This version is a HUGE upgrade to our already powerful & feature rich JavaScript chart library, which we’ve worked hard on for the past 6 months or so this year.

We’ve compiled a “What’s New” list below. Take a look through, and then we recommend you try it out for yourselves. SciChart.js version 2 brings a host of new features and improvements to the library and is a massive upgrade for users of our WebGL / WebAssembly powered JavaScript & Typescript charts.

What’s New in SciChart.js v2.0?

Where do we start? Let’s go through the features one by one:

1. Series Selection

We’ve added Series Selection on click, and Hover events to SciChart.js v2.x. With the new SeriesSelectionModifier, you can get notified if a user clicked or hovered a series, and make some visual changes such as changing or animating series style.

2. DataPoint Selection

We’ve also added Datapoint Selection into SciChart.js v2.x. You can now click select individual datapoints, drag to select multiple datapoints, get notified on click and display visual feedback. To use this feature, add a DataPointSelectionModifier to your chart.

3. Logarithmic Axis

Another hotly requested feature, we’ve added a Logarithmic Axis to SciChart.js v2! Display charts with a logarithmic scale, on either X or Y axis, with a user-defined base. For example Log(10) charts, Log(e) for scientific applications or Log(2) for finance & trading.

You can specify the label format to display scientific notation with superscript, engineering notation or N-significant figures. Major and minor ticks can be displayed in linear or logarithmic scale.

4. Central / Inner Axis

We’ve added further customisations to the axis in SciChart.js v2. You can now place an X,Y axis in the center of the chart to create oscilloscope like graphs, or inside the chart as opposed to fixed on the outside of the chart area. Placement of the axis is fully customisable.

5. Vertically Stacked Axis

There’s another axis customisation which we’ve added! Vertically Stacked Axis allows you to change the layout of axis panels.

Instead of left to right for Y-Axis, you can now layout several axis top to bottom. This gives you layout options like this where a single chart has mutiple traces with it’s own Y-Axis, but the traces are stacked one on top of each other.

Perfect for EEG / ECG like charts where you want to display several overlapping traces on a single SciChartSurface.

6. Axis Label Customisation

There are now several ways to customise axis labels in SciChart.js v2.

SciChart now supports rotated axis labels, multi-line axis labels and even image labels. All this and more is possible via our Custom LabelProviders API.

7. Builder API

A brand new API in SciChart.js – the Builder API – allows you to construct charts with a JavaScript object definition.

API code like this allows you to create charts, set series, data, axis types, even interactivity modifiers.

// Using the Builder API to construct a chart with X,Y axis, line series, light theme and zoom pan modifier
const { sciChartSurface, wasmContext } = await chartBuilder.buildChart(divElementId, {
     surface: { theme: { type: EThemeProviderType.Light }},
     series: { 
 type: ESeriesType.LineSeries,
         options: { stroke: "blue" },
         xyData: {
             xValues: [1, 3, 4, 7, 9],
             yValues: [10, 6, 7, 2, 16]
         }
     },
     yAxes: {
         type: EAxisType.NumericAxis,
         options: {
             axisTitle: "Number of things",
             visibleRange: new NumberRange(0, 20),
             labelPrecision: 0
         }
     },
     modifiers: [
         { type: EChart2DModifierType.Rollover },
         { type: EChart2DModifierType.ZoomPan }
     ]
 });

The Builder API is a layer built on top of SciChart.js programmatic API. It’ll be a lot more familiar for JavaScript developers and will allow some neat tricks, such as specifying and re-using chart definitions which will make React / Vue / Angular, or client-server apps easier to build with SciChart.js.

8. JSON Deserialization / Serialization API

The Builder API also allows JSON Serialization / Deserialization. It is now possible to construct chart definitions including data server-side, and reconstruct the SciChart.js chart client side.

9. Point Metadata API

SciChart.js v2.x now features a PointMetadata API, comparable to our iOS Android and Windows charts. This API allows you to tag some or all x,y datapoints with a custom object.

Data can now be in the format X, Y, {Object} which allows you to store additional metadata on x-y data points. Metadata can then be routed through to Tooltips, Hit-Test or PaletteProvider.

For example, if you click or hover a point you can get this metadata object back which allows you to do more complex interactions with the chart when linked to external datasets.

10. Filters (Data Transforms) API

SciChart.js now features a Filters or Data Transforms API. This allows you to add data transforms such as Linear Trendlines, Moving Averages, Scale/Offset, or Ratio of two DataSeries to your chart.

Filters automatically update when the underlying data changes, making it easy to apply transforms to your data.

What’s more, you can create custom filters easily if you wanted to add any other kind of behaviour.

11. Style and Data Animations

As well as start-up animations that sweep or fade a series when the chart is first shown, SciChart.js now features style and data animations.

This let’s you animate style properties on series (stroke, stroke thickness, fill) as well as entire datasets.

For example, animate one entire dataset (x,y values) to another. You can animate the stroke colour, line thickness or fill colours of a series. You can even animate the point marker being displayed.

Use this API to create stunning JavaScript charts

12. Transparent, Image or Blurred/Glass Backgrounds

In SciChart.js v2.x, we’ve completely re-written the way we composite WebGL powered JavaScript Charts onto the HTML page, allowing you to now create charts with transparent backgrounds, image backgrounds or even blurred/glass effect backgrounds.

Create stunning JavaScript charts with SciChart’s flexible styling & theming API!

13. Loader animation Customisation

More styling & Theming changes in SciChart.js v2.x, you can now style the wait-loader, displayed when the chart initially starts up.

Styling options include simple changing of foreground & background colours, right through to customizing the DOM which is displayed as the chart loads for the first time.

14. SciChartOverview Scrollbar Control

After requests from our userbase, we’ve added the SciChartOverview control to SciChart.js v2.x.

The SciChartOverview is a Scrollbar control which lets you see an overview of your dataset, and scroll left/right at the touch of a button.

It works on vertical or horizontal charts, you can customize what series get displayed behind the overview, and customize the look & feel of the scroll grips and selection rectangle too.

15. Retina / High DPI Display / Browser Zoom Support

SciChart.js v2.x now supports sharp graphics on high DPI / Retina displays, as well as Browser Zoom functionality.

Previously in SciChart.js, retina displays would look low quality, and when the browser is zoomed the image that SciChart renders to would simply be scaled. In SciChart.js v2, every element is now rendered at the native resolution and scaled down for display. This results in the following benefits:

  1. Lines, strokes, shapes now look sharper and clearer on higher DPI displays or when browser is zoomed
  2. Text is rendered at a higher resolution. Text scales with browser zoom (good for Accessibility)
  3. Stroke line thickness increases with Browser Zoom

Take a look below to see some comparison images side by side of SciChart.js v1 vs. v2 at 200% Browser zoom in Chrome.

16. Text Label Provider

Guess what, we’ve also added a way to natively put text labels onto an axis.

The TextLabelProvider provides text labels rather than numeric. Specify text labels as an array with a mapping and our library displays them on the axis. This also features a rudimentary word wrapping algorithm for long labels.

17. Hit Test Improvements

We’ve made multiple improvements to the Hit-Test API, allowing for greater control over what a hit (click) means on the chart.

You can now listen to mouse events and clicks on the chart and determine if the user:

  • Clicked on a series segment (e.g. column body, candle body, line series segment)
  • Clicked on an X-Y data-point
  • Finding the nearest point using X-first (for timeseries) or X-Y distance (for scatter series)

The Hit-Test API returns an object which describes which points or series were under or nearest the mouse, and may be used for getting click notifications on chart series, implementing drill-downs, custom interactions or behaviours and more.

18. Miscellaneous Improvements

We’ve made lots of improvements into SciChart.js, including:

  • improving overall reliability
  • helpful error messages in the JavaScript console
  • improvements to the usability of APIs
  • improvements to documentation and examples

.. plus much more.

If you’re an existing user of SciChart.js or you’ve tried it out in the past, download SciChart.js v2 now and try it out! We would love to hear your feedback!

Breaking Changes

They say you can’t make an omelette without breaking some eggs. In order to bring you this major upgrade to SciChart.js v2.x we’ve had to introduce some small breaking changes to the API.

As a result, SciChart.js v2.x is not fully backward compatible to SciChart.js v1, however we’ve tried to keep disruption and changes to the bare minimum. Most apps will Just Work with SciChart.js version 2.

We’ve published a full list of breaking changes to our Documentation Here.

Click to read all Breaking Changes in SciChart.js v2.x.

Pricing Plan Changes

To reflect the huge value in in this upgrade to SciChart.js, we’ve made a small change to our pricing & licensing. New Pricing for SciChart.js can be found below. This will be effective upon launch of the new version:

  • SciChart.js 2D Charts: Was $999, Now $1,299
  • SciChart.js 3D Charts: No Change
  • Bundle 2D / Bundle SDK / Bundle Enterprise: No Change

Existing customers with an active support & updates subscription will get the update for FREE. We are also able to provide 1, 2 and 3-year subscription renewals if you would like to lock in pricing for longer term projects.

Where to get it

We’re in the process of packaging SciChart.js v2 for release now, but in the meantime you can get it straight from npmjs by using this script:

npm install scichart@2.0.0-beta.2084

And Finally

… That was a huge piece of work and special thanks go to our JavaScript / WebAssembly / WebGL team for making this massive improvement to SciChart.js.

Finally we also want to thank our customers who have supported us since SciChart.js v1 was released and we hope to see more and more of you use our awesome JavaScript Charts SDK in the future!

Best regards,
Andrew
[SciChart Team]

The post SciChart.js v2 BETA Released! appeared first on SciChart.

SciChart WPF v7.0 Beta Released!

$
0
0

SciChart WPF is now ten years young and still remains the highest rated WPF Chart Control, and best WPF chart on the market!

Today we are pleased to announce continued improvement to our flagship product: SciChart WPF: v7.0 Beta. This update includes a number of features & improvements. To find out new, read on below!

What’s New in SciChart WPF v7.0?

Complete Rebrand of the SciChart WPF Examples App, Website & Examples

Our brand has been updated this year and SciChart now has stunning new look on the website. Those who have been with us since 2012 know we’ve traditionally had a green logo & accent colour, however this has been updated professionally throughout the site. The result of a considerable amount of work, our tagline ‘See New Worlds’ is inspired by our customers & users, as SciChart helps them “See what has never been seen before”.

As part of this work we have updated the branding, colours, styles & visuals of over 170 SciChart WPF Examples.

WPF Audio Analyzer Example

Not only good looking, the performance of SciChart WPF is incredible. Below see our new-look 1-Billion data-point performance demo:

WPF Chart FIFO 1 billion points demo

For business applications, stunning visuals come as standard. The new-look WPF Dashboard style Column Charts demo showcases some more business-focussed chart types with SciChart WPF.

WPF Dashboard Style Column Charts

Download the demo installer today to see the new-look examples app. Don’t forget you can also clone it on Github here: github.com/abtsoftware/scichart.wpf.examples.

New “SciChartv7Navy” Theme

SciChart ships with several stunning themes which you can apply to the charts in your application. In SciChart v7.0, we added a new “Navy” theme. To apply it, set static ThemeManager.Theme property to “SciChartv7Navy”. Take a look at the demos they are looking awesome!

.NET 6.0 Support

SciChart WPF is now multi-targeted to support .NET 6.

We’ve kept backward compatibility for .NET Framework (4.6.2+), and netCore 3 apps. Download the latest NuGet packages now and start developing for .NET 6!

Improved Assemblies Security / Signing C++ Assemblies

As part of SciChart WPF v7, all managed and unmanaged SciChart libraries are signed with a security certificate. This has been requested many times, and will reduce friction in security conscious enterprises using SciChart.

SAST Security Analysis / Static Code Analysis

SciChart is used in the Medical industry, as well as Scientific, Defence & Aerospace where security is critical. A number of time’s we’ve been asked about static code analysis and SAST Security Analysis for the SciChart libraries.

We’ve setup SonarQube static code analysis in our CI/CD chain for SciChart WPF to report on code vulnerabilities, analyse potential bugs before they happen and SAST security analysis. We have performed SAST analysis on all SciChart sources. This allowed us to fix many issues discovered in managed code and thus improve quality and security of SciChart libraries and ensure a stable and secure library for use in mission-critical applications & industries.

Improved SciChart 3D Text Rendering

Under the hood we’ve written a completely new, cross-platform, in-house DirectX text rendering engine. This allows us to draw high quality text with Unicode characters, Cyrillic, Arabic or special characters.

We’ve also added support for Japanese, Chinese and Korean characters to SciChart WPF 3D. This has been long requested but required the intensive rework of our cross-platform text rendering engine.

This latest improvement brings you:

  • A massive improvement to text quality, anti-aliasing and text blending in 3D charts
  • Ability to render Unicode characters, standard and custom fonts, Cyrillic and Arabic characters in SciChart 3D
  • Support for Japanese, Korean and Chinese text in SciChart 3D
  • Improved rendering via better text character shaping

Chinese Japanese Korean text now supported in SciChart WPF 3D

This work also opens up the possibility of faster / improved performance 2D charts using DirectX powered text rendering.

Added a New 3D Example to Sandbox

Added a new example that demonstrates how to add interactivity to a 3D chart. This is achieved with a custom ChartModifier3D. It allows dragging selected vertices of a 3D SurfaceMesh chart with Mouse.  The example can be found at SciChart GitHub.

COMING SOON! Z-Axis Up Mode in 3D Charts

This is a new feature added to SciChart WPF 3D. Now it is possible to have either Y or Z axis perpendicular to the ground plane in 3D charts.

Other Features & Improvements

  • Added possibility to disable VisualXccelerator renderer. This is useful in Test projects or in Applications where hardware acceleration is not supported. To disable it, set static VisualXcceleratorEngine.IsEnabledByDefault property to “False”
  • Replaced obsolete ExtremeScatterRenderableSeries with XyScatterRenderableSeries in the Demo App. In SciChart v6.x original XyScatterRenderableSeries supports hardware-accelerated rendering and other optimizations. Because of this, ExtremeScatterRenderableSeries has been retired
  • Added new unit-tests and integration tests, improved a number of documentation articles, and more!

Bug Fixes

  • SC-6957 Fixed cut-off digits when drawn with the VisualXccelerator renderer
  • SC-6536 Fixed an issue when Gradient Brushes couldn’t be applied to a Column Series using PaletteProvider
  • SC-6786 Fixed incorrect Digital Line Series rendering when there are gaps in data
  • SC-6527 Fixed an issue in SciChart 3D when hiding Axis Labels would also hide Axis Titles
  • SC-6485 Fixed an issue with ZeroLineY property ignored by Column Series with Logarithmic Y Axis
  • SC-6584 Fixed a regression issue with FillRectangle() method in the RenderContext API
  • SC-6666 Fixed an issue when exporting a chart with Xaml Renderer would cause an exception
  • SC-6598 Fixed an issue with dynamically added Annotations on a Polar Chart
  • SC-6631 Fixed an issue when a Series wouldn’t appear on a chart when it was checked in Chart Legend
  • SC-6657 Fixed blurriness of Sprites with VisualXccelerator renderer
  • SC-6658 Improved performance of 2D charts in some scenarios
  • SC-6714 Fixed an issue when charts appeared blank when built from Source Code
  • SC-6757 Fixed an issue with text size within a Composite Annotation on an exported image
  • SC-6755 Fixed a crash when exporting a chart with Annotations in the Demo App
  • SC-6879 Fixed an issue when it wasn’t possible to delete a Vertical Line Annotation when used through VerticalSliceModifier in the Demo App
  • SC-6705 Fixed an issue with data updates in “Fifo 1 Billion Points Demo” in the Demo App

Breaking Changes

This is a list of breaking changes in SciChart v6.6.

  • Minimum .NET Framework Version raised to 4.6.2. Microsoft has ended support for .NET Framework 4.5.2. As a result, we have had to raise the minimum supported .NET Framework Version to v4.6.2 in SciChart WPF v7. SciChart WPF v7 now targets .NET Core 3.1 Desktop, .NET 6.0 and .NET Framework 4.6.2.

Where to get it

SciChart WPF v7.0 Beta is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

Please ensure you uninstall the previous version(s) of SciChart before installing the latest version as this can prevent some issues in the upgrade process!

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

 

The post SciChart WPF v7.0 Beta Released! appeared first on SciChart.

SciChart.js v3.0 Released!

$
0
0

We are pleased to announce that the SciChart.js v3.0 is now released! We welcome you to try out SciChart.js v3 and give us your feedback. 

This update includes loads of new features, improvements and bug-fixes.

This release is a drop-in replacement and it should be mostly backward compatible for users of SciChart.js version 2. However, breaking changes or behaviour changes can occur, so we suggest upgrading & testing, giving us your feedback before major production releases.

What’s New in SciChart.js v3.0?

Version 3.0 at a glance:

  1. Complete re-work of the SciChart Brand, Examples and Style
  2. New Native Text Rendering Engine
  3. RenderableSeries DataLabels (text labels)
  4. FastTextRenderableSeries
  5. New SubCharts API (Charts in charts)
  6. New Non-Uniform heatmap series
  7. HeatmapLegend control
  8. Styling and Themeing improvements
  9. Performance improvements
  10. 39 Bugs Vanquished

1/ Complete re-work of the SciChart Brand, Examples and Styles

We’ve completely re-worked the SciChart styles in-line with our new branding. All 85 JavaScript Chart examples have been updated to look better, demonstrate features and give you a kick-start when creating new projects. The new-look examples are simply stunning, and give you a glimpse of what is possible with SciChart.js.

The new homepage for the SciChart.js examples is now on the main website. The react demo is still live and source code can be downloaded for the entire SciChart demo. See more at the resources below:

2/ New Native Text Rendering engine

We’ve created an entirely new native text rendering engine in WebGL. This allows us to create and draw fonts entirely in our graphics engine without needing the slower HTML5 canvas.

Our proprietary text-rendering engine now enables complex text such as:

  • Arabic, Japanese, Chinese or Korean in 2D/3D Charts
  • RTL text or Vertical text
  • Text outline, high quality scaling & outline
  • As well as Unicode characters in 2D and 3D charts

All hardware accelerated by our WebAssembly / WebGL graphics engine. This has enabled new features such as Data Labels and Text Series (see below) as well as performance improvements.

3/ RenderableSeries DataLabels (Text Labels)

SciChart.js now natively supports text labels on data-points on the following series types:

  • Line Series
  • Scatter Series
  • Heatmap Series
  • Column Series
  • Mountain Series

What can DataLabels do?

Labels can have a font specified and be positioned on the chart. They are drawn as WebGL hardware accelerated text on the chart. They respond to animations and zoom and pan with the chart.

How fast are DataLabels?

We carried out internal performance testing to see how many labels can be drawn with our new API. SciChart enables complex annotated charts with tens of thousands of text labels. These performance numbers only apply to labels on-screen, with overlap culling the number of labels can be increased even further. 

Test Case Lib Load (ms) First Frame (ms) Append Data (ms) FPS
1,000 Labels 58 123 40 59.18
2,000 Labels 1 5 22 60.02
5,000 Labels 0 6 41 34.12
10,000 Labels 0 5 71 17.14
20,000 Labels 1 6 117 8.79
50,000 Labels 1 7 271 3.62
100,000 Labels 1 4 624 1.85

Data Label Examples

Below are some examples of data labels applied to different series;

    // Create an add a column series
    sciChartSurface.renderableSeries.add(new FastColumnRenderableSeries(wasmContext, {
        dataSeries: new XyDataSeries(wasmContext, {xValues, yValues}),
        // Fill & stroke support Hex strings and rgba()
        fill: appTheme.PaleSkyBlue + "77",
        stroke: appTheme.PaleSkyBlue,
        strokeThickness: 3,
        dataPointWidth: 0.7,
        cornerRadius: 10,
        // Optional datalabels on series. To enable set a style and position
        dataLabels: {
            horizontalTextPosition: EHorizontalTextPosition.Center,
            verticalTextPosition: EVerticalTextPosition.Top,
            style: { fontFamily: "Arial", fontSize: 16, padding: new Thickness(0,0,20,0) },
            color: appTheme.ForegroundColor,
        },
        // Optional series animation executed when series shows
        animation: new WaveAnimation({duration: 1000}),
        // Horizontal gradient in X. For Y gradient choose fillLinearGradient property
        paletteProvider: PaletteFactory.createGradient(
            wasmContext,
            new GradientParams(new Point(0, 0), new Point(1, 1), [
                {offset: 0, color: appTheme.VividOrange },
                {offset: 0.67, color: appTheme.VividSkyBlue },
                {offset: 1.0, color: appTheme.VividTeal }
            ]),
            { enableFill: true }
        )
    }));

which results in the following output: scichart.com/example/javascript-chart/javascript-column-chart

JavaScript Column Chart

 

Or this adding text data-labels to heatmap cells: scichart.com/example/javascript-chart/javascript-non-uniform-heatmap-chart

    // Create the NonUniform Heatmap Series
    const heatmapSeries = new NonUniformHeatmapRenderableSeries(wasmContext, {
        // DataSeries defines data. This contains zValues 2D array plus the x and y cell offsets
        dataSeries: new NonUniformHeatmapDataSeries(wasmContext, { zValues, xCellOffsets, yCellOffsets }),
        // Color map defines how heatmap cells map to colours between minimum & maximum
        colorMap: new HeatmapColorMap({
            minimum: 0,
            maximum: 100,
            gradientStops: [
                { offset: 0, color: appTheme.DarkIndigo },
                { offset: 0.2, color: appTheme.Indigo },
                { offset: 0.3, color: appTheme.VividSkyBlue },
                { offset: 0.5, color: appTheme.VividGreen },
                { offset: 0.7, color: appTheme.MutedRed },
                { offset: 0.9, color: appTheme.VividOrange },
                { offset: 1, color: appTheme.VividPink },
            ]
        }),
        // optional settings
        opacity: 0.77,
        // values outside of the colorMap.min/max will be filled with the colours at edge of the colormap
        fillValuesOutOfRange: true,
        // add datalabels to the cells of the heatmap
        dataLabels: {
            style: {
                fontFamily: "Arial",
                fontSize: 16,
            },
            color: appTheme.ForegroundColor
        }
    });

Which places text labels in heatmap cells like this:

JavaScript Non-Uniform Heatmap Chart

Text Data Labels also have many configuration options, such as custom-text, label culling, formatting, custom placement or colouring. Find out more at scichart.com/example/javascript-chart/javascript-datalabels

JavaScript Chart Text Data Labels

Learn more about this API at the DataLabels documentation page.

4/ FastTextRenderableSeries

A new Text series called FastTextRenderableSeries has been created. This allows you to specify arbitrary text labels on a chart at specific X & Y datapoints. For example, the following code:

// data is { xValues: number[], yValues: number[], textValues: string[] }
const data: { xValues: number[], yValues: number[], textValues: string[] } = await fetch("/api/tweetData").then(r => r.json());
const series = new FastTextRenderableSeries(wasmContext, {
    dataLabels: { style: { fontFamily: "arial", fontSize: 10 }, calculateTextBounds: false },
    dataSeries: new XyTextDataSeries(wasmContext, data)
});
sciChartSurface.renderableSeries.add(series);

Results in this output.

JavaScript Text / Word Cloud Chart

The FastTextRenderableSeries allows placement of thousands of text labels at areas of interest, on x,y datapoints which zoom and pan with the chart. Find out more at the Text Series type documentation.

5/ SubCharts API (Linked Charts, and Charts in Charts)

A new API called the SubCharts API allows you to place multiple charts within a single parent chart. This enables the following new behaviours:

  • High Performance Dashboards: hundreds of charts can now share a single WebGL context
  • Higher performance linked charts, e.g. the Multi Pane Stock Chart demo now benefits from much faster drawing performance.
  • Neat tricks like charts in charts / charts on axis / charts in tooltips (more on that to come)

Here is an example of what’s possible with this exciting & powerful new API:

JavaScript 64-Chart Dashboard Performance Demo

For further info, see the SubCharts Dashboard example above, or see the SubCharts API Documentation.

6/ New Non-Uniform Heatmap chart type

By request, we’ve added a non-uniform heatmap chart type into the SciChart.js library. This allows you to create a heatmap with unevenly sized columns and rows. Colour-mapping is still possible and text labels may be placed in cells. The Non-Uniform heatmap documentation can be found here. A demo can be seen below:

JavaScript Non-Uniform Heatmap Chart

7/ New Heatmap Legend Control

We’ve added a Heatmap Legend control to the scichart.js library. This can be used in both 2D and 3D charts, and displays a colour-map with axis & title at a configurable location in your application. Find a couple of demos below:

LiDAR 3D Point Cloud of Geospatial Data

 

JavaScript Heatmap Chart – Spectrogram

8/ Styling & Theming Improvements

New Navy Theme

A new Navy Theme has been added to the SciChart.js library, which looks great on both a light & dark background. This can be seen in all our new examples. Enable the Navy Theme by using our ThemeManager API.

JavaScript Line Chart

Auto Colouring of Series

We’ve updated the colour-palettes on the SciChart themes to include auto series colouring. 

If you set the following code:

const lineSeries = new FastLineRenderableSeries(wasmContext, {
    stroke: "auto",
    strokeThickness: 2
});

SciChart will now pick a suitable colour from a gradient palette on the theme. This results in stunning looking charts from the outset, without having to be a graphic designer to pick colours. 

Vertically Stacked Axes

9/ Performance Improvements

Mostly user-driven, we’ve gone through several sections of the code and made performance improvements. Some nice gains can be seen in this version of SciChart.js, including:

  • 10x Faster Performance for Uniform Heatmap updating
  • 10x Faster Performance for hundreds of charts scenario by using SubCharts API
  • Native text system in axis for faster performance
  • NumericAxis Async Labels for faster performance
  • Hundreds of micro-optimisations throughout the code
  • Multi-pane stock chart performance improvements using SubCharts API

10/ Other Minor Enhancements

A significant number of minor improvements and features have been added to the SciChart.js library in v3. These include:

Demos Created

As well as the new features and their respective demos listed above, we’ve created a number of new demos to showcase the functionality of SciChart.js below:

Bugs vanquished

39 issues in the current release were marked as fixed. These were either reported by users or discovered internally. Bugs vanquished in SciChart.js v3 include:

  1. SCJS-1376 Overview Annotation overflowing visiblerange
  2. SCJS-1148 Special License for codesandbox.io
  3. SCJS-1341 Codesandbox.io frequently throwing errors with scichart
  4. SCJS-1321 3D Charts clip when in the same webpage as a 2D chart
  5. SCJS-1357 Sync multi chart + Rollover = trying to access a deleted CoordinateCalculator
  6. SCJS-1335 MouseWheelZoomModifier does not set SciChartSurface.zoomState to EZoomState.UserZooming
  7. SCJS-1333 When Axis has no series, any animate Zoom Extents operation on the axis causes a crash
  8. SCJS-1319  AxisBase3D doesnt obey autoTicks = false and manual major/minor deltas
  9. SCJS-1318 SurfaceMeshRenderableSeries3D and ScatterRenderableSeries3D Don’t obey opacity
  10. SCJS-1347 SciChartOverview not updating when data set after overview creation
  11. SCJS-1222 Add missing SciChartSurface properties into the serialization output
  12. SCJS-1349 SmartDateLabelProvider values don’t work for a 1-minute chart
  13. SCJS-539 SplineLine, Mountain and Band do not support StrokeDashArray
  14. SCJS-1306 Theme background is not applied before the initial frame
  15. SCJS-1294 Add strokeDashArray to the Spline Line series options
  16. SCJS-1295 Selecting annotations at a drag point causes the annotation to shift / resize
  17. SCJS-1267 SVG annotation has shifted adorner borders
  18. SCJS-1277 When overriding tooltipSvgTemplate, tooltip no longer shifts
  19. SCJS-1223 Axis Label Bugs – 0 disappears from chart when old labels are used and you go to the line chart demo and back. 
  20. SCJS-1238 drawNaNs Polyline doesn’t handle multiple sequential NaNs
  21. SCJS-1092 Heatmap Series Serialization issues – NaNs are serialized as nulls, deserialization fails to handle null values properly
  22. SCJS-1240 Pointer Events Capture Issue on Annotations
  23. SCJS-1270 Pie chart does not render a single segment
  24. SCJS-1212 Investigate rendering performance of heatmap dynamically updated with large size 12000×5000
  25. SCJS-1237 Documentation for heatmap is out of date
  26. SCJS-1208 Error in HitTest if series without dataSeries is added to a surface with a modifier
  27. SCJS-1207 Scientific format shows NaNx10- for 0
  28. SCJS-1205 Axis Background Drawing Issue
  29. SCJS-1186 ServerSide Licensing fails with CreateSingle
  30. SCJS-1189 DateAxis Ticks and labels disappear when zoomed way out
  31. SCJS-1187 SeriesSelection errors if any series is invisible
  32. SCJS-1180 LineAnnotation grip handle incorrect behavior
  33. SCJS-1173 After 2.2.2378 release chart redraw is broken if delete is not being called
  34. SCJS-550 Cannot align a VerticalLineAnnotation Top or Bottom
  35. SCJS-548 Cannot align a HorizontalLineAnnotation left or right
  36. SCJS-1177 Box annotation looks wrong with very thick border
  37. SCJS-1161 Need clear license message if trialling a version that is too old
  38. SCJS-1172 series.isVisible doesn’t hide pointmarkers
  39. SCJS-1163 useWasmFromCDN only configures 2D

Pricing and Licensing

Existing customers with an active support & updates subscription will get the update for FREE.

For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v3.0

Developers – Node/WebPack

Check npm for the latest version.

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.

 

// Add this script to head
// Substitute VERSION for the version number you want to include from https://www.npmjs.com/package/scichart
<script src="https://cdn.jsdelivr.net/npm/scichart@VERSION/_wasm/scichart.browser.js" crossorigin="anonymous"></script>


// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChart.SciChartSurface.useWasmFromCDN();

// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChart.SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve collected all the links to help you get started under scichart.com/downloads. Go there and take a look. If you have any questions just ask!

Best regards,

Andrew
[SciChart Team]

The post SciChart.js v3.0 Released! appeared first on SciChart.

SciChart v7.0.1 Released!

$
0
0

We’re delighted to announce SciChart WPF v7.0 has now completed it’s BETA testing phase and SciChart WPF v7.0.1 build 27055 has been released! This update includes a number of stability fixes and enhancements.

What’s New in SciChart WPF v7.0?

There is a number of new features, examples and improvements in SciChart WPF v7.0. We’ve compiled a list over at the page SciChart WPF v7.0 Released. Take a look! There are over ten new features, three new examples and many improvements to our High Performance WPF Chart Library

3D Viewport Orientation Modes

Added support of new Viewport orientation mode in SciChart WPF 3D. In addition to existing mode with Y-Axis pointing upwards, now it is possible to set up 3D Charts to have Z-Axis pointing upwards. This setting is applied globally to all SciChart3DSurface instances. Also, it is possible to change Viewport 3D orientation in runtime. By default, all SciChart3DSurfaces appears with Y-Axis upwards orientation.

To specify desired Viewport 3D orientation, call Viewport3D.SetViewportOrientation(Viewport3DOrientation) static method:

// Change Viewport 3D orientation
Viewport3D.SetViewportOrientation(Viewport3DOrientation.ZAxisUp);

ZeroLineY for 3D Columns

This feature allows specifying Zero position for 3D Column series relatively to YAxis. By default, all 3D Columns begin at XZ plane position. Now it is possible to set Y-Value at which 3D Columns will start:  

This can be achieved setting ZeroLineY property on ColumnRenderableSeries3D instance:

<s3D:SciChart3DSurface.RenderableSeries>
    <!--  To create a 3D Columns Chart, create a ColumnRenderableSeries3D. Optionally specify ZeroLineY, ColumnShape, Opacity  -->
        <s3D:ColumnRenderableSeries3D ZeroLineY="-0.15"
                                      DataPointWidthX="0.8"
                                      Opacity="1"/>
</s3D:SciChart3DSurface.RenderableSeries>

Other Improvements since Beta

  • Improved quality of text in SciChart 3D with light themes

Bug Fixes since Beta

  • SC-7072 Fixed an issue that caused a small offset to be applied to SurfaceMesh series position. Also, fixed small gap that appeared between XY and ZY planes in 3D World Box 
  • SC-7077 Fixed minor issues related to Themes
  • SC-7068 Fixed a silent exception in MountainDrawingProvider with PaletteProvider and VxRenderer. It occured when a color texture reached maximal possible size
  • SC-6881 Fixed the issue when LogAxis draw series incorrectly because of precision loss in coordinate calculators
  • SC-6919 Fixed the issue when FastMountainRenderableSeries with ZeroLineY=0 was rendered with artifacts when LogarithmicNumericAxis was used as YAxis

Breaking Changes

This is a list of breaking changes in SciChart v7.0.

  • Minimum .NET Framework Version raised to 4.6.2. Microsoft has ended support for .NET Framework 4.5.2. As a result, we have had to raise the minimum supported .NET Framework Version to v4.6.2 in SciChart WPF v7. SciChart WPF v7 now targets .NET Core 3.1 Desktop, .NET 6.0 and .NET Framework 4.6.2

Where to get it

SciChart WPF v7.0 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

Please ensure you uninstall the previous version(s) of SciChart before installing the latest version as this can prevent some issues in the upgrade process!

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

The post SciChart v7.0.1 Released! appeared first on SciChart.

SciChart Pricing & Licensing Announcement

$
0
0

At SciChart, we are a proudly independent business. We’ve always been innovative and forward thinking in our pricing & licensing models in order to stay ahead of competitors.

Over the past year the word inflation has been hitting the news. Many suppliers and vendors are raising their prices. However, we recognise that for our customers there is a bigger need to justify costs to upper management and prospective users are looking for better value.

So, we’re going to do something completely different and counter-cultural …

On 23rd February 2023 we’ve introduced a -23% discount on two of our leading products: SciChart WPF and SciChart.js

SciChart.js Promotional Pricing

Starting from 23rd Feb 2023, we’ve discounted new licenses of SciChart.js via the store by -23%. This makes the following changes to our pricing:

A discount of 23% has been applied to new licenses purchased of SciChart.js via the store:

  • SciChart.js 2D has been reduced from $1,299 to $999 
  • SciChart.js 2D/3D has been reduced from $1,499 to $1,149

SciChart WPF Promotional Pricing

We have also applied a 23% discount to new licenses of SciChart WPF as well. You can see the new promotional pricing live at our store.

This reduces the price of new licenses of SciChart WPF by -23% when purchased via the store:

  • SciChart WPF 2D has been reduced from $1,699 to $1,299 
  • SciChart WPF 2D/3D has been reduced from $2,299 to $1,769

Updates to Technical Support

Until now, with all our licenses we have offered 1-year unlimited priority technical support for the cost of the license (subject to fair use).

Support is one of our biggest costs, and we take it seriously. In the last year we handled almost 3,000 sales & support tickets, forum questions and incidents. That’s a lot of work from our developers!

Not all of these are needed, in fact, in many cases we find customers find the solution themselves by searching our extensive documentation or forums. We also find some support requests are user error. Bugs or issues are also reported which are prioritised in order of severity.

In order to be more scalable at a lower price-point, we have made a change to individual platform licenses on our store (e.g. SciChart WPF, SciChart.js) to have a soft-limit of 10-tickets per license per year. Unlimited priority support still applies on the Bundle (cross platform) products.

In the future, we are also exploring ways to offer a lower-priced license with lower tiers of support (support-lite) as well as offering higher tiers (support premium) for 1:1 meetings over Zoom, Teams and custom development.

Like everyone else, our costs are increasing, so there the temptation to just raise prices. However, I think that the right thing to do for our customers is to provide better value for money and, in the future, a choice on what level of support you need, catering to big-data visualisation projects of all budgets.

Note: the above pricing & support changes only affect new licenses purchase via the store. Existing customers are unaffected.

Lots of Exciting Updates to come

At SciChart we have lots of exciting updates to come. Within the next few weeks/months we have:

  • Releases due on SciChart iOS/macOS/Android
    • To update our examples and demos in line with our branding theme
    • Several bug fixes & minor features
    • New releases to the SciChart iOS/Android examples apps
  • A Release due on SciChart WPF v7.1
    • This will include improvements to 3d axis labels, 3d chart visualisation and performance/stability improvements
    • Responses to many customers feedback after upgrading from SciChart WPF 6 to 7
  • Release due on SciChart JS v3.1
    • This will include new bug fixes, features, performance improvements.
    • We’re working on documentation enhancements, such as embedding codepens in our docs
    • Also very possibly a community license model which will allow non-commercial usage of scichart.js.

Watch us as we continue to innovative, continue to work hard and continue to justify being the highest publicly rated chart library!

I welcome your feedback on any of the above by contacting me (send DMs to my Linked In!)

Best regards,
Andrew
[SciChart Team]

The post SciChart Pricing & Licensing Announcement appeared first on SciChart.

Best Examples of JavaScript Charts

$
0
0

JavaScript charts enable digital application owners to tell stories with data.

Humans engage with and interpret visual information much more easily than written content. Spreadsheets and data reports aren’t always the most effective way to get your story across. If you want to get to the heart of a set of data, it’s important not to bore your audience with too much information and small print. JavaScript Charts and Graphs powered by SciChart.js can transform the way you present and engage with data.

You can make complex information more accessible and digestible. It works for a wide range of industry sectors, including health, finance, sport and more. In this guide, we’re looking at some of the best examples of JavaScript charts to help you visualise the possibilities.

With SciChart.js, the world’s fastest JavaScript chart library, you can create exceptional graphs with little effort. Customisable options ensure you can stay on brand and deliver a unique content experience that gives you the edge over the competition.

It’s just one of the many ways you can make your website more appealing for potential customers or clients.

Showcase statistics and data in a professional way.

Real-time Data Charts

Real-time data is ideal for financial, stock and trading charts as well as medical and scientific applications. It’s an effective way to demonstrate your expertise and that you’re an authority on your subject.

Real-time JavaScript Chart Performance Demo

Discover the speed and power of SciChart.js in a real-time example. The Real-time JavaScript Chart Performance Demo creates a timer and pushes 300,000 points per second!

Stock Charts

JavaScript Multi-Pane Stock Charts

Create static multi-pane stock charts in JavaScript with price data as Candlesticks, Volume bars behind the chart and moving averages, plus link several charts together to draw Macd and RSI indicators. All charts can be synchronised together. We recommend using TA-Lib to add more complex indicators to SciChart.js.

Scientific and Medical Charts

LiDAR 3D Point Cloud of Geospatial Data

3D Point Cloud presents data points in a 3D space and is collected through sensors such as lidar. The sensors emit light and calculate the time it takes to be reflected back into the sensor to create each dot. They can be used to display geospatial data.

The example below demonstrates the capability of SciChart.js to create JavaScript 3D Point Cloud charts and visualize Lidar data from the UK Defra Survey.

JavaScript Vital Signs ECG/EKG Medical Demo

SciChart.js can help you short-cut your development by providing rich, real-time high performance and reliable charts for JavaScript medical and healthcare applications. Monitor heart rate, body temperature, blood pressure, pulse rate, SPO2 blood oxygen, volumetric flow and more with the Vital Signs ECG/EKG chart.

More 3D Charts

JavaScript 3D Bubble Chart

This 3D Bubble Chart supports up to a million points, enabling the visualisation of large statistical datasets. Bubbles can also be colored individually and tagged. Interactive elements enable users to zoom and tilt the graph.

The demo pcitured above plots Gapminder.org JSON data in three dimensions, comparing GDP per capita of countries vs. Life expectancy vs. Year. The size of the bubble and the colour are determined by the life-expectancy, showing how you can plot four or even five dimensions on a single chart by using X, Y, Z, Scale, Colour.

JavaScript Surface Mesh 3D Chart

The Surface Mesh chart can be used to represent 2D data in a 3D map. It looks like a topographical map where values in a 2D array are drawn as heights and mapped to a color. The Surface Mesh 3D chart type in SciChart.js is highly dynamic and allows for large volumes of data to be plotted.

Basic Charts

JavaScript Line Chart

It’s not just complex 3D charts that can bring a new lease of life to your data visualizations. Variations in JavaScript Line Chart include a wide range of different line styles, such as simple lines, digital lines, tooltips, dashes, gaps, labels, hovering lines and more.

Pie & Donut Charts

SciChart can help you make the Pie and Donut Chart a bit more exciting to look at. The visualization example above displays the market share of internet browsers in 2022.

Column Charts

With SciChart, you can even make beautiful Column Charts. With just a click, you can switch between stacked column and 100% stacked.

SciChart.js is an award-winning graphics engine that enables you to plot millions of data-points in real time. It’s designed for innovative data presentation for updating financial, medical, scientific and big-data business applications. See our demos now.

The post Best Examples of JavaScript Charts appeared first on SciChart.


SciChart Selected as Finalist for Go:Tech Awards in Best Use of Big Data Category

$
0
0

SciChart, a leading provider of software for big data visualization, has been selected as a finalist for the Go:Tech Awards in the Best Use of Big Data category. This award recognizes businesses that create innovative software to process and visualize large data sets.

The judging panel for this year’s Go:Tech Awards included Ann Hiatt, an author and leadership strategist, Yiannis Maos, founder and CEO of Birmingham Tech, and Roland Emmans, Head of the Technology Sector at HSBC. The panel evaluated each applicant based on their journey, commercial success, and the impact their software makes in the world of big data.

We think SciChart’s software was particularly valued for enabling mission-critical data visualisations in projects where it was previously not possible.

The company serves over 10,000 customers in more than 80 countries across a range of domains, including scientific, engineering, and financial. The common thread among these customers is their need for real-time visualization of big data to achieve success.

SciChart’s proprietary graphics engine, Visual Xccelerator™, allows for intelligent data pre-processing and optimized drawing algorithms, making it the most efficient way to plot big-data charts and handle billions of data points in real-time on Windows, as well as millions of data points in browsers or mobile devices.

The importance of big-data visualization is exemplified by SciChart’s use in Formula One, where 6/10 of the F1 grid teams, including McLaren’s Atlas, Williams F1, AMG, and others rely on SciChart to optimize race strategy by effectively visualising the large amount of data collected from hundreds of sensors.

Why SciChart? Realtime Telemetry Data Visualisation in Formula One, Motorsport and Automative Applications

Similarly, NASA’s Streams application uses SciChart to analyze billions of data points from flying spacecraft, telemetry from remote rovers, and track space debris millions of miles away.

SciChart has also contributed to advancements in medical imaging, with the University of Illinois achieving high-resolution medical imaging and reducing tumour diagnostic time from weeks to hours through its use of SciChart.

SciChart began as a ‘bedroom business’ with the first version developed entirely by founder Andrew Burnett-Thompson alongside his full-time job. The company has come a long way since then, serving thousands of customers worldwide. SciChart is grateful for its journey and the recognition it has received from the Go:Tech Awards.

The winners of the Go:Tech Awards will be announced in June, and SciChart looks forward to meeting other finalists and the judging panel.

The post SciChart Selected as Finalist for Go:Tech Awards in Best Use of Big Data Category appeared first on SciChart.

Improve Real-Time WPF Visualization of ECG Signals With SciChart

$
0
0

Improve Real-Time Cardiovascular Monitoring Across All Devices

Cardiovascular monitoring charts, including ECG and EKG applications, require stability and reliability. For PDAs (Personal Digital Assistants) and MedTech clients, the challenge is capturing that enhanced chart performance even on smaller hardware devices, such as mobile phones. This requires a cross-platform solution.

An electrocardiogram (ECG) is a medical test used to check the heart’s rhythm. While it may be a simple test, it isn’t necessarily easy to visualize and maintain data stability. This is especially the case when using multiple devices or applications simultaneously.

Real-time WPF visualisation of FIFO data and waveforms can be used to draw real-time ECG/EKG charts and graphs. These can be used to monitor heart rate, body temperature, blood pressure, pulse, SPO2 blood oxygenation, and volumetric flow of other vital signs.

Reduced data efficiency when using smaller devices, such as tablets or mobile phones, can slow down data rendering speeds and hinder medical analysis.

Software solutions, such as those offered by SciChart, deliver high-performance and responsive charts on any browser or device. Even with less processing power, SciChart can power high volumes of real-time data – ideal for ECG signal visualization.

Dynamic WPF Visualization of ECG signals in Realtime

Cardea Labs needed a software solution with a smooth user interface that was also portable. The solution had to enable increased functionality, including overlaid information, while still being user-friendly.

SciChart’s extensive charting examples were used to create the FIFO functionality required, which generated a real-time scrolling ECG monitor. The session window was upgraded to make use of the pan, zoom, and scroll functions, making the UI intuitive and user-friendly. SciChart’s high-performance capabilities could handle 250 points per second in real-time even when being used on smaller portable devices.

Read More

Real-time Waveform Visualization of Cardiovascular Data

Avicena Heart attempted to use other commercial and open source iOS Charting Software to plot Waveforms in real time but found it deficient in many ways:

  • Inability to handle multiple data streams
  • Difficulty handling Realtime High bandwidth data
  • Little to no customization
  • Poor UI

SciChart’s exceptional performance of large datasets can render over a million points in a line at interactive frame rates, handling real-time data streams easily.

Native code, GPU-acceleration and a high-performance iOS charting library, generated the ultimate data rendering efficiency. Avicena could now handle up to 90 data series simultaneously.

Rich Chart Annotations API enabled the creation of fully interactive, customizable chart annotations as well as change the appearance of the entire chart.

Read More

High performance WPF visualization of ECG signals

See the full WPF ECG Monitor Chart Demo

Using high-performance charts with endless customizations and flexibility has plenty of real-world benefits. We’ve seen our charts help pave the way for faster and more reliable diagnosis, as well as improving the efficiency of healthcare staff.

With the ability to link multiple charts, or have many traces on one chart control, plus smooth realtime updates, SciChart is perfect for ECG / EKG applications. Our charts are used in healthcare applications across platforms, as well as instrumentation and test devices for the medtech industry.

With SciChart, you can simultaneously shortcut your medical chart development and outperform standard methods of cardiovascular diagnosis.

  • Handle high bandwidth multi series data streams
  • Bespoke customization
  • User friendly interfaces

How does SciChart help improve efficiency across devices?

  • Proprietary resampling algorithms to reduce the dataset before drawing
  • Immediate mode rendering
  • Object pooling
  • Resource re-use

Build your ECG / EKG Applications with SciChart today.

The post Improve Real-Time WPF Visualization of ECG Signals With SciChart appeared first on SciChart.

SciChart.js v3.1 Released!

$
0
0

It’s only been two months since our last major release, but we have another one queued up for SciChart.js! Today we are pleased to announce SciChart.js v3.1.333 has been released. Find out what’s new in the release note below. This release is a drop-in replacement and is backward compatible to users of SciChart.js version 3. Users of SciChart.js v2 may find minor breaking changes or changes in behaviour. We suggest upgrading & testing, giving us your feedback before major production releases.

What’s New in SciChart.js v3.1?

Version 3.1 at a glance:
  1. “Just Works” support – no license required – for sandbox sites including Codepen.io, jsfiddle.net, codesandbox.io
  2. Added global exports for npm, index.min.js and simplified namespaces (imports)
  3. Updated 60+ documentation pages to include Builder API samples and codepen embeds
  4. Updated all demos in demo.scichart.com to include contextual documentation and codesandbox links
  5. Added a ChartTitle property to SciChartSurface
  6. CustomChartModifier, CustomChartModifier3D type to allow custom modifiers in vanilla JS applications
  7. Performance Optimisations
  8. Bugs fixed & minor improvements

1/ “Just Works” (no license required) for sandbox sites

Earlier this year we blogged that many sandbox environments have been enabled for SciChart.js including Codepen.io, Codesandbox.io and JSFiddle.net. These allow you to try out or use SciChart.js in browser, share examples, bug reports, ideas, feedback and more. No license is required for the sandbox environments and SciChart.js “Just Works” with a watermark. This is a step toward Community licensing which we are also working on.

For more info check the following blog post:

Codepen, Codesandbox and JSFiddle support in SciChart.js

2/ Added global exports for npm, index.min.js

We’ve also added global exports for npm and an index.min.js for JS delivr CDN. That means two things.

  1. All namespaces/imports are now just import { all, the, types } from “scichart”, for example:
    // New syntax from 3.1 or later!
    // import { all, the, things } from "scichart"
    import {
      SciChartSurface,
      NumericAxis,
      FastLineRenderableSeries,
      XyDataSeries
    } from "scichart";
  2. When including SciChart.js from CDN you just need to add a script reference to
    <script src="https://cdn.jsdelivr.net/npm/scichart/index.min.jsindex.min.js"></script>
    and import your types like this
    // Syntax for importing types when using vanilla JS, no npm
    const { 
      SciChartSurface,
      NumericAxis,
      FastLineRenderableSeries,
      XyDataSeries 
    } = SciChart;

Thus the imports are unified between npm and non-npm applications and greatly simplified. No more worrying about what the import is or searching the documentation to find an import path.

3/ Updated 60+ documentation pages to include Builder API and codepen embeds

So now we’ve done that, we can embed codepen and live examples straight into the documentation. There are over 200 hand-written documentation pages for SciChart.js, 80 JavaScript chart examples and thousands of auto-generated TypeDoc pages showing how to use our library. 

We’ve started working through these and updated around 60 out of 200 of the documentation pages to have better example code, re-checked the example code and ensured each contains a JavaScript example plus a builder-API example. You’ll now see a Builder API example alongside a JavaScript example in all the pages under 2D Chart Types and Axis APIs. More to come! Plus, a codepen embedded example which you can edit in browser.

A picture (or a codesample) paints a thousand words!

Check out some examples of the new and updated documentation pages below:

We plan to continue working through our documentation and adding more codepen embeds and updating examples & tutorials in future, providing a better experience for developers.

4/ Updated all demos to include contextual documentation and codesandbox links

If you head over to demo.scichart.com and click on any SciChart.js demo, you’ll now see a new toolbar at the top of the page.

  • Click on the Docs button to view contextual documentation for this demo.
  • Click on the Github button to view contextual source-code for this demo.
  • Click on the Code Sandbox button to see some real magic. This extracts the specific source-code for this example into a stand-alone codesandbox.io project.

The same toolbar can be seen here when viewing the example from our website, e.g. from scichart.com/example/javascript-chart/javascript-chart-logarithmic-axis

5/ Added a ChartTitle property to SciChartSurface

Many of our examples at demo.scichart.com used Annotations to create a pseudo chart title. In SciChart.js v3.1 we’ve added a chart title property. All the demos have been updated to reflect this. 

There is a specific Chart Title demo which you can find below. 

JavaScript with Configurable Chart Titles

Also documentation has been updated to show you how to customise a chart title. 

6/ CustomChartModifier, CustomChartModifier3D type

A quick & Simple change, we’ve added a type CustomChartModifier2D and CustomChartModifier3D so you can create custom modifiers in codepen, or when using the index.min.js (not npm). The reason for this is ChartModifierBase type is abstract, and cannot be instantiated in vanilla javascript. Here’s a demo, showing how to create a custom ChartModifier which detects if mouse over the axis.

See the Pen Support: Detect if over axis or chart on mouse hover using SciChart.js by SciChart.js Official (@scichart) on CodePen.

7/ Performance Optimisations

Almost 100% Performance improvement for Big-Data Charting

Big Data Performance has been improved yet again by optimising two things:

In SciChart.js v3 Data Appending was a performance hotspot. This has been addressed in version 3.1.333
In SciChart.js v3 Data Appending was a performance hotspot. This has been addressed in version 3.1.333

We had some overly aggressive sanity checks in SciChart.js. Before, when appending data we were checking every single element of the array to check it was numeric! Now, we make the assumption that if you’re passing an array of numbers to dataSeries.appendRange() SciChart.js will sanity check the first element, but then assume all subsequent elements of the array are numbers. So don’t go passing an array of [1, 2, 3, “Apples”, “Bananas”] as that won’t work 😉

The second optimisation was memory allocation when calling dataSeries.appendRange() which was also a little too conservative. Adjusting the memory resizing algorithm led to better overall performance when creating or updating charts with huge datasets. The result of these two changes is a near 100% performance improvement when working with big-data charts. A couple of numbers below:

  • When appending very large datasets (10 – 100M points) expect approx. +50-100% faster time to first draw.
  • When calling appendRange() frequently adding new datapoints to a chart, or refreshing data with clear() appendRange(), you can expect approximately +30% faster performance.

For dynamically, updated charts with random or time-series data, SciChart has world-class performance, even outperforming the strongest competitors in several demanding tests.

Axis Titles Cached & Native-Text enabled

In the previous version of SciChart.js, Axis Titles were a big performance hotspot. These were created & drawn every time the chart was updated.

In SciChart.js v3 Axis Title drawing was a performance hotspot. This has been addressed in version 3.1.333
In SciChart.js v3 Axis Title drawing was a performance hotspot. This has been addressed in version 3.1.333

In SciChart.js v3.1 we’ve addressed this.

  • We’re now caching the Axis Title texture when using default text rendering
  • We’ve enabled WebGL Axis Titles when useNativeText is enabled (find out how)

This results in an immediate performance boost when Axis Titles are present, as before just drawing the titles was taking 20% of draw time.

8/ Multiple bugs fixed

Multiple issues in the current release were marked as fixed. These were reported by users or discovered internally. Bugs vanquished in SciChart.js v3.1 include:

Pricing and Licensing

Existing customers with an active support & updates subscription will get the update for FREE. For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v3.1

Developers – Node/WebPack

Check npm for the latest version.

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.

 

// Add this script to head
// Include script from https://www.jsdelivr.com/package/npm/scichart
<script src="https://cdn.jsdelivr.net/npm/scichart@3/index.min.js" crossorigin="anonymous"></script>


// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChart.SciChartSurface.useWasmFromCDN();

// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChart.SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve collected all the links to help you get started under scichart.com/downloads. Go there and take a look. If you have any questions just ask!

Best regards,

Andrew
[SciChart Team]

The post SciChart.js v3.1 Released! appeared first on SciChart.

SciChart.js v2.1 Released!

$
0
0

We are delighted to announce that the SciChart.js v2.1 build 2267 has now been released!

This backward-compatible update includes a number of improvements, fixes and some massive performance improvements for big-data & realtime rendering.

This release is a drop-in replacement and it is backward compatible for users of SciChart.js version 2.

What’s New in SciChart.js v2.1?

Major Performance Improvements in v2.1

We’ve used our expertise high performance computing in other platforms of SciChart to make massive improvements to chart rendering, updating and startup speed in SciChart.js v2.1.

Here is a quick summary of the improvements.

DataSeries Creation & Updating Speed

For big-data applications or dynamically updating charts, a large bottleneck was simply the time to create and update data.

By looking at memory optimisation and taking advantage of low-level code optimisations in WebAssembly we’ve improved the following DataSeries operations significantly, which results in much faster, more responsive charts. Especially noticeable in dynamic or real-time contexts.

DataSeries OperationBeforeAfterImprovement
Create a DataSeries with 1Million Datapoints35ms10ms3.5x faster!
Get XRange for DataSeries with unsorted data
(required for auto ranging)
550ms3.4ms161x faster!
Optimising DataSeries.clear() & append() with 1M datapoints
(required for dynamically updating charts)
386ms4.68ms82x faster!
Optimising DataSeries.getNativeIndices() with 1M datapoints
(required for candlestick charts)
367ms22ms16x faster!
DataSeries.insertRange() with 1k datapoints
(required for prepending or inserting data)
132ms0.69ms191x faster!
DataSeries.removeRange() with 1k datapoints
(required for removing a block of data)
730ms0.33ms2,212x faster!

Data interactions with SciChart.js are now significantly faster, whether you are manipulating data frequently in a Js chart, dynamically updating charts or simply visualising big datasets, you will notice large performance improvements when using SciChart.js v2.1 over previous versions.

Introducing Smart Data-point Resampling

Our Windows, mobile (iOS/Android) versions of SciChart have included data-point resampling for a long time. Datapoint resampling ensures the minimum viable data-set is displayed on the screen. Resampling is intended to be visually lossless, and automatic. It occurs for RenderableSeries before the series is rendered, if required.

This code, being part of our Visual Xccelerator Engine in C++ has now been included in SciChart.js WebAssembly module and brings massive performance improvements to SciChart.js for big-data scenarios.

Compared to version 2.0, SciChart.js v2.1 has significant performance improvements for chart rendering:

SciChart.js v2.1 Speed Improvements (percent) vs. SciChart.js v2.0. JavaScript charting performance up to 4,000% faster is seen with our chart library
Above: Overall performance (chart rendering) improvements in SciChart.js v2.1 compared to SciChart.js v2.0. Performance improvements of up to 4,000% were observed in our JavaScript Charting library!

Other Performance Improvements

  • Improved raw drawing speed of our underlying graphics engine by over 100%
  • Improved performance of charts with RolloverModifier tooltips
  • Added Async Label Creation option with global application or per-chart caching (see documentation)
  • Optimised data transfers from JavaScript to WebAssembly

Performance Results

We’ve compared a number of JavaScript Chart Libraries such as Plotly.js, HighCharts, Chart.js vs. SciChart.js to evaluate chart drawing performance and published the results in a second article: SciChart is the Fastest JS Chart Library – and why that matters in today’s world.

SciChart.js is the Fastest JS Chart Library available

Here’s why that matters in today’s world

Most JavaScript Chart Libraries can render a few thousand points before slowing down. Big-Data is a trend across industries and the amount of data is only getting bigger. If the speed of your JS Chart Library is not an issue now, it will be soon.

Read more

We’ve also created a demo showcasing SciChart.js ability to load millions of candlesticks, allowing you to visualise years of 1-minute bars in stock charts or cryptocurrency trading apps. Read more at the article below.

How SciChart.js transforms trading performance

JavaScript Candlestick Charts: Plotting 1-year of 1-minute BTCUSD bars in JS – How Scichart.js optimises trading performance

Read More

Improvements to SciChart.js and Documentation

  • Auto-detecting data distribution flags in DataSeries (flags dataSeries.isSorted, dataSeries.containsNaN). Specifying these flags gives better performance in big-data scenarios.
  • Added labels support outside of a Pie Chart
  • Added Documentation of how to use SciChart.js in vannilla HTML/Js (without npm) using our Browser Bundle served by CDN
  • Added Documentation for Performance Tips & Tricks
  • Added Documentation for new Data-point Resampling features
  • Added Documentation & Examples for new Generic Animations API
  • Added Generic Animations example to the Demo app
  • Optimizations for Annotation notifyPropertyChange method not to be called if the property has not changed
  • Better error message if wasm cannot be loaded, or the wrong version loaded
  • Add a property to configure stacked axis length (SCJS-954)
  • Allow passing div element reference into SciChartSurface.create to make SciChart.js possible to use in shadow DOM (SCJS-974)
  • Display performance warnings in dev environment (SCJS-984)
  • Improve guard checks for data series creation (SCHS-981)
  • Snap RolloverModifier vertical line to data points (SCHS-623)
  • Optimize getXRange() algorithm for unsorted data (SCJS-888)
  • Optimize filling wasm memory from js (SCJS-911)
  • Add explanation error message for trial expired on old version (SCJS-886)
  • Add AxisRenderer.axisSize property which allows setting axis label width
  • Add includeAxis property to MouseWheelZoomModifier
  • Add AxisRenderer.axisThickness (SCJS-953)
  • Prevent CursorModifier axis labels to be cut out of the chart (SCJS-980)
  • Improve chart performance when using RolloverModifier and CursorModifier

Bug Fixes in SciChart.js v2.1

  • Fix an error for LineAnnotation with a hidden label (SCJS-850)
  • Fix several SciChartOverview-related bugs: handling flipped coordinates properly (SCJS-839), setting initial overview range and area correctly (SCJS-851), a scrolling issue (SCJS-839), updating SciChartOverview dimmed annotations (SCJS-885), setting overview visible range to main chart visible range (SCJS-943), visible range limit (SCJS-941), LogarithmicAxis (SCJS-942),
  • Several SciChartOverview improvements: allow passing surface and axis options on overview create (SCJS-873), support for CategoryAxis
  • Fix a resize surface issue for annotation adorner layer (SCJS-844)
  • Added FloatArray64 array support for DataSeries
  • Fix MouseWheelZoomModifier zooming in issue for LogarithmicAxis (SCJS-881)
  • Fix axis labels population for flipped coordinates (SCJS-884)
  • Fix RolloverModifier tooltip to use the series stroke as the default color (SCJS-776)
  • display the trial watermark correctly for small charts (SCJS-892)
  • Fix clearing the legend with sciChartSurface.chartModifiers.clear() (SCJS-916)
  • Fix a caching problem for SmartLabelProvider (SCJS-920)
  • Fix mouse wheel and zoom extends on inner axis with applyToChart property set to False
  • Fix annotation borders calculation to take into account xCoordShift (SCJS-959). This bug resulted in an incorrect hit-test for annotations.
  • Fix drawing render context annotations below series (SCJS-919)
  • Fix rendering category axis without data (SCJS-946)
  • Fix RolloverModifier tooltips bug (SCJS-975)
  • Fix CursorModifier to apply axisLabelFill and axisLabelStroke correctly (SCJS-979)
  • Fix an infinite loop problem for multiple charts (SCJS-988)
  • Fix RolloverModifier error when it was used without a data series
  • Fix runtime license not applied if it has started looking for license wizard (SCJS-991)
  • draw gradient correctly when canvas resize (SCJS-826)
  • Handle visibleRangeLimit properly when scrolling (SCJS-962)

Pricing & Licensing

Existing customers with an active support & updates subscription will get the update for FREE.

For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v2.1

Developers – Node/WebPack

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.

// Add this script to head


// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChart.SciChartSurface.configure({
    dataUrl: "https://cdn.jsdelivr.net/npm/scichart@2.1.2267/_wasm/scichart2d.data",
    wasmUrl: "https://cdn.jsdelivr.net/npm/scichart@2.1.2267/_wasm/scichart2d.wasm"
});
// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChart.SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve collected all the links to help you get started under scichart.com/downloads. Go there and take a look. If you have any questions just ask!

Best regards,

Andrew
[SciChart Team]

The post SciChart.js v2.1 Released! appeared first on SciChart.

SciChart iOS, macOS, and Android SDK v4.4 is Released!

$
0
0

We are pleased to announce that the SciChart iOS, macOS, and Android v4.4, have been released!  It includes a lot of improvements and bug fixes. It is recommended for all users of SciChart to update to the latest version! Please see more information below.

What is new in SciChart iOS/macOS/Android v4.4

In this minor release our team brings to you a bunch of cool stuff, including the following major improvements:

  • Heavily requested examples written in Kotlin (plus Kotlin DSL extensions as a bonus)
  • iOS simulator finally supports Metal via corresponding render surface
  • Brand new examples showcasing built-in Transformations API:
    • Animate appending point in “Animating line chart” – iOS & macOS and Android examples
    • Animate data updates in “Animating Stacked Column Chart” – iOS & macOS and Android examples

SciChart Android examples brought to Kotlin

Kotlin language becomes more and more popular and developers start using it much more in their projects nowadays. Not surprising that we were receiving lots of requests about samples written using exactly in Kotlin and not Java. Hence we spent some time and not only implemented examples but also added some Kotlin DSL extensions for the SciChart library, and now our simple LineChart Example looks like below:

override fun initExample(surface: SciChartSurface) {
    val fourierSeries = DataManager.getInstance().getFourierSeries(1.0, 0.1, 5000)

    surface.suspendUpdates {
        xAxes { numericAxis { visibleRange = DoubleRange(1.1, 2.7) } }
        yAxes { numericAxis { growBy = DoubleRange(0.1, 0.1) } }
        renderableSeries {
            fastLineRenderableSeries {
                dataSeries = XyDataSeries().apply {
                    append(fourierSeries.xValues, fourierSeries.yValues)
                }
                strokeStyle = SolidPenStyle(0xFF279B27)

                sweepAnimation { interpolator = DecelerateInterpolator() }
            }
        }
        chartModifiers { defaultModifiers() }
    }
}
full example available on our GitHub

And that’s it. With such a concise Kotlin snippet, you get your line chart with pinch, zoom and pan gestures out of the box.

All of our examples are available in both – Java and Kotlin languages. Language can be switched by a simple tap in the application toolbar (try it out in our SciChart Android examples app), like so:

Moreover, all of the Kotlin DSLs are available in our public examples repository, so you can use those in your applications if you want.

Metal is finally available in the iOS simulator

This feature was requested very often. Some wanted just be able to test and debug applications directly on the host macOS machine, while others want to be able to automate screenshots while publishing to the AppStore. It doesn’t really matter what’s the real use-case, having Metal in a simulator is useful on its own, so we finally added Metal support for SciChart iOS which is running in a Simulator. It’s much more performant in comparison to OpenGL in simulator. It is super smooth for both – 2D and 3D charts – so we are glad it’s finally here:

Custom animation examples

Some of our customers would like to implement append data with animation instead of point just appearing on screen. Another would like to smoothly update existing data on a screen. Sometimes animations are very useful while visualising data. We do also receive requests about tricky custom animations. There were custom animations documentation available, but our underlying Transformations API is fairly vague and complex. So we added the following examples into our demo apps, to bring more light onto just mentioned APIs.

Animating Line Chart – iOS & macOS and Android examples

Animate data updates in “Animating Stacked Column Chart” – iOS & macOS and Android examples

Source code for our examples are as usual available in our GitHub repositories:

Documentation about how to get the above result using Transformations APIs are available via the following links:

Other Improvements and bug fixes

SciChart Android:

  • fixed PieChart gesture modifiers doesn’t work
  • SC_DROID-810 – fixed incorrect HitTest results with FIFO series
  • SC_DROID-813 – fixed creation pens with opacity
  • SC_DROID-814 – fixed resizing of underlying primary target to correctly handle resizing of chart;
  • SC_DROID-815 – fixed NullPointerException in SeriesSelectionModifier
  • SC_DROID-817 – fixed regression: TooltipModifier3D stopped working
  • fixed incorrect handling of opacity by canvas RenderSurface when rendering lines
  • improvements to underlying data distribution providers and resampling algorithms
  • deprecated ISmartList, because IDataDistributionProvider‘s flags should be outside it
  • added ported CalendarUnit based label formatter for DateAxis
  • refactored PinchZoomModifier, RubberBandXyZoomModifier and ZoomPanModifier to allow overriding for what exact X/YAxes the modifier should be applied
  • fixed ZoomPanModifier which shouldn’t pan chart outside modifier surface
  • refactored NiceDoubleScale calculations to delay overflow of double which results Infinity results; removed generic param from delta calculator because it isn’t actually used
  • [examples] moved accessibility example to sandbox repository
  • [examples] replaced show source code with redirection to GitHub for SciChar Android Examples
  • [examples] deprecated export project feature

SciChart iOS / macOS:

  • fixed UIColor category methods are no longer conflicts with Dynotrace library
  • added some missing strong attributes
  • fixed missing SCILineArrowAnnotation in examples
  • ported CalendarUnit based label formatter for SCIDateAxis
  • SCIOS-918 – embedded dSYM and BCSymbolMap into *.xcframework
  • improved some method signatures translate better to Swift
  • exposed visible range animation related classes
  • added missing setVisibleRangeAnimator
  • refactored SCIPinchZoomModifier, SCIRubberBandXyZoomModifier and SCIZoomPanModifier to allow overriding for what exact X/YAxes the modifier should be applied
  • fixed drawNaNAs property that didn’t worked for SCIFastMountainRenderableSeries

SciChart Xamarin.iOS and Xamarin.Android:

  • added missing NullAllowed attributes and bindings
  • added missing constructor SCIDefaultSeriesValueMarker
  • update bindings for SCISeriesValueModifier and SCIThemeManager
  • lots of small underlying improvements for bindings

Where to get SciChart iOS / macOS / Android v4.4?

SciChart iOS & macOS

  • iOS & macOS framework is available through both CocoaPods and Swift Package Manager
  • SciChart iOS & macOS examples are available in AppStore
  • SciChart macOS examples also available as .dmg installer
  • SciChart iOS & macOS examples sources are available on GitHub
  • SciChart iOS & macOS source code is available on GitHub (source code customers only)

SciChart Android

  • Android packages is available via maven feed
  • SciChart Android examples are available in Google Play Store
  • SciChart Android examples sources are available on GitHub
  • SciChart Android source code is available on GitHub (source code customers only)

SciChart Xamarin.iOS and Xamarin.Android

  • Xamarin.iOS package is available via NuGet
  • Xamarin.Android package is available via NuGet
  • Xamarin.Android 3D package is available via NuGet
  • Xamarin examples sources are available on GitHub
  • Xamarin source code is available on GitHub (source code customers only)

You can always get our SDKs for iOS, macOS and Android from our downloads pages:

Please Note: you will need to download the Cross-Platform Licensing Wizard separately, required to activate and license SciChart Mobile SDK v3 and higher.

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

If your support has expired, Please contact sales asap to get a custom quote.

Best regards,
Nazar
[SciChart Team]

The post SciChart iOS, macOS, and Android SDK v4.4 is Released! appeared first on SciChart.

SciChart v7.0.2 Update

$
0
0

We’re delighted to announce SciChart WPF v7.0.2 build 27161 has been released! This is a mainteinance update that contains hotfixes and several improvements. Please find the full list of changes below.

What’s new?

  • Improved lighting for large 3D SurfaceMeshes (512 x 512 or larger) by using pixel shaders. It can be enabled by setting the UsePixelShaderNormals property to “True” on SurfaceMeshRenderableSeries3D
  • Disabled creation of the CompatibilityLog file by default (SC-7149). It can be enabled by setting the VisualXcceleratorEngine.WriteWarningsToFile static property to “True” before SciChartSurface constructor is called
  • Mouse Cursor shape can be changed for TradingAnnotations now,  by overriding the GetSelectedCursor() method (SC-7145)
  • Changed AxisTitle3D orientation in SciChart 3D to match SciChart 2D, so it reads from bottom to top now (SC-7066 )
  • Implemented IDataSeries.Clear(true) for UniformXyDataSeries that allows for full releasing of memory
  • Updated several documentation articles (SC-7100, SC-6676, SC-7098, SC-7018, SC-7111, SC-7167, SC-7135, SC-6830)

New Examples

  • Added a new example that demonstrates how to dynamically add and remove Objects loaded from .OBJ files onto a 3D Scene. Please find the full source code on SciChart GitHub
  • Added a new example that demonstrates how to create a chart with fixed Aspect Ratio. Please find the full source code on SciChart GitHub
  • Added a new example that demonstrates how to maintain Aspect Ratio of chart grid. Please find the full source code on SciChart GitHub

Bug Fixes

  • SC-7308 Fixed binding error when PointMarker3D was set in MVVM scenario
  • SC-7255 Fixed crash on removing custom 3D Objects from the SceneObjects collection
  • SC-7239 Fixed incorrect formatting of some tick labels on LogarithmicNumericAxis when the ScientificNotation property was set to “Normalized”
  • SC-7230 Fixed memory stomp that caused AccessViolationException when XyzDataSeries3D is enlarged
  • SC-7228 Fixed the issue when VerticalSliceModifier Tooltips disappeared when Annotations Collection was cleared
  • SC-7218 Fixed a binding error in TexAnnotationViewModel
  • SC-7209 Fixed AccessViolationException when multiple UI threads used with native resamplers enabled
  • SC-6810 Fixed bug condition when Axis range grew continuously with empty chart
  • SC-7176 Fixed incorrect calculations of MinXSpacing in DataDistributionCalculator for unevenly spaced data
  • SC-7176 Fixed regression issue with relative width of Column series
  • SC-6813 Fixed Font Binding issue in SciChartLegend
  • SC-7180 Fixed regression with ranging of BoxPlotSeries with a single bar
  • SC-7163 Fixed ObjectModelSource.StreamSource property
  • SC-7134 Fixed an issue when 3D Object files could not be loaded from a resource file with relative URI
  • SC-6938 Fixed a memory leak that occured under some conditions in MouseManager
  • SC-7096 Fixed VerticalSliceModifier Tooltips disappering after changing layout in a DockPanel
  • SC-7095 Fixed memory leak that occured when SciChartSurface.Dispose() was called directly
  • SC-6785 Fixed memory leak when IDataSeries.Clear(true) is called on a FIFO DataSeries
  • Fixed the issue when GPUCapabilitiesTester properties could not be properly initialized
  • Hotfixes for text  rendering in SciChart 3D

Example Demo Improvements

  • SC-7312 Fixed example issue when chart Legend cut off large numbers
  • SC-7218 Fixed binding errors in the “Axis and Annotations MVVM Binding” example
  • SC-7234 Amended NoLockTimer in “FIFO 1 Billion Points Demo” example
  • SC-7150 Improved validation on views related to Example Export
  • SC-7150 Improved Example Export to reference latest official NuGet
  • Fixed an issue when exporting “FIFO 1 Billion Points Demo” example
  • Added drawing of backside by default to “Simple Polar 3D Chart” example
  • Improved Navy/Dark theme switching for ExternalDependencies and Examples Demo

Where to get it

SciChart WPF v7.0.2 is available by:

  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

The post SciChart v7.0.2 Update appeared first on SciChart.

MyGet Outage affecting WPF, Android customers

$
0
0

Yesterday it was brought to our attention that MyGet.org is facing a major outage. MyGet – a provider of Nuget package feeds, Maven repositories and private npm has been used by SciChart for almost ten years to provide nightly builds and packages to customers.

MyGet was acquired by Assembla in 2018, which has responded to posts reporting the issue on Twitter, however feeds continue to be down after 48 hours.

Feeds that are affected include:

  • SciChart WPF: Nightly build feeds and release feeds abtsoftware, abtsoftware-bleeding-edge
  • SciChart Android: Maven feed for major and minor SciChart Android libraries
  • SciChart.js: npm feed for beta releases and nightly builds of SciChart.js

Backup sources

WPF Customers

For a while now we have been pushing packages to nuget.org. We recommend switching over to nuget.org/packages/SciChart where you can find all major releases post v5.2.0

All historical installers including older releases and SciChart binaries can also be found at scichart.com/downloads

JavaScript Customers

All packages for SciChart.js are pushed to npm.js/package/scichart. We recommend using this package source for production and development builds.

index.min.js is also published to JSDelivr.com/package/npm/scichart

Android Customers

MyGet is the only maven feed that we have for Android packages. We are looking into an alternative feed now to maintain continuity of service for our customers.

All historical binaries can be downloaded as zipped AARs at scichart.com/downloads

iOS Customers

… are unaffected, as packages are hosted by Github

Monitoring the Situation

We are continuing to monitor the situation and consider alternatives. Our own development builds are predicated on MyGet feeds being up so this is impacting us as much as it is customers that use the feeds.

Whether or not the situation resolves soon we will need to look for alternatives and migrate away from MyGet. Once we do we will notify our users and modify documentation to show alternate package sources.

Update – 27th July

Update – as of 11 am UTC / 27th July 2023 MyGet is back online and systems operational. We are continuing to monitor the situation for impact to our customers and assess redundancy / backup solutions.

 

Best regards,
Andrew
[SciChart Team]

 

The post MyGet Outage affecting WPF, Android customers appeared first on SciChart.


SciChart.js v3.2 Released!

$
0
0

Another quarter, another feature-packed release for SciChart.js – our High Performance Scientific & Financial JavaScript Chart library. In this release, version 3.2.446 we have a number of enhancements which are backward compatible drop-in replacement to users of SciChart.js v3. Find out what’s new below.

What’s New in SciChart.js v3.2?

Version 3.2 at a glance:
  1. Community Licensing!
  2. DataSeries FIFO (First in first out) mode
  3. DataSeries FIFO-sweeping mode
  4. DataSeries initialize with capacity
  5. Series PointMarker: lastPointOnly mode
  6. Significant WebAssembly memory improvements
  7. Memory leak debugging tools
  8. Optional delete on clear/remove from collections
  9. Allow configuring WebGL Buffer sizes in low-memory environments
  10. 2D/3D Touch Interaction improvements
  11. 3D Point-Line chart (PointLineRenderableSeries3D)
  12. 3D Tooltips (TooltipModifier3D)
  13. 3D Pinch Zoom
  14. Allow Annotations below Gridlines
  15. New Custom Manual Legend control
  16. Allow rotating Axis Titles
  17. Update to Emscripten EMSDK v3.1 and Clang 17
  18. Reduction in wasm module file size
  19. Faster wasm module initialization
  20. More Documentation Improvements
  21. Multiple bugs fixed
  22. Multiple New Examples created

1/ Community Licensing

We’ve listened to feedback and have simplified the process of onboarding new users to SciChart.js.

Two changes we’ve made:

  • SciChart.js v3.2 defaults to Community Licensing mode when you first download or use it
  • We’ve created a new Getting-started page. No sign-up or installation of the licensing wizard is required to start using SciChart.js in community mode.

Who can use Community Licensing?

The community license may be used for free in non-commercial applications, academic or educational use, journalism and blogger/course-writer use including paid tutorials or programming courses. We’ve created a FAQ below with more details. The new Getting Started page can also be seen below. Community Licensing FAQGetting Started JS

2/ DataSeries FIFO (First in first out) mode

A feature popular in WPF and Mobile versions of SciChart: we’ve added FIFO (First in First Out) mode to DataSeries in SciChart.js.

With a dataSeries in FIFO mode, the series will be filled with points appended up to the fifoCapacity. Once point count exceeds fifoCapacity, the oldest points will be discarded in a First-In-First-Out manner.

For example, given `DataSeries.fifoCapacity = 5`:

  • Append [0,1,2], values = [0,1,2]
  • Now Append [3], values = [0,1,2,3]
  • Now Append [4,5], values = [1,2,3,4,5] (value 0 has been discarded)
  • Now Append [6], values = [2,3,4,5,6] (value 1 has been discarded)

An example below:

What’s this used for?

FIFO mode is used for:

  • Real-time monitoring with scrolling charts.
  • Visualising streaming data from sensors.
  • Producing scrolling charts or sweeping charts like ECG/EKG monitors (see below).
  • Anywhere you want to automatically discard old data, limiting memory consumption in long running apps with real-time updates.

How to use FIFO mode?

To initialise a DataSeries in FIFO mode, use the following constructor options:

const dataSeries = new XyDataSeries(wasmContext, { 
    fifoCapacity: 1000
});

sciChartSurface.renderableSeries.add(new FastLineRenderableSeries(wasmContext, { 
    dataSeries
}));

NOTE: When initialising in FIFO mode, all the memory is allocated up-front. The size and capacity of the series will equal fifoCapacity. When appending new data, old data will be discarded once fifoCapacity is exceeded.

DataSeries FIFO Documentation

3/ DataSeries FIFO-Sweeping mode

We’ve added a new sweeping mode to dataSeries in FIFO mode which is exclusive to SciChart.js. This is enabled by setting DataSeries.fifoSweeping = true.

Instead of scrolling, a chart will now wrap-around when DataSeries.fifoCapacity is exceeded. This massively simplifies ECG/EKG style medical charts where the trace sweeps right to left of the chart.

An example below:

Fifo Sweeping Documentation

4/ DataSeries initialize with Capacity

SciChart DataSeries are designed to grow when calling DataSeries.append(), appendRange() using a geometric memory growth algorithm. Sometimes if the data size is known in advance this can result in over-allocation or several allocations of memory. By setting the DataSeries.capacity property you can specify the amount of memory to reserve up-front when creating a DataSeries.

Set DataSeries.capacity = N when you know in advance how many data-points will be appended, or to pre-allocate a block of memory, to reduce allocations and make performance that little bit faster.

DataSeries Docs

5/ Series PointMarker: lastPointOnly mode

A small featurette which makes it easy to display a point-marker on the last point of a series only. This is demonstrated in the FifoSweeping example above. Enable it by setting pointMarker.lastPointOnly = true. This is demonstrated in the ECG / Vital Signs monitor demo below.

JavaScript Vital Signs ECG/EKG Medical Demo

6/ Significant WebAssembly memory improvements

We’ve learned a lot about the WebAssembly memory model in the past few months, and have made some significant improvements to memory handling in SciChart.js.

Before this release: if you initialised SciChart.js with SciChartSurface.createSingle(), this resulted in a memory leak where each chart would hold on to its Wasm module & memory (wasm heap) even after the chart was deleted. In SciChart.js v3.2 once a SciChartSurface created with createSingle() is deleted by calling .delete(), and later garbage collected, the wasm heap associated with that chart will also be GC’d. This results in significant memory reductions in applications using SciChartSurface.createSingle().

When using SciChartSurface.create(), a single shared WebGL context and single instance of our 3D engine is created for the application. Before this release, memory leaking didn’t occur but you could still get memory fragmentation and unbounded growth of the wasm heap. In SciChart.js v3.2, once the last SciChartSurface created with create() is deleted by calling .delete() and later garbage collected, so long as the flag SciChartSurface.autoDisposeWasmContext = true the shared wasm heap will also be GC’d. This results in ability to reclaim all wasm memory in applications once you are finished with charts.

Read more at our Memory Best Practices docs below:

Memory Best Practices docs

7/ Memory leak debugging tools

A few of our customers were getting memory growth problems when using SciChart.js in long-running real-time monitoring applications. Usually this boils down to failing to call SciChartSurface.delete() (or series.delete(), annotation.delete() when adding/removing objects) or plain JavaScript memory leaks where references to SciChart are held in the customer application & not garbage collected by the browser. What we’ve learned is, it’s easy to capture an object in closure or otherwise inadvertently create a memory leak in JS! So, in order to debug our own memory usage (see #6 above) we’ve created some memory leak debugging tools. These are now shipped with the library in v3.2 and can be used in your own applications to check for JavaScript memory leaks, undeleted objects & help you achieve optimal memory consumption with SciChart.js. How to Use? In addition, we’ve gone through all our code and found and fixed some JavaScript memory leaks that were preventing memory from being garbage-collected once charts are no longer in use. As a result:

  • the memory use of SciChart.js v3.2 is a significant improvement on v3.1 or earlier. 
  • You can also find & fix memory leaks in your own applications using SciChart.js with our easy to use tools.

Memory Debugging Tools

8/ Optional delete on remove/clear in collections

We’ve added a small featurette to the `ObservableArray` type used to store collections of series sciChartSurface.renderableSeries, annotations: sciChartSurface.annotations and so on. By passing an optional parameter to the .clear() function you can also call delete on children when removing. Before, this was required for best-practice and deletion of wasm memory:

const allSeries = sciChartSurface.renderableSeries.asArray();
sciChartSurface.renderableSeries.clear();
allSeries.forEach(rs => rs.delete());

const series = sciChartSurface.renderableSeries.get(i);
sciChartSurface.renderableSeries.removeAt(i);
series.delete();

After, you can do this:

// callDeleteOnChildren = true. Calls delete when clearing
sciChartSurface.renderableSeries.clear(true);

// callDeleteOnChildren = true. Calls delete when removing
sciChartSurface.renderableSeries.removeAt(i, true);

This makes it that little bit more succinct to delete wasm memory when updating the chart.

9/ Allow configuring WebGL Buffer sizes in low-memory environments

Each instance of the SciChart.js 3D Engine has a number of buffers which grow up to a maximum size when used. The max size of buffers if all features of SciChart.js are used could be 80MBytes of memory per engine instance. You can now limit the size of these buffers by setting the following property. Lower values will reduce performance slightly but will also lower memory usage. Default value is 8192kbytes and up to 10 buffers are created. Suggest experimenting with values down to (but not below) 1024kb in memory constrained applications.

SciChartDefaults.wasmBufferSizesKb = 1024;
Note: sciChartSurface.create() results in one engine instance shared across charts, sciChartSurface.createSingle() results in one engine instance per chart. This setting can result in significant application memory savings in the createSingle() case.

Memory Best Practices docs

10/ 2D/3D Touch Interaction improvements

Touch interaction has been greatly improved in SciChart.js v3.2, with the following changes:

  1. By default, we now set CSS property touch-action: none on the SciChartSurface <div>. You can disable this by setting touchAction in the constructor options (see documentation)
  2. ZoomPanModifier now implements Pinch-Zoom functionality out of the box. This can be enabled/disabled by setting ZoomPanModifier.enableZoom and controlled by setting horiontalGrowFactor and verticalGrowFactor properties (see documentation).
  3. Fixed a bug where Pinch Zoom would eat mouse events before other modifiers could consume them.

ZoomPanModifier / PinchZoomModifier Docs

11/ 3D Point-Line chart type (PointLineRenderableSeries3D)

We’ve added a new chart type to SciChart.js 3D: the PointLineRenderableSeries3D.

This allows you to draw line charts with optional heat palettes in 3D, like this Waterfall 3D demo

JavaScript Point Line 3D Chart Demo

Read more about the new Chart Type and how to configure it at the documentation.

3D Point Line Docs

12/ 3D Tooltips (TooltipModifier3D)

We’ve added a TooltipModifier3D type so you can add Tooltip behaviour to 3D Bubble, Scatter, Surface Mesh and Point-line Charts. See this in action in the 3D Chart Demos. To use this:

import { TooltipModifier3D } from "scichart";

sciChart3DSurface.chartModifiers.add(new TooltipModifier3D());

Read more about the TooltipModifier3D and how to configure it at the documentation.

13/ 3D Pinch Zoom

We’ve added a PinchZoomModifier3D type so you can add pinch zooming behaviour to 3D charts. To use it:

import { PinchZoomModifier3D } from "scichart";

sciChart3DSurface.chartModifiers.add(new PinchZoomModifier3D());

Read more about the PinchZoomModifier3D and how to configure it at the documentation.

14/ Allow Annotations below Gridlines

We’ve added some extra flags to allow you to place annotations below gridlines, whereas previously they could be placed below series only. 

To achieve this, set the property annotation.annotationLayer = EAnnotationLayer.Background

See further annotation placement properties in the TypeDoc.

15/ New Custom (Manual) Legend Control

We’ve added a new Manual Legend control which allows you to override automatic creation of legend item rows and place any content into a legend on the chart. 

Documentation will be written for this feature shortly, but for now you can see the feature used in the Quadrant Chart demo.

Here’s a quick example of how to add a manual legend to the chart:

    const legend = new ManualLegend({
        textColor: "black",
        backgroundColor: "#E0E0E077",
        items: [
            { name: "Bubble size represents population", color: "transparent", id:"pop", checked: false, showMarker: false },
            { name: "Bubble color indicates continent", color: "transparent", id:"col", checked: false, showMarker: false },
            { name: "Europe", color: appTheme.VividBlue, id:"Europe", checked: false },
            { name: "Asia", color: appTheme.VividPurple, id:"Asia", checked: false },
            { name: "North America", color: appTheme.VividPink, id:"NorthAmerica", checked: false },
            { name: "South America", color: appTheme.VividGreen, id:"SouthAmerica", checked: false },
            { name: "Oceania", color: appTheme.VividBlue, id:"VividTeal", checked: false },
            { name: "Africa", color: appTheme.VividOrange, id:"Africa", checked: false },
        ]
    }, sciChartSurface);

16/ Allow rotating Axis Titles

A very simple featurette, setting axis.axisTitleStyle.rotation now allows you to rotate axis titles!

17/ Update to Emscripten EMSDK v3.1 and Clang 17

This is a purely internal update, but worth a mention. We’ve updated our toolchain to use Emscripten / EMSDK v3.1 and Clang 17. This allows us to compile our C++ graphics engine into a Wasm module. Some benefits which resulted include the ability to take advantage of the latest features in WebAssembly, faster executing code & smaller wasm module sizes (see below).

18/ Reduction in Wasm Module File-size

Thanks to the Emscripten update above, the size of the compiled WebAssembly module size is now smaller. In SciChart.js v3.2:

  • SciChart2d.wasm is now 350kBytes smaller
  • SciChart3d.wasm is now 400kBytes smaller

19/ Faster Wasm module intialization

A smaller wasm module size results in faster WebAssembly initialisation. The static one-time cost of showing the first chart has been reduce by about ~100ms in SciChart.js v3.2 vs. v3.1 or below. More improvements are on the horizon as we identify savings in the library.

20/ More Documentation Improvements

We’re continuing the re-work of our documentation, including Codepen embeds and both JavaScript and Builder API examples (where applicable) in pages. Some pages we’ve updated or created in the docs since the last release:

  • DataLabels API pages now have live embedded code samples (codepen)
  • DataSeries API pages updated
  • New DataSeries Realtime Updates page showing how to create charts in realtime with SciChart.js
  • 3D Chart documentation has been added.
    • New 3D World & Camera docs added
    • New 3D Axis docs added
    • New PointLineRenderableSeries3D (3D Line Chart) docs added
    • New 3D zoom, orbit and rotate docs added
    • New 3D tooltip docs added

21/ Multiple Bugs fixed

  • SCJS-866 PinchZoomModifier eats mouse events if it is added before other modifiers
  • SCJS-1113 Fixed UniformHeatmapRenderableSeries not updating if xStep, xStart, yStep, yStart changed
  • SCJS-1302 Bug of Chart Overview when CTRL + A
  • SCJS-1478 Autorange gives unexpected values when one series has constant values
  • SCJS-1480 Rollover Tooltips don’t display outside the range of stacked axis
  • SCJS-1483 Changing PointMarker in 3D Charts does not update the chart
  • SCJS-1496 Crash on ZoomExtents over axis with IsAnimated false
  • SCJS-1499 Constructor option for DataSeriesName on 3D DataSeries is ignored
  • SCJS-1512 Can’t draw a line series on category axis with 2 points
  • SCJS-1518 Drop full dependency on TypeScript, leaving only Dev dependency
  • SCJS-1519 DataSeries.removeRange doesn’t resize native indexes

22/ Multiple new Examples Created

To demonstrate new features we’ve created multiple new examples or updated examples at demo.scichart.com.

These include:

Quadrant chart using Background Annotations

JavaScript Point Line 3D Chart Demo

Javascript Interactive Waterfall Spectrogram Chart

JavaScript Realtime Surface Mesh 3D Chart Demo

JavaScript Chart with Dynamic Layout

Pricing and Licensing

Existing customers with an active support & updates subscription will get the update for FREE. For new customers or prospects, please contact our sales team and we will be happy to help!

How to get SciChart.js v3.2

Developers – Node/WebPack

Check npm for the latest version.

npm install scichart

Don’t forget to see our Tutorials on setting up Npm projects with Webpack!

Developers – Browser Script

For developers using vanilla JavaScript (no Node Package Manager), you can load SciChart.js directly in browser. Add this script to your Html head and away you go.  

// Add this script to head. For Prod we recommend setting a specific version number
// Include script from https://www.jsdelivr.com/package/npm/scichart
<script src="https://cdn.jsdelivr.net/npm/scichart@3/index.min.js" crossorigin="anonymous"></script>

// Import your types
const { SciChartSurface, NumericAxis, FastLineRenderableSeries } = SciChart;

// Now Configure SciChartSurface in code to load the wasm file from CDN
SciChartSurface.useWasmFromCDN();

// Now create a SciChartSurface as you would normally!
const { sciChartSurface, wasmContext } = await SciChartSurface.create("div-id");

Developers – Getting Started Guides

We’ve created an entirely new and improved Getting Started page for SciChart.js. Go take a look!

If you have any questions just ask!

Best regards,
Andrew
[SciChart Team]

The post SciChart.js v3.2 Released! appeared first on SciChart.

SciChart WPF v8.0 Beta Released!

$
0
0

SciChart WPF is now ten years young and still remains the highest rated WPF Chart Control, and best WPF chart on the market!

Today we are pleased to announce continued improvement to our flagship product: SciChart WPF: v8.0. This update (v8.0.0 Beta build 27672) includes a number of features & improvements. To find out new, read on below!

What’s New in SciChart v8.0 Beta?

Reworked Positioning of Axis Labels and Titles in SciChart 3D

Totally reworked positioning of Axis Labels and Axis Titles in SciChart 3D in order to provide better experience. Multiple cases of labels and titles overlapping have been resolved with the new positioning system:

Configurable Orientation for Axis Labels and Titles in SciChart 3D

Added the AxisTitleOrientation and TickLabelOrientation properties to the Axis3D class. They allow to specify desired orientation for the Axis Title and Axis Labels: Auto, Horizontal, Vertical (Vertical is not available for Axis Labels). Vertical and Horizontal orientation modes are relative to the screen boundaries:

These properties can be set in code as shown in the code snippet below:

<s3D:SciChart3DSurface WorldDimensions="200,100,200">
  <s3D:SciChart3DSurface.XAxis>
    <s3D:NumericAxis3D AxisTitle="X-Axis" AxisTitleOrientation="Horizontal" TickLabelOrientation="Horizontal" />
  </s3D:SciChart3DSurface.XAxis>
  <s3D:SciChart3DSurface.YAxis>
    <s3D:NumericAxis3D AxisTitle="Y-Axis" AxisTitleOrientation="Vertical" TickLabelOrientation="Horizontal" />
  </s3D:SciChart3DSurface.YAxis>
  <s3D:SciChart3DSurface.ZAxis>
    <s3D:NumericAxis3D AxisTitle="Z-Axis" AxisTitleOrientation="Auto" TickLabelOrientation="Auto" />
  </s3D:SciChart3DSurface.ZAxis>
</s3D:SciChart3DSurface>

Added Styling for Axis Titles in SciChart 3D

In earlier versions of SciChart 3D, Axis Title could not be styled separately from Axis Labels. Now, styling of Axis3D Titles is supported via the TitleStyle property in the Axis3D class. A custom Style with TargetType=”TextBlock” should be provided for styling the Axis Title. At the moment, styling options are limited to FontFamily, FontSize and Foreground settings.

The new styling is demonstrated in the “Style 3D Chart” example:

The code snippet below demonstrates how to provide a custom Style for an Axis3D Title:

<!-- Declare Axis Style with a Title Style -->
<Style x:Key="YAxisStyle" TargetType="s3D:AxisBase3D">
  <Setter Property="TitleStyle">
    <Setter.Value>
      <Style TargetType="TextBlock">
        <Setter Property="Foreground" Value="{StaticResource ExtraThemeStrokeBrush_5}" />
        <Setter Property="FontSize" Value="18" />
        <Setter Property="FontFamily" Value="Verdana" />
      </Style>
    </Setter.Value>
  </Setter>
</Style>

...

<!-- Apply Axis Styles to the SciChart3DSurface -->
<s3D:SciChart3DSurface WorldDimensions="200,100,200">
  <s3D:SciChart3DSurface.XAxis>
    <s3D:NumericAxis3D AxisTitle="X-Axis" Style="{StaticResource XAxisStyle}" />
  </s3D:SciChart3DSurface.XAxis>
  <s3D:SciChart3DSurface.YAxis>
    <s3D:NumericAxis3D AxisTitle="Y-Axis" Style="{StaticResource YAxisStyle}" />
  </s3D:SciChart3DSurface.YAxis>
  <s3D:SciChart3DSurface.ZAxis>
    <s3D:NumericAxis3D AxisTitle="Z-Axis" Style="{StaticResource ZAxisStyle}" />
  </s3D:SciChart3DSurface.ZAxis>
</s3D:SciChart3DSurface>

Configurable 3D Axis Cube

Axis Cube Planes can be hidden via the AxisPlanes API, which is represented by three static classes ZxAxisPlane, XyAxisPlane, ZyAxisPlane in SciChart.Charting3D.Visuals.AxisLabels namespace. The classes define AxisPlaneVisibilityMode and IsPlaneVisible attached properties. They allow configuring visibility for individual planes of the 3D Axis Cube by specifying whether an Axis Plane should appear by setting  the IsPlaneVisible property and also choosing the visible side of the Axis Plane via the AxisPlaneVisibilityMode property. This side visibility setting has three options: Negative, Positive or Auto, which correspond to the directions of World Coordinates in SciChart 3D.

This is demonstrated in the “Add Geometry to a 3D Chart” example:

The usage in code is as follows:

<s3D:SciChart3DSurface x:Name="sciChart3DSurface"
   WorldDimensions="400,400,400"
   s3D:ZxAxisPlane.AxisPlaneVisibilityMode="NegativeSide"
   s3D:XyAxisPlane.IsPlaneVisible="False"
   s3D:ZyAxisPlane.IsPlaneVisible="False">
<!-- Other SciChart3DSurface settings here -->
</s3D:SciChart3DSurface>

New VisualXcceleratorEngine API in SciChart 2D

Added API to manually control VisualXccelerator Engine. It does all drawing when VisualXccelerator renderer (hardware-accelerated renderer) is used.

The new API allows for improving startup speed of applications that use SciChart with VisualXccelerator renderer and provides more control over the Engine life time. Specifically, it is possible to start/restart the engine, choose when to stop it and inspect its status and configuration options during the runtime.

There is no explicit way to shut down the engine. This is done intentionally, since stopping the engine during rendering pass would cause a runtime error and result in a non-recoverable crash. However, setting the VisualXcceleratorEngine.UseAutoShutdown property to “True” makes the engine to shut down immefiately if there is no SciChartSurface using it. Otherwise, the engine will shut down when the last renderer instance that is using it is disposed or finalized.

The new methods and properties have been added to the SciChart.Charting.VisualXcceleratorEngine static class:

For example, this API is used to configure the VisualXccelerator Engine in the Bootstrapper of SciChart Examples Demo, as shown in the code snippet below. The full source code can be found in Sandbox on our GitHub:

try
{
  VisualXcceleratorEngine.UseAutoShutdown = false;
  VisualXcceleratorEngine.RestartEngine();
}
catch
{
  // Suppress Vx init errors. All rendering will occur with a fallback
}

Multi-Threading Support for the VisualXccelerator Renderer

The VisualXccelerator renderer now supports multiple UI threads. We reworked SciChart API on the C# side that was used to control the VisualXccelerator Engine, adding appropriate synchronization mechanisms and thus allowing multi-threaded rendering. However, please note that underlying VisualXccelerator Engine works in synchronous manner and rendering is still synchronous in the SciChart native code.

This example on SciChart GitHub demonstrates how to create a WPF Application with a couple of Windows, where each Window has its own UI thread. Both Windows show SciChart charts that can be configured to use specific renderer via a Style for SciChartSurface found in App.xaml.

Multiple Application Domains Support for the VisualXccelerator Renderer

Application Domains is a .NET mechanism that allows isolating multiple Applications within a single native process.

Before SciChart v8, VisualXccelerator Engine that is used for SciChart 3D and hardware-accelerated rendering in SciChart 2D did not allow being shared across multiple Application Domains. Since SciChart v8, the engine allows being used in an application that utilizes multiple Application Domains.

However, such support is limited due to the essence of Application Domains, which is isolation at the managed layer. No communication is possible between different Application Domains which makes rendering synchronization impossible. And since renderign with VisualXccelerator Engine is synchronous in its nature, it doesn’t support parallel rendering calls which may be the case when multiple Application Domains use SciChart with the hardware-accelerated renderer.

This example on SciChart GitHub demonstrates how to use SciChart in a solution that uses multiple Application Domains.

Improved Text Drawing API

Added the IRenderContext2D.MeasureText(string, float, FontFamily, FontWeight, FontStyle) method to the IRenderContext2D API.
It provides the means for measuring text size for the particualr renderer in use. The method should be used together with the IRenderContext2D.DrawText(Point, string, float, FontFamily, FontWeight, FontStyle, Color) method to find the size of a text and determine whether it should be drawn of not.
For example, this is how Heatmap uses these methods to draw text labels in cells:

var cellText = RenderableSeries.FormatDataValue(zValue, xInd, yInd);
var textSize = renderContext.MeasureText(cellText, fontSize, fontFamily, fontWeight, fontStyle);
if (textSize.Width < cellRect.Width && textSize.Height < cellRect.Height)
{ 
  var textPoint = new Point 
  { 
    X = cellRect.Left + (cellRect.Width - textSize.Width) / 2,
    Y = cellRect.Top + (cellRect.Height - textSize.Height) / 2 
  };
  renderContext.DrawText(textPoint, cellText, fontSize, fontFamily, fontWeight, fontStyle, cellTextColor);
}

Key Bindings for ChartModifiers

Added the ExecuteWhen property to ChartModifiers that allows specifying a key modifier. When the key is pressed, ChartModifier will be enabled to execute its action.
This code snippet shows how to specify key modifiers in XAML:

<s:SciChartSurface.ChartModifier>
  <s:ModifierGroup>
    <s:RubberBandXyZoomModifier ExecuteWhen="Ctrl" />
    <s:ZoomPanModifier ExecuteWhen="Shift" />
    <s:CursorModifier ExecuteWhen="Alt" />
    <s:ZoomExtentsModifier />
  </s:ModifierGroup>
</s:SciChartSurface.ChartModifier>

Updated the SciChart WPF Examples App

Download the demo installer today to see the new-look examples app. Don’t forget you can also clone it on Github here: github.com/abtsoftware/scichart.wpf.examples.

Export Examples with NuGet Packages

When exporting examples, there is a new option added that allows to reference the latest SciChart packages from NuGet. This is a handy option to start quickly with a new application that uses SciChart, for creating a demo project, or for making a small example to send to our support:

Reworked a 3D Example

The “Add Geometry to a 3D Chart” example has been reworked to demonstrate usage of the Coordinate Transformation API and the new Axis Planes API in SciChart 3D.

New Slim Line Series Example in Sandbox

Added a new example that demonstrates a custom SlimLineRenderableSeries.

It can be used in performance-demanding scenarios where display of large amount of line series (tens of thousands) is required. The SlimLineRenderableSeries does not derive from the WPF UI types and therefore has an advantage in construction time. This helps to improve chart loading time significantly (can be up to x5 times) in the use-case mentioned above. On the other hand, the drawback of this approach is that SlimLineRenderableSeries cannot participate in Binding and thus may be considered not suitable for MVVM scenarios.

The example can be found on SciChart GitHub.

New DPI-Aware SciChartSurface Example in Sandbox

Added a new example that demonstrates how to configure a 2D chart to render scaled-down.

From time to time our customers ask how to make a resolution-independent chart. This is important for use-cases where multiple scaling levels (or displays) have to be supported by an application that contains charts. When at high-scaling levels, default SciChart charts may appear blurry because it relies on raster graphics.

While SciChart doesn’t support such use-cases out of the box, there is a solution available. It is to scale SciChartSurface down using WPF capabilities (applying a ScaleTransform). This appoach is demonstrated in our new example that can be found on SciChart GitHub:

Other Features & Improvements

  • Visibility of RenderableSeries can be controled through the Visibility property
  • Improved AnnotationCreationModifier to not change internally the selectable and editable state of a new Annotation
  • Improved error handling in SciChart 2D and 3D

Documentation Updates

Bug Fixes

  • SC-6761, SC-6971 Fixed intermittent misalignment between Axis ticks & gridlines with VisualXccelerator Renderer in SciChart 2D
  • SC-7350 Fixed AnnotationCreationModifier to stop setting IsSelected, IsEditable internally to mark a created annotation
  • SC-7226 Fixed a crash in SciChartSurface c-tor when VxRenderer is not supported
  • SC-7299 Fixed a crash in XyzDataSeries<int> with FastBubbleRenderableSeries.AutoZRange=”True”
  • SC-7318 Fixed an issue when XAxis remained cached by RenderableSeries even after being removed from SciChartSurface
  • SC-7047 Fixed an issue with 3DAxis.PlaneBorder not applying when Right-Handed coordinate system
  • SC-7454 Fixed incorrect behavior of XyAxisPlane.DrawLabelsMode when Z-Axis is pointing upward
  • SC-7475 Fixed an issue when Text Color was ignored in custom TextEntities if chart background was assigned a light color

Breaking Changes

This is a list of breaking changes in SciChart v8.0 Beta.

Changes in SciChart 3D APIs

  • Behavior change: Totally reworked positioning of Axis Labels and Axis Titles in SciChart 3D in order to provide better experience and resolve cases of labels and titles overlapping
  • Obsolete property: Axis3D.TickLabelAlignment property has been made Obsolete. Please use the TickLabelOrientation property instead. See more details here
  • Obsolete property: SciChart3DSurface.AxisPlaneVisibilityMode property has been made Obsolete. To change visibility of World Box planes please set AxisPlaneVisibilityMode and IsPlaneVisible attached properties on SciChartSurface. See more details here
  • API change: Added a new parameter to the CameraController.Update() method. The updated method signature is CameraController.Update(bool hasChanges = true)
  • API change: Method signature changes in some SCRT*** classes due to VisualXccelerator Engine update. Although these classes are part of the public API, they are used internally most of the time

Changes in SciChart 2D APIs

  • Behavior change: Changed default behavior of AnnotationCreationModifier. Now it doesn’t change internal state of a new Annotation by setting IsEditable and IsSelected properties. These properties can be set separately in an AnnotationCreationModifier.AnnotationCreated event handler
  • Obsolete property: Static property VisualXcceleratorEngine.UseAlternativeFillSource has been marked Obsolete. Fill source is resolved per instance now, so the property has been replaced by the instance property VisualXcceleratorRenderSurface.UseAlternativeFillSource
  • API change: Added a new parameter to the IAxisPanel.DrawTicks(TickCoordinate, float) method. This change impacts AxisPanel and PolarAxisPanel classes and all implementors of the IAxisPanel interface. The updated method signature is IAxisPanel.DrawTicks(TickCoordinates tickCoords, float offset, bool isSoftwareMode)
  • API change: Removed the Dispatcher parameter from the RenderTimer class constructor
  • API change: Changed the signature of ChartModifierBase.MatchesExecuteOn(MouseButtons mouseButtons, ExecuteOn executeOn) method: added two MouseModifier parameters. The updated method signature is ChartModifierBase.MatchesExecuteOn(MouseButtons mouseButtons, MouseModifier modifierKey, ExecuteOn executeOn, MouseModifier executeOnModifier)
  • API change: Reworked the API of VisualXcceleratorRenderSurface class. Removed the VisualXcceleratorRenderSurface(VxRenderSettings) constructor. Now, rendering settings for the VisualXccelerator renderer can be provided through the VisualXcceleratorEngine static class. Please find more details here

Changes in the IRenderContext API

  • API change: Removed the Rect parameter (second parameter) from the IRenderContext2D.DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint) method. It was not used internally but might have forced users to calculate Sprite boundaries before calling it. The updated method signature is IRenderContext.DrawSprite(ISprite2D srcSprite, Point destPoint)
  • API change: Removed the Rect parameter (second parameter) from the IRenderContext2D.DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points) method. It was not used internally but might have forced users to calculate Sprite boundaries before calling it. The updated method signature is IRenderContext.DrawSprites(ISprite2D sprite2D, IEnumerable<Point> points)
  • API change: IRenderContext2D.DrawText(Rect, Color, float, string, FontFamily, FontWeight, FontStyle) has been made Obsolete. It was problematic because there was no means to measure text size provided by the API. In SciChart v8.0, new method has been added that allows measuring text size. Please use IRenderContext2D.DrawText(Point, string, float, FontFamily, FontWeight, FontStyle, Color) and IRenderContext2D.MeasureText(string, float, FontFamily, FontWeight, FontStyle) instead. See this section for more details
  • API change: Added a new method to the IVxRenderContext interface: IVxRenderContext.BeginFrame(). When using IRenderContext API for drawing with VisualXccelerator renderer, the IVxRenderContext.BeginFrame() method must be called before any drawing operations. When using other SciChart drawing APIs such as Custom RenderableSeries API, this is not required because the method is called by SciChart internally. Please see the “Using RenderContext API” example in Sandbox on our GitHub for a usage example

Where to get it

SciChart WPF v8.0 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

Please ensure you uninstall the previous version(s) of SciChart before installing the latest version as this can prevent some issues in the upgrade process!

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

 

The post SciChart WPF v8.0 Beta Released! appeared first on SciChart.

SciChart 2023 – a Year in Review

$
0
0

As we come to the end of the year I’d like to take a moment to recap 2023 for SciChart, our achievements, what we have done for our valued customers and share a glimpse of what’s coming in the future.

First up, I want to thank all our loyal customers and users, without you this wouldn’t be possible. So, without further ado, let’s review 2023!

Financial Report for 2023

SciChart is now in its 11th year since launch (13th year since incorporation) and against a difficult economic backdrop, we’ve posted a modest growth in revenue & healthy growth in profit for the current financial year.

We are an independent, privately owned business, and so far, we have never taken on investment or debt.

SciChart is funded entirely by sales and must be user driven & customer-focussed. Your custom is our lifeblood hence we work to serve you!

Some stats for our Financial year which ended on November 30th:

  • SciChart has grown every year since inception, with over 100% growth in the past 5-years.
  • SciChart has posted a profit every year since inception
  • Revenue growth in 2023 is modest at ~5%
  • Profit margin is healthy at ~35%
  • SciChart gave 7.5% of profits (target 10%) to charitable causes in 2023, specifically focussed around funding solar, computer equipment in schools and child sponsorships in developing countries.
  • Also we passed 12,000 customers in 2023  – something we’re immensely proud of!

We also had headcount growth this year adding staff to our JavaScript team, C++/3D graphics engine team, sales team and back-end (licensing, e-commerce) team.

Downloads, Releases & Updates this Year

Steady Growth in Adoption

With almost 600k downloads on NuGet, and 3,000 downloads per week on npmjs, and 150k downloads on Maven SciChart continues to grow in popularity. Check out this graph (provided by npmtrends.com) showing the growth in Nuget Package downloads for SciChart WPF.

NPM Trends SciChart WPF package download growth on Nuget
SciChart WPF NuGet Package downloads growth on NpmTrends. Don’t forget we only listed SciChart on NuGet in 2015 – before that self-hosting the binaries!

Our Github repositories such as SciChart.Wpf.Examples, Js.Examples and iOS.Examples / Android.Examples have a combined ~600 Github stars.

If you didn’t know, you can clone the examples/demos source code for all our demo apps at the above repositories, plus many other helpful boilerplates and getting-started guides.

Our download / GitHub star numbers might not compare to some popular Open Source libraries, but remember the numbers will always be smaller for paid and closed-source libraries. These stats should show steady growth in user base and give you confidence when choosing our solutions.

What about releases?

It’s been a feature-packed year and we have a number of releases which have made it into production in 2023. Here’s a selection of major releases with links to the release notes:

In addition there’s been a number of nightly builds and hot fixes which contain urgent bug fixes as reported by users:

Changelogs published

By popular demand we now have changelogs detailing minor updates and nightly builds. You can find these under the main menu -> Developers -> Change logs.

SciChart Changelogs now live
Changelogs are now live for our WPF Charts, JavaScript charts and iOS/Android charts

We will be updating these on each hotfix build so you can quickly at a glance see & search what’s changed in SciChart.

Support Stats

One of the things SciChart is renowned for, and one of our USPs is tech support.

In 2023, our team valiantly handled 2,503 priority support incidents, technical enquiries, bug reports and requests for assistance from our customers.

In addition to this, we answered around 300 questions on our community forums, bringing the total number of publicly searchable forum questions for SciChart WPF, JS, iOS & Android to over 4,000.

On priority support, the average time to first response was slightly longer than the 24-hours we strive for, however, customer satisfaction remains high, with the following ratings (result of user survey after support ticket closed).

Licensing Support 4.67 / 5.0
Sales (All platforms) 4.91 / 5.0
Support (JavaScript) 4.78 / 5.0
Support Android 5.00 / 5.0
Support WPF 4.26 / 5.0
Average 4.72 / 5.0

Two things I’d like us to improve on in 2024 are having a faster time to first response, and a higher rating for SciChart WPF support. It’s always been our goal to have a number near 5-stars.

To achieve this we’re investing in support-desk software, processes and systems to provide better and more comprehensive answers (more on this below).

What’s Next for SciChart in 2024?

Future Releases on the Horizon

We have a number of future releases in progress or planned. These include:

  • SciChart.js v4.0 which will have Polar charts, Radar charts, Polar Heatmap, Radial Bar charts and all manner of minor enhancements
  • SciChart WPF – we’re working in partnership with a company on something very exciting to allow our WPF charts to be multi-platform (working on Linux, macOS). Details to be announced soon.
  • SciChart iOS/Android are due a major release, with some new features. In the new year we’re planning to investigate if it’s possible to write react-native and flutter wrappers for these libraries.
  • Further unifications of our underlying 3D graphics engine – with a view to supporting ‘SciChart anywhere’ and quickly reacting to new platform & framework releases
  • Tools to enhance the development experience and cut your time to market

Investment into Tech-Support

In Q1 2024 we aim to swap our support-desk for a state of the art system. This will be more efficient and provide a better user experience to both our customers and staff resulting in time-savings.

Above: new Support desk software will bring SciChart into the future

We’re also fixing the search-as-you-type search on the scichart forums by completely re-implementing it in C# and Azure. Previously when you asked a question our search engine provided similar questions (see below). This has been broken for a while, we blame Docker version updates and AWS! 

Above: Search as you type was previously working but needs a rebuild. We blame Docker and AWS!

Combining these systems:

  • A full site search to serve answers from our 15,000 documentation pages, 4,000 forum questions and 500 examples
  • A state of the art support desk
  • A little AI glue magic

… we hope to achieve a really excellent support system in 2024 which will allow our team to be more efficient, and serve our customers better saving you time & money too.

Investment into Systems, Pricing & Licensing Changes

We took on a full-time hire this year just to maintain our growing back-end systems. As well as writing chart software, e-commerce and managing license keys is also a full time job!

Soon, we expect to release:

  • A completely new store to replace store.scichart.com
    • This will allow multi-year subscription purchases and clearer comparison of license types.
    • Ability to self-quote & create and download price quotes on demand.
  • Pricing changes (more details in early 2024)
    • Our headline pricing will remain the same, however there will be a change to the discount structure for subscription renewals & support SLA.
    • Existing customers will be grandfathered into the current renewal discount structure and SLA.
    • As well as annual billing, we’re introducing quarterly and monthly billing options for some enterprise customers.
  • A completely re-worked my-account page making it easier to view your quotes, invoices and licenses
  • Ability to mark employees as having left your organisation, so their license keys may be re-used
  • Ability to self-service license key pairs for SciChart.js ‘server side licensing’

There’s a lot coming soon to make the sales & licensing process more streamlined both internally and externally.

Giving Back to the Community

There’s a lot of stats above and talk about pricing & licensing. However, at our core we are a business that believes in doing something good & enabling cutting edge science & technology.

One last thing I wanted to talk about. As well as focussing on commercial success we are committed to supporting research & development. For example: new medical advancements, cancer research and more through our free educational licensing program. If you want to take advantage of our educational licensing you can just ask.

In the last year we gave away 33 licenses of SciChart WPF, JS, iOS and Android worth $50,000 to universities & non-profit medical research organisations. Plus, we made the community-license version of SciChart.js meaning it can now be used in non-profit applications.

Two notable case studies under our free educational licensing program I want to talk about:

Neurorestore – World’s First restoration of motor function in severed spine paralysis patients

Neurorestore, a swiss non-profit research organisation, developed implants with precise electro-stimulation implants to allow paralysed patients with severed spine injury to walk again. Watch the video below to see an overview of their incredible research. SciChart makes a cameo appearance at 2m46s!

This cutting-edge research was documented in Nature magazine and reported on by BBC News earlier this year.

Neurorestore contacted us to say that SciChart WPF had been used to visualise waveforms provided by the electrostimulation modules during research. Their application is visible in the video above at 2m46s and below, right.

Extract from the paper Activity-dependent spinal cord neuromodulation rapidly restores trunk and leg motor functions after complete paralysis published in Nature magazine showing SciChart enabled waveform visualisation (bottom right)

This is an incredible advancement in science & technology and we’re blown away by the work of the researchers and it’s far-reaching impact.

Mayo Clinic – Infrared spectroscopic laser scanning confocal microscopy for whole-slide chemical imaging

The second project is a research team we’ve been working with for a while. Also under our free educational licensing model, the University of Illinois created high-definition Infrared Spectroscopy for diagnostic tissue imagine (tumour/cancer tissue diagnosis). This involved the visualisation of massive (100 billion cell) datasets of 2D Heatmap data in real-time and had far-reaching impact for reduction of tissue biopsy diagnosis time.

Now, in combination with the Mayo Clinic – a not for profit cancer care clinic – the researchers have developed a new type of mid-infrared (mid-IR) microscope for chemical imaging, using a part of the electromagnetic spectrum known for it’s ability to provide detailed molecular information.

Above: Extract from the paper Infrared spectroscopic laser scanning confocal microscopy for whole-slide chemical imaging published in Nature magazine

This new microscope is designed to be much faster and produce higher quality images than current models. It uses a special design with custom optics to scan large areas quickly and with great detail, making it practical for analyzing biological samples like tissues without needing special labels or dyes.

This incredible advancement will benefit cancer research by enabling rapid, detailed, and non-invasive imaging of tissues at a molecular level, facilitating better understanding and diagnosis of cancerous changes.

For projects like these two we will gladly donate SciChart licenses under our educational licensing program and we are immensely proud to be able to facilitate this research, and help drive science & technology forward.

And finally …

So, for this year, we hope you see we’ve been working extremely hard to bring you the best possible 2D/3D charting software, having achieved some great releases, improvements and we plan to keep doing so in the new year!

Thank you to all our customers who have supported us this year, reviewed us, encouraged us and of course purchased from us. We hope to make you very pleased about your purchasing decisions in the coming 12 months!

Best regards,
Andrew

Managing Director, SciChart

 

 

 

The post SciChart 2023 – a Year in Review appeared first on SciChart.

SciChart WPF v8.1 Released!

$
0
0

We’ve moved over to a new format for communicating our releases and updates of our popular WPF Chart control, by publishing a rolling changelog of every fix or enhancement in SciChart.

You can find the changelogs in the top menu at Developers -> Changelogs -> SciChart WPF ChangeLog

WPF Charts: What’s New in SciChart WPF v8.1?

This release is a cumulative update with fixes and minor enhancements which is backward compatible to version 8.0 of SciChart WPF. It’s recommended for all users on v8.x to upgrade.

Changes since v8.0 include:

  • Updated documentation articles
  • SC-7766 Fixed an issue when Stroke was not applied to WaterfallRenderableSeries3D when StrokeColorMapping was not provided
  • SC-7764 Fixed a NullReferenceException when zooming in at the edges of a StackedColumns chart
  • SC-7763 Added disposal of inner textures for WaterfallRenderableSeries3D
  • SC-7750 Fixed an issue when Tooltips would show accumulated value for StackedSeries instead of a data value
  • SC-7720 Fixed AccessViolationException when LabelProvider returns an empty string in SciChart 3D
  • SC-7716 Fixed AccessViolationException during LineSeries rendering when DataSeries contains Double.NaN values only
  • SC-7697 Fixed misaligned tooltips with StackedColumns and DateTimeAxis
  • SC-7651 Fixed an issue when ChartModifiers would force focus to SciChartSurface
  • SC-7646 Fixed default bindings for Axes and RenderableSeries in SciChart 2D MVVM API
  • SC-7617 Fixed an issue when WaterfallRenderableSeries3D didn’t update when properties of WaterfallDataSeries changed
  • SC-7456 Fixed PaletteProvider for FastStripeRenderableSeries
  • SC-7648 Added support of Logarithmic X-Axis with WaterfallRenderableSeries3D
  • SC-7727 Added support of Logarithmic Z-Axis with WaterfallRenderableSeries3D
  • SC-7630 Fixed an issue when hit-test would fail for some slices of WaterfallRenderableSeries3D
  • SC-7726 Fixed an issue when WaterfallRenderableSeries3D would ignore Z-values when passed into DataSeries constructor
  • SC-7771 Fixed filling of WaterfallRenderableSeries3D with gradient brush when Y-Axis range contained negative part
  • SC-7790 Added default shape for ColumnRenderableSeries3D and ImpulseRenderableSeries3D
  • SC-7748 Fixed an issue when SciChartSurface would not pull new Annotations from a bound collection through AnnotationBinding after Unload/Load
  • SC-7750 Fixed tooltips for Stacked Series showing AccumulatedValue instead of Y-Value in some use-cases
  • SC-7779 Fixed rendering of Stacked Series with ZeroLineY
  • SC-7795 Fixed incorrect rendering of 100% StackedColumnRenderableSeries with negative Y-values
  • SC-7796 Fixed incorrect rendering of 100% StackedColumnRenderableSeries when ZeroLineY is set

More details can be found at the SciChart WPF Changelog

Where to get it

SciChart WPF v8.1 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

Please ensure you uninstall the previous version(s) of SciChart before installing the latest version as this can prevent some issues in the upgrade process!

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

The post SciChart WPF v8.1 Released! appeared first on SciChart.

SciChart WPF v8.2 Released!

$
0
0

We’ve moved over to a new format for communicating our releases and updates of our popular WPF Chart control, by publishing a rolling changelog of every fix or enhancement in SciChart.

You can find the changelogs in the top menu at Developers -> Changelogs -> SciChart WPF ChangeLog

What’s New in v8.2 of SciChart’s WPF Charts?

This release is a cumulative update with fixes and minor enhancements which is backward compatible to version 8.0 of SciChart WPF. It’s recommended for all users on v8.x to upgrade.

Changes since v8.1 include:

  • Improved rendering error logging for better clarity and diagnostics
  • Clarified error messages when creating DataSeries with unsupported data types
  • Enhanced Dispose pattern implementation in SciChart 3D with improved management of locks and managed resources
  • SC-7622 Added the ability to exclude a RenderableSeries3D from hit-testing by setting the IsHitTestVisible property
  • SC-7554 Fixed autoranging behavior that would ignore ZeroLineY for FastColumnRenderableSeries, FastImpulseRenderableSeries and StackedSeries
  • SC-7719 Fixed an issue when SciChartSurface would not pull new RenderableSeries from a bound collection through SeriesBinding after Unload/Load
  • SC-7800 Fixed an issue when VerticalSliceModifier wouldn’t hide VerticalLines when disabled
  • SC-7830 Fixed an issue when SciChartSurface would throw a SynchronizationLockException during rendering if there were no axes
  • SC-7838 Fixed incorrect behavior of StackedSeries when ZeroLineY was smaller or greater than Y-values in a series
  • Added the possibility to turn off resampling for FastStripeRenderableSeries using the ResamplingMode property
  • SC-7734 Fixed failing of example export on some PCs due to missing trailing slash in the export path
  • SC-7792 Fixed a NullReferenceException in SciChart3D when hit-testing invisible or not yet rendered RenderableSeries3D objects
  • SC-7749 Fixed InvalidCastException with StripeDataSeries when data points number exceeded size of the viewport
  • SC-7739 Fixed the issue with serialization of AnnotationCollection that would cause the default XML Serializer to skip other properties in the same class
  • SC-7815 Fixed the issue when WaterfallRenderableSeries3D threw ArithmeticOperation Exception when hit-tested while invisible or before the first render
  • SC-7647 Fixed the issue when repeated adding and removing of WaterfallRenderableSeries3D slowed down series creation time

More details can be found at the SciChart WPF Changelog

Where to get it

SciChart WPF v8.2 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

Please ensure you uninstall the previous version(s) of SciChart before installing the latest version as this can prevent some issues in the upgrade process!

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

The post SciChart WPF v8.2 Released! appeared first on SciChart.

Viewing all 303 articles
Browse latest View live