Skip to content

Roadmap

Kristof Klein edited this page Aug 10, 2023 · 4 revisions

Vision

Vizzu envisions a user-friendly animated charting and data storytelling tool that empowers users to explore and present data effectively. With a focus on usability, our platform will enable users to uncover insights, create compelling visualizations, and seamlessly share their findings. We aim to cultivate a collaborative community that shares knowledge and expertise to enhance Vizzu continuously.

Roadmap

Welcome to the roadmap page for Vizzu. This high-level overview provides a glimpse into the future of Vizzu's development. The tasks listed here are not bound by strict deadlines. We believe in maintaining flexibility to better serve our users and adapt to their evolving needs. This page aims to provide a sense of the possibilities for future improvements in Vizzu, without trying to be a comprehensive list of future developments. For a more granular view of our ongoing projects and detailed tasks, please visit our issue trackers.

Core Vizzu Engine

Refining for future development

Throughout this iteration of Vizzu, we have gained invaluable insights and lessons. As a result, we have identified three key areas of the project where we believe a different approach will greatly enhance the code's flexibility for future development.

Data handling

The first area for redesign is data handling. Currently, we need the entire dataset with sufficient granularity to describe all the charts within the data story to be passed to Vizzu. Subsequently, we aggregate this dataset into an n-dimensional data cube for each chart. However, this approach can lead to large data cubes when dealing with numerous dimensional data series, even if only a few markers are present due to data filters. To overcome this limitation we will use a different approach: aggregating the dataset into a filtered data frame, akin to the core functionality offered by the Pandas library. By adopting this approach, we can address our runtime bottleneck for large data cubes and introduce new features like inputting the data chart by chart or connecting to an external database or dataframe tool.

Marker morphing

The second area we are focusing on is chart marker geometries. We realized that the conventional approach of differentiating between bar, circle, line, and area markers does not fit well the needs of our generic chart morphing engine. This approach introduces unnecessary complexity into our logic. To address this, we will introduce a different abstraction using arbitrary shaped markers and connections between them. This will let us expand our chart repertoire to include Sankey diagrams, maps, and even network visualizations.

Rendering

The third area we are focusing on for redesign is the rendering process. Currently, we interpolate abstract parameter sets during the animations, what we use to calculate the final graphical primitives frame-by-frame. To enhance flexibility, we are transitioning to a new approach where we calculate the graphical primitives before the animation, along with basic animation parameters such as path, delay, duration, and easing. This will let us realize new features and improvements, like using OpenGL rendering or enable SVG export within Vizzu.

Upcoming Feature Enhancements

In addition to the mentioned improvements, our future plans for Vizzu include a comprehensive set of charting features with full interactivity. We are committed to enhancing the data storytelling capabilities and introducing new features that enable users to create interactive dashboards.

Standard charting features

We have plans to incorporate a range of standard static charting features into Vizzu. Some of these additions will include time-series handling, logarithmic scales, multi-axis support, various sorting types and the ability to create histograms with binning functionality. To enhance interactivity, we plan to introduce zooming and scrolling within the plot area.

Enhancing Data Storytelling Capabilities

To help building data stories, we will create a chart and transition recommendation system based on user-selected analytical operations. Additionally, we plan to introduce animation-staggering to make Vizzu animations more customizable.

Enabling Dynamic Dashboards

We have a series of planned features that will enable dynamic dashboards. We plan to allow users to display multiple charts within a single view using common or different datasets for the charts. Additionally, we will work on introducing nested chart support. With these features users will be able to create hierarchical and interconnected visualizations within their dashboards.

Extensions

Next to our existing UI extension, vizzu-story, we have plans to develop a range of additional UI extensions that will assist in building data visualizations. For instance, we plan to create a style editor widget which will help developers to easily customize the appearance and styling of Vizzu charts.

ipyvizzu

Besides all the new core functionality, which will be accessible through ipyvizzu as well, we are planning to enhance ipyvizzu with additional features and improvements.

The initial version of ipyvizzu closely followed the structure of the JavaScript API. To better serve Python developers, we plan to introduce a new, more "Pythonesque" API. This updated API will provide a more conventional interface, providing better integration of Vizzu within Python projects and a more comfortable developer experience.

We also have plans to enable the usage of Python functions in both data filters and event handlers. allowing developers to integrate Vizzu more into their Python app or notebook.

Furthermore, we are looking into expanding the range of supported data inputs popular in the Python ecosystem, like Spark dataframe.

Finally, we plan to separate display functionalities from core features making it easier to integrate ipyvizzu into a wider range of platforms and environments.

Improving Accessibility

We aim to ensure that all users and contributors, regardless of their cognitive, developmental, intellectual, mental, physical, and/or sensory abilities, can have a seamless and inclusive experience with Vizzu. We are committed to updating our codebase, documentation, and other web assets to enhance accessibility. We may lack experience in this area and would appreciate any contributions or assistance from the community to help us create a more accessible and inclusive environment for everyone.