VisActor — Narrative-oriented Intelligent Visualization Solution
Tags: webdev, datavisualization, javascript, opensource
Published: 2023-11-08 08:21:21



# 1. What is VisActor ？

![](https://miro.medium.com/v2/resize:fit:1400/0*TloQA4OrX649aFpO)

（[Official Website](https://www.visactor.io/)：  [https://www.visactor.io](https://www.visactor.io/))

# VisActor is a data visualization solution

VisActor originates from a multitude of visualization scenarios within ByteDance. While covering conventional visualization scenarios, it takes narrative visualization as a new focus and aims for intelligent visualization. It has formed a visualization solution composed of multiple modules including a rendering engine, visualization grammar, data analysis components, chart components, table components, GIS components, graph visualization components, intelligent components, and other peripheral ecological components.

![](https://miro.medium.com/v2/resize:fit:1400/0*BqltRyG5xeoHpKZg)

As a comprehensive solution, VisActor provides capabilities support at all key points in the complete visualization process.

# VRender

It’s not just a feature-rich visualization rendering engine, but also a handy and exquisite brush for creating visualization artistry.

[_github_](https://github.com/VisActor/VRender)_：https://github.com/VisActor/VRender_

[_website_](https://www.visactor.io/vrender)_：https://www.visactor.io/vrender_

VRender is a visualization graphics rendering engine responsible for the final presentation of visual charts.

In addition to providing basic graphic drawing capabilities, VRender caters to a wider range of visualization scenarios, offering various capabilities such as custom animations, graphic combinations, and narrative orchestration.

![](https://miro.medium.com/v2/resize:fit:1400/0*DjDBQOmVUWwT6iBj)

[demo of vrender](https://www.visactor.io/vrender/demo/examples/graphic-rect/morphing-animate)

All the components, events, and cross-end capabilities needed in the whole solution are built around VRender as the core, and each module provides expansion interfaces. For instance, it allows the introduction of third-party libraries to add hand-drawn style rendering:

![](https://miro.medium.com/v2/resize:fit:1400/0*DElPv4wqEFqHuhwi)

[a hand-drawn style pie](https://codesandbox.io/s/eloquent-black-k3mf87)

[3D Chart Rendering](https://www.visactor.io/vrender/demo/examples/graphic-symbol/symbol-wave):

![](https://miro.medium.com/v2/resize:fit:640/0*r2cJI7kv5FF3RYTa)

# VGrammar

It’s not just a visualization grammar that generates thousands of charts, but also a data magician that transforms the mundane into the extraordinary.

[_github_](https://github.com/VisActor/VGrammar)_：https://github.com/VisActor/VGrammar_

[_website_](https://www.visactor.io/vgrammar)_：https://www.visactor.io/vgrammar_

Visualization grammar is a universal visualization system that implements the transition from data to graphic display, providing semantical grammar (or language). In theory, any desired visualization form can be achieved based on the visualization grammar, not limited to specific chart types. For scenarios with more customization requirements, we recommend using VGrammar.

VGrammar is the core of the entire VisActor system. On this basis, we abstract out component libraries such as VChart, VTable, VGraph, and VGis for specific business scenarios.

![](https://miro.medium.com/v2/resize:fit:840/0*34xtTzwFwLwbLK7c)

[a demo created by VGrammar](https://codesandbox.io/s/vchart-muti-pie-j48xj5)

To lower the cost of using visualization grammar, we offer both declarative and imperative syntax.

In addition, aimed at common visualization scenarios, we provide common basic components.

![](https://miro.medium.com/v2/resize:fit:1400/0*Ci_-jvM1IAQnb5Qd)

[Screenshot source of VGrammar](https://www.visactor.io/vgrammar/guide/guides/marks/component)

Compared to the chart library, VGrammar provides flexible and powerful feature support in many aspects such as graphic element types, animation arrangements, layout, rendering, custom extensions, and more. Here are a few examples:

-   [**Archimedean Spiral**](https://www.visactor.io/vgrammar/demo/basic-mark-line/spiral)

![](https://miro.medium.com/v2/resize:fit:1400/0*uLlRN22zS64ruQ03)

-   [**Cell Graphic Element**](https://www.visactor.io/vgrammar/demo/mark-cell/basic-cell)

![](https://miro.medium.com/v2/resize:fit:1400/0*RA4TMrQcubAussKs)

-   [**Custom Animation**](https://www.visactor.io/vgrammar/demo/animate/basic-animate)

![](https://miro.medium.com/v2/resize:fit:1400/0*70BAcnRe9KUs6vrR)

# VChart

It’s not just a ready-to-use multi-end chart library, but also a vivid and flexible data storytelling narrator.

[_github_](https://github.com/VisActor/VChart)_：https://github.com/VisActor/VChart_

[_website_](https://www.visactor.io/vchart)_：https://www.visactor.io/vchart_

Based on VGrammar, VChart initially caters to traditional statistical chart applications, covering common types of charts based on existing business deposits.

![](https://miro.medium.com/v2/resize:fit:1400/0*fJRR1zmoA4CA7P35)

[screenshots of VChart](https://www.visactor.io/vchart/example)

It extends to 3D charts on the basis of regular 2D charts.

![](https://miro.medium.com/v2/resize:fit:1400/0*yMbIcTpVNmjv4-Fw)

[a demo of VChart](https://codesandbox.io/s/adoring-gates-96pfy2)

Meanwhile, in the direction of narrative visualization, by utilizing the powerful and flexible interfaces of VGrammar, it continues to perfect various narrative features, add various narrative templates, and match more narrative scenarios.

![](https://miro.medium.com/v2/resize:fit:1400/0*ZUG_btVOfpRlQdvJ)

[dynamic scatter chart created by VChart](https://www.visactor.io/vchart/demo/example/area-chart/storytelling/timeline-scatter)

# VTable

It’s not just a high-performance multi-dimensional data analysis table, but also a grid artist creating between rows and columns.

[_github_](https://github.com/VisActor/VTable)_：https://github.com/VisActor/VTable_

[_website_](https://www.visactor.io/vtable)_：https://www.visactor.io/vtable_

VTable is a high-performance multi-dimensional analysis table component developed based on Canvas. Compared to the traditional DOM table components, VTable primarily solves rendering and interaction performance issues under the condition of massive data, providing a smooth experience even with millions-of-level data.

![](https://miro.medium.com/v2/resize:fit:1400/0*sPTpi_4FMdCkbWy-)

[a demo of VTable](https://www.visactor.io/vtable/demo/performance/100W)

In terms of business scenarios, it mainly provides data computation and visualization capabilities for multi-dimensional data display scenes, such as pivot analysis and tree-shaped display. At the same time, VTable can directly embed VChart instances to become a chart container, achieving high-performance rendering of multiple charts on a single canvas, greatly expanding the visual presentation forms based on the table.

![](https://miro.medium.com/v2/resize:fit:1400/0*u2Zs-wMh-hh8y4WT)

[more examples of VTable](https://www.visactor.io/vtable/example)

# Intelligent Visualization

Intelligence is the future core direction of VisActor. Only on this basis can we truly reduce the access and development costs for developers and focus their attention beyond visualization. The VisActor team has been conducting research and practice in several areas including intelligent color matching, intelligent chart recommendations, automatic layout, data parsing, and intent recognition by integrating large models as well as traditional intelligent algorithms. The first intelligent visualization component will be released in the third quarter of 2023.

![](https://miro.medium.com/v2/resize:fit:1400/0*OL-bBI3oCw_VarwA)

Regarding the direction of intelligent visualization, we will continue to output content from multiple perspectives. You’re welcome to keep an eye on our [GitHub](https://github.com/VisActor/)  and  [social media](https://twitter.com/xuanhun1)  for updates.

# There’s More

Other components of the VisActor visualization solution have been implemented in hundreds of projects within ByteDance, and we are currently preparing for open-sourcing and will meet you gradually. This includes (but is not limited to) the following directions:

VGraph in the direction of graph visualization.

![](https://miro.medium.com/v2/resize:fit:1400/0*sJBvlw7NFHDt7r31)

（Creating with @visactor/vgraph）

VGis in the direction of GIS.

![](https://miro.medium.com/v2/resize:fit:1202/0*MLl3pyOdUkp84FgM)

Creating with @visactor/vgis

In cross-platform direction, VisActor can currently adapt to Node, H5, and various mini-program ends. The solutions to embed in Python, Flutter, and Rust will officially meet you soon, as which time VisActor will become a truly full-platform visualization solution.

![](https://miro.medium.com/v2/resize:fit:1400/0*B32qWlBhudIr6s29)

[demo of word-cloud](https://codesandbox.io/s/word-cloud-w45g3c)

For the BI field, where statistical chart applications are most used, we will also open source a lightweight Headless BI system. Please stay tuned.

# 2、VisActor Open Source Philosophy

# Open source is not just about showing off code, but connecting to the community through the code.

Placing the code on GitHub is the beginning of embracing the community. We hope to truly integrate VisActor into the community and push for its better and healthier development along with thousands of developers.

# Open source is not just about opening code, but also sharing experiences.

VisActor is not  _castles in the air_  — it’s a distillation and upgrade based on a vast amount of practical experience. To better assist developers in using visualization components, we will continue to share our best practices, while also aggregating and sharing the community’s experience summaries.

# Open source is not just geared towards developers, but also designers, product managers, and end users.

The value of VisActor ultimately has to be reflected in the enhancement of different products’ quality and value. The same as serving developers, we are also committed to connecting designers, product managers, and end users through open-source means. We will offer visualization design resources, product practice cases, and are willing to enter more product teams for valuable exchanges, looking forward to hearing voices from different segments.

# 3、Welcome to Join Us

Finally, we sincerely welcome all friends interested in data visualization to join us. You can participate in VisActor’s open-source construction in several ways:

1.  Clone the project you’re interested in, submit a PR. For specific methods, please refer to:  [Code of Conduct](https://github.com/VisActor/VChart/blob/develop/CODE_OF_CONDUCT.md)  和  [contributing guide](https://github.com/VisActor/VChart/blob/develop/CONTRIBUTING.zh-CN.md)  。

2. Of course, you can also create your own open-source project to contribute to the Visactor ecosystem, and we will promote and build it together!

3. You can also share your experiences with everyone, including demos, articles, cases. Each project has a Wiki for recording, where you can edit  [VChart](https://github.com/VisActor/VChart/wiki/Showcase-Your-Visualizations-Created-Using-@visactor-vchart)  [VTable](https://github.com/VisActor/VTable/wiki/Showcase-Your-Visualizations-Created-Using-@visactor-vtable)  [VGrammar](https://github.com/VisActor/VGrammar/wiki/Showcase-Your-Visualizations-Created-Using-@visactor-vgrammar)

4. If you find a bug or have a good suggestion, you can raise an issue on  [GitHub](https://github.com/VisActor)  . You can also directly join our community （[VisActor Channel](https://discord.gg/3wPyxVyH6m)）for communication. Of course, you can also leave us a message on  [Twitter](https://twitter.com/xuanhun1).