[Instalación] [Uso] [Guía del usuario] [Ejemplos] [Referencia de API]
⚡️ Datoviz es una biblioteca de visualización de datos científicos de GPU de alto rendimiento, de código abierto y de alta generación escrita en C/C ++ en la parte superior de la API de gráficos Khronos Vulkan y la biblioteca de ventanas GLFW . ¿Proporciona enlaces crudos de Ctypes en Python? . A largo plazo, Datoviz se utilizará principalmente como un backend de Vispy 2.0 .
Diseñado para la velocidad, la calidad visual y la escalabilidad para los conjuntos de datos que comprenden millones de puntos, admite la representación interactiva 2D/3D y las GUI mínimas a través de Dear Imgui.
? Hoja de ruta. En el mediano plazo: aumento de la compatibilidad del sistema operativo y el hardware, proporcionando más imágenes, patrones de interactividad y controles de GUI. A largo plazo: selección, imágenes y sombreadores personalizados, transformaciones no lineales, compatibilidad de WebGPU/WebAssembly, integración con Ipython, Jupyter y Qt.
Créditos: Volumen del cerebro del mouse: Allen SDK. Francia: tierra natural. Molécula: estructura cristalina de S. pyogenes Cas9 de PDB (gracias a Eric por la conversión a Mesh OBJ). Tierra: Pixabay. Trama de trama: IBL. Cerebro humano 3D: Anneke Alkemade et al. 2020, gracias a Pierre-Louis Bazin y Julia Huntenburg.
Estas características están actualmente planificadas para V0.3 :
Estas características están actualmente planificadas para V0.4 y posterior :
Requisitos:
Nota : Ya no necesita instalar el SDK de Vulkan o construir manualmente la biblioteca. Las ruedas precompiladas para Linux, Windows y MacOS se han subido a PYPI.
pip install datovizEjemplo de trazado de dispersión simple (puntos con posiciones aleatorias, colores y tamaños) en Python, que siguen de cerca la 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 )Consulte la documentación de los ejemplos para obtener más ejemplos de uso.
En 2012 , los desarrolladores de varias bibliotecas de visualización científica de GPU (Glumpy, Pyqtgraph, Visvis) colaboraron para crear Vispy , una biblioteca de visualización científica basada en OpenGL para Python.
En 2015 , Vulkan , el sucesor de OpenGL, fue anunciado por Khronos, lo que provocó la idea de una futura biblioteca de visualización basada en Vulkan.
En 2019 , Cyrille Rossant, uno de los desarrolladores de Vispy originales, comenzó a experimentar con Vulkan.
En 2021 , se lanzó la primera versión experimental de Datoviz v0.1 . Este lanzamiento inicial sentó las bases para un mayor desarrollo.
Durante los próximos tres años, la tecnología maduró, ayudada por una subvención de la Iniciativa Chan Zuckerberg (CZI) otorgada a Vispy en 2021 .
En 2024 , se lanza Datoviz v0.2 . Esta versión está rediseñada desde el suelo hasta mejorar la modularidad y la estabilidad, asegurando que pueda mantener el ritmo de los avances continuos en el hardware de GPU y las API de renderizado de gráficos. Cuenta con una arquitectura modular que permitirá la portamiento de la tecnología Datoviz a entornos no vulkan, como los navegadores web habilitados para WebGPU (gracias a una segunda subvención CZI).
Datoviz está estrechamente relacionado con Vispy , ya que uno de los cofundadores de Vispy lo desarrolla. Vispy 2.0, iniciada por Cyrille Rossant y Nicolas Rougier, ofrecerá una API científica de alto nivel además de Datoviz, Matplotlib y otros renderizadores a través de una capa de visualización de nivel medio común llamada "Protocolo del servidor gráfico (GSP)".
La visión a largo plazo es que la visualización científica 2D/3D basada en GPU de alto rendimiento esté disponible de manera uniforme en múltiples plataformas, entornos (escritorio, web, visualización remota basada en la nube) y lenguajes de programación (C/C ++, Python, Julia, Rust, etc.).
Ver las notas contribuyentes.
Ver la licencia MIT.
Datoviz es desarrollado por Cyrille Rossant en el International Brain Laboratory, un consorcio de laboratorios de investigación de neurociencia en todo el mundo.
Está financiado notablemente por el programa de software de código abierto para ciencias de Chan Zuckerberg Initiative.