π£ Help shape the future of VisPy 2.0 β ideas, feedback, and contributors welcome! #2661
Replies: 8 comments 21 replies
-
Copied from a related email thread: This sounds very exciting and very interesting. I've never been good at defining plotting APIs so I'm not sure I can provide any help on that. I can summarize my experience with user interactions with VisPy though and that might guide some of this development and design. I think obviously Lorenzo (CC'd already - brisvag) and the Napari team should be consulted too. There are a couple of categories of VisPy user. There is the "I understand and like Visuals" crowd and the "I heard VisPy is fast and I want to plot data" crowd. VisualsThese users understand that they can describe their visualization as a series of primitive Visuals with spheres and lines and meshes as long as they can figure out how to describe their data in a compatible way. Super users understand meshes, but this is only a subset of this group of users. Things that are difficult for this crowd are:
The big thing missing for a small small subset of these users is easily understood multi-camera/viewbox visualizations with understandable interactions. VisPy's parent-child node stuff just doesn't allow for this from my understanding. Plotting usersThese are matplotlib or other plotting library users who want something faster so they come to VisPy. If they saw the old SciPy presentation with the many many plots by Luke then they get heart broken when I have to explain that that visualization was a very specific solution to display exactly what they were seeing. The second they want to add labels and ticks or real world data, performance falls off pretty quickly or code complexity is more than they are used to handling. For other users they are disappointed by the interface. I don't blame them. The plotting interface in VisPy was never finished and makes it hard to do anything beyond the basic builtin plot types. |
Beta Was this translation helpful? Give feedback.
-
Thank for this great feedback @djhoese . For users, one way to start is to post a small example using vispy (1.0) and how you would have like to write it in vispy (2.0) to make it simpler or easier to read. |
Beta Was this translation helpful? Give feedback.
-
Looking forward to VisPy2.0 :) Here my thoughts: InteractivityI currently use VisPy in a 3D Labeling Tool (unfortunately not public). So as a general thought: Type HintsI would love to have proper support for type hints in VisPy2.0. Usually, libraries are older than the Python typing system and adding typing support requires a lot of work for a big existing codebase. I have been working on adding type hints to Open3D for quite some time now. So, I would be happy to help here as well. |
Beta Was this translation helpful? Give feedback.
-
And also https://github.com/vispy/gsp |
Beta Was this translation helpful? Give feedback.
-
Datoviz v0.3 is out! Check it out at https://datoviz.org |
Beta Was this translation helpful? Give feedback.
-
A killer feature for me would be a seamless integration with GPU stored arrays, for example in Torch, Jax or Cupy. I'm not that familiar with GPU specifics sadly, but being able to render them without the GPU -> CPU -> GPU transfer would be pretty great. The use case for that for me would be running realtime simulations in 2D spaces, for example aritificial life sims like Lenia. |
Beta Was this translation helpful? Give feedback.
-
Also, our lab relies on multiple My point is that targeting end-users from the scientific background that are not programmers would probably help increase the adoption rate of this project. I mention To sum up I believe that feature parit (or even API compatibility) would be highly beneficial for this project. |
Beta Was this translation helpful? Give feedback.
-
Is it feasible add a feature to export the render to a 3d file format like .glb |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone,
I'd like to share some updates and open a public discussion about the future of VisPy, specifically around the upcoming VisPy 2.0 project. Over the past several years, work has been progressing quietly behind the scenes on what we believe can become a solid foundation for VisPyβs next generation. We're now ready to open things up and invite the community to participate.
π§ Whatβs been happening?
Together with Nicolas Rougierβanother one of VisPyβs original core developers back in 2013βweβve been developing two key components over the past five years or so:
Datoviz: a scientific GPU-based visualization engine written in C/C++ and built on the Khronos Vulkan API, with auto-generated Python bindings. It's fast, lightweight, it scales to millions of points, and it's now easy to install via
pip install datoviz
. It already supports a range of features including markers, paths, images, polygons, 3D spheres, 3D meshes (with or without wireframes), text, 3D navigation, basic volume rendering, GUI widgets, and more. Version 0.2.3 is out now, and version 0.3 is coming soon with further improvements (e.g., axes, early Qt integration etc.). Datoviz only provides a relatively low-level API (a bit similar to VisPy's Scene API).GSP (Graphics Server Protocol): a simple backend-agnostic protocol built on top of Datoviz, designed to support multiple rendering engines (including Datoviz, Matplotlib, and potentially wgpu/pygfx or other backends). GSP acts as a universal, scientifically oriented graphics layer, offering flexibility and long-term maintainability. GSP doesn't require a GPU backend, but it is designed from the ground up to support it optimally in terms of performance. We'll soon share the specifications, documentation, and examples.
The idea is for VisPy 2.0 to build on top of GSP and Datoviz, providing a higher-level, user-friendly plotting interface. We are just beginning to prototype this layer, and this is where community input becomes especially valuable.
πββοΈ How can you contribute?
Weβre especially looking for:
β Why this matters
One of the key advantages of the new architecture is that all GPU, backend, and windowing complexity is fully encapsulated within GSP and Datoviz. This significantly lowers the barrier to contributing to VisPy 2.0βs high-level interfaceβthereβs no need to delve into low-level internals. Nicolas and I are actively developing GSP and Datoviz, and we can rapidly adapt and extend these foundational layers to meet the evolving needs of VisPy users.
We see this as an opportunity for the community to play a central role in shaping VisPy 2.0. Our aim is to collaboratively design a modern, intuitive high-level API tailored to the evolving needs of Python-based high-performance scientific and interactive visualization.
TL;DR
We look forward to your ideas, feedback, and participation!
Beta Was this translation helpful? Give feedback.
All reactions