Datoviz v0.4 release candidate¶
I'm glad to announce the first release candidate of Datoviz v0.4. 🚀
Datoviz is an open-source GPU rendering engine for interactive scientific visualization. Written in C and based on Vulkan and WebGPU, it is designed for 2D and 3D graphics, especially with large datasets.
Version 0.4 is a major upgrade and the result of months of intensive work. This release candidate is a public testing milestone, not the final v0.4 release. I would be very grateful for feedback about installation problems, unclear APIs or documentation, broken examples, and behavior on different platforms and GPUs.
Datoviz in action¶
A few examples showing the range of interactive 2D and 3D scientific visualization supported by Datoviz.
Datoviz sits at a lower level than a high-level plotting library like Matplotlib. It is a rendering engine with a C API and a generated Python binding. High-level plotting interfaces belong to the experimental VisPy 2 and Graphics Server Protocol (GSP) work.
What is in v0.4?¶
Datoviz v0.3 already had a broad set of 2D and 3D visuals and basic interactivity. Version 0.4 brings together many features I had wanted Datoviz to support for years:
- order-independent transparency for translucent 3D meshes;
- 3D rendering techniques such as depth cueing, Eye-Dome Lighting, and screen-space ambient occlusion;
- multisample antialiasing;
- improved lighting and material controls for 3D meshes and spheres;
- more than one hundred examples covering most visuals and features in the library;
- an experimental WebGPU backend, with live browser versions of most examples;
- an experimental compute-to-render path, including CUDA and CuPy interoperability;
- item picking, selection, data probing, and GPU readback;
- terminal IPython integration;
- native Qt and PyQt hosting.
Why v0.4 is different¶
The visible features are only part of the story. The deeper change in v0.4 is architectural: the scene, rendering protocol, GPU runtime, frame execution, and presentation layers now have clearer boundaries.
This makes the library easier to extend without creating a separate rendering path for every new platform or output mode. The specification-driven work behind this architecture, and the role coding agents played in it, will be the subject of a separate post.
Release-candidate scope¶
This release candidate does not imply that the API is fully stable. The architecture and public surface are much closer to their intended v0.4 form, but feedback may still require changes, and v0.5 may make further breaking changes where necessary.
Try Datoviz v0.4¶
The next step is to put this release in the hands of more users. External testing and feedback will reveal problems that internal development cannot.
python -m pip install datoviz==0.4.0rc1
Start with the installation guide, the quickstart, or the examples. The detailed RC scope and known limitations are in the release notes.
I would particularly appreciate feedback about:
- installation on a clean Linux, macOS, or Windows system;
- behavior on different GPUs and drivers;
- clarity and consistency of the C and Python APIs;
- missing or unclear documentation;
- the examples and gallery;
- IPython and Qt integration;
- the experimental WebGPU and compute paths;
- scientific use cases that Datoviz should support.
Please report problems in the GitHub issue tracker. Include the operating system, GPU, driver, Python version, installation method, and a small reproducer when possible.