[Installation] [Utilisation] [Guide de l'utilisateur] [Exemples] [Référence de l'API]
⚡️ DatoViz est une bibliothèque de visualisation de données scientifiques GPU à grande performance, open-performance, écrite en C / C ++ au-dessus de l'API graphique Khronos Vulkan et de la bibliothèque de fenêtres GLFW . Il fournit des liaisons CTYPES brutes dans Python? . À long terme, Datoviz sera principalement utilisé comme backend Vispy 2.0 .
Conçu pour la vitesse, la qualité visuelle et l'évolutivité des ensembles de données comprenant des millions de points, il prend en charge le rendu interactif 2D / 3D et les GUI minimaux via Dear Imgui.
? Feuille de route. À moyen terme: augmentation de la compatibilité des SG et du matériel, offrant plus de visuels, de modèles d'interactivité et de contrôles de l'interface graphique. À long terme: la sélection, les visuels et les shaders personnalisés, les transformations non linéaires, la compatibilité webgpu / webassembly, l'intégration avec Ipython, Jupyter et Qt.
Crédits: Volume du cerveau de la souris: Allen SDK. France: Terre naturelle. Molecule: Structure cristalline de S. pyogenes Cas9 de PDB (grâce à Eric pour la conversion en maillage Obj). Terre: Pixabay. Terrain raster: IBL. Cerveau humain 3D: Anneke Alkemade et al. 2020, grâce à Pierre-Louis Bazin et Julia Huntenburg.
Ces fonctionnalités sont actuellement prévues pour V0.3 :
Ces fonctionnalités sont actuellement prévues pour la V0.4 et plus tard :
Exigences:
Remarque : vous n'avez plus besoin d'installer le SDK Vulkan ou de construire manuellement la bibliothèque. Des roues précompilées pour Linux, Windows et MacOS ont été téléchargées sur PYPI.
pip install datovizExemple de tracé de diffusion simple (points avec des positions, des couleurs et des tailles aléatoires) dans Python, qui suivent de près l'API C.
import numpy as np
import datoviz as dvz
app = dvz . app ( 0 )
batch = dvz . app_batch ( app )
scene = dvz . scene ( batch )
figure = dvz . figure ( scene , 800 , 600 , 0 )
panel = dvz . panel_default ( figure )
dvz . panel_panzoom ( panel )
visual = dvz . point ( batch , 0 )
n = 100_000
dvz . point_alloc ( visual , n )
pos = np . random . normal ( size = ( n , 3 ), scale = .25 ). astype ( np . float32 )
dvz . point_position ( visual , 0 , n , pos , 0 )
color = np . random . uniform ( size = ( n , 4 ), low = 50 , high = 240 ). astype ( np . uint8 )
dvz . point_color ( visual , 0 , n , color , 0 )
size = np . random . uniform ( size = ( n ,), low = 10 , high = 30 ). astype ( np . float32 )
dvz . point_size ( visual , 0 , n , size , 0 )
dvz . panel_visual ( panel , visual , 0 )
dvz . scene_run ( scene , app , 0 )
dvz . scene_destroy ( scene )
dvz . app_destroy ( app )Consultez la documentation des exemples pour plus d'exemples d'utilisation.
En 2012 , les développeurs de diverses bibliothèques de visualisation scientifique GPU (Galry, Glumpy, Pyqtgraph, Visvis) ont collaboré pour créer Vispy , une bibliothèque de visualisation scientifique OpenGL pour Python.
En 2015 , Vulkan , le successeur d'OpenGL, a été annoncé par Khronos, provoquant l'idée d'une future bibliothèque de visualisation basée sur Vulkan.
En 2019 , Cyrille Rossant, l'un des développeurs de Vispy originaux, a commencé à expérimenter Vulkan.
En 2021 , la première version expérimentale de Datoviz V0.1 a été publiée. Cette version initiale a jeté les bases d'un développement ultérieur.
Au cours des trois prochaines années, la technologie a mûri, aidé par une subvention de Chan Zuckerberg Initiative (CZI) décernée à Vispy en 2021 .
En 2024 , Datoviz V0.2 est publié. Cette version est redessinée du sol pour améliorer la modularité et la stabilité, garantissant qu'elle peut suivre le rythme des progrès continus du matériel GPU et des API de rendu graphique. Il dispose d'une architecture modulaire qui permettra le portage de la technologie DatoViz vers des environnements non Vulkan, tels que les navigateurs Web compatibles WebGPU (grâce à une deuxième subvention CZI).
Datoviz est étroitement lié à Vispy , car il est développé par l'un des cofondateurs de Vispy. Vispy 2.0, initiée par Cyrille Rossant et Nicolas Rougier, offrira une API scientifique de haut niveau en plus de Datoviz, Matplotlib et d'autres rendus via une couche de visualisation de niveau moyen commune appelé "protocole de serveur graphique (GSP)".
La vision à long terme est que la visualisation scientifique 2D / 3D à haute performance soit disponible uniformément sur plusieurs plateformes, environnements (bureau, Web, visualisation à distance basée sur le cloud) et des langages de programmation (C / C ++, Python, Julia, Rust, etc.).
Voir les notes contributives.
Voir la licence MIT.
Datoviz est développé par Cyrille Rosant au International Brain Laboratory, un consortium de laboratoires de recherche en neurosciences dans le monde.
Il est financé notamment par le programme Essential Source for Science pour le programme Software for Science de Chan Zuckerberg Initiative.