Visual Families¶
Each public visual family has a concise reference page with status, backend support, an exact dense-data contract, picking notes, and links to verified C and Python examples.
Use the Examples gallery for complete executable source. Use Choose a visual family when deciding between neighboring families.
Visual families are batching units. Prefer one visual with many items over many visuals with one item each. Use per-item attributes for position, color, size, radius, state, and related styling whenever the visual family supports them.
Reading The Attribute Tables¶
Unless a family page says otherwise:
Nis the logical item or path-point count. Every array passed together todvz_visual_set_data_many()must have the same first dimensionN.- C shapes describe one element followed by the array cardinality, for example
vec3[N]. Python shapes use NumPy notation, for example(N, 3). positionattributes use the visual's authored coordinate space, normally data coordinates transformed by the panel attachment and controller. Names ending in_pxuse logical pixels.- The normal Python route is
import datoviz as dvzwith C-contiguous NumPy arrays. Usefloat32,uint8, anduint32exactly where specified. - A full upload uses
dvz_visual_set_data()ordvz_visual_set_data_many(). Update a contiguous existing interval withdvz_visual_set_data_range(). - "Required" means required for the documented family mode to render. No implicit value should be assumed for a missing required dense attribute.
The registry also supports selected constant, per-span, or per-group attribute sources. Those are advanced source configurations, not one-row broadcasting in the dense upload API. See Visual attributes and the generated Visuals and composites API for exact setters and signatures.
| Preview | Family | Status | Primary use | Example |
|---|---|---|---|---|
![]() |
Point | supported | Dense circular point sprites for scatter plots and point clouds | Example |
| Pixel | supported | Screen-aligned square cells or dense sparse rasters | Example | |
![]() |
Marker | supported | Symbolic point marks with configurable shapes | Example |
![]() |
Splat | experimental | Experimental Gaussian splats | Example |
![]() |
Segment | supported | Independent line segments with per-segment styling | Example |
![]() |
Path | supported | Connected polylines, curves, and trajectories | Example |
![]() |
Vector | supported | Arrow or vector-field glyphs | Example |
![]() |
Primitive | supported | Simple triangle or line primitive batches | Example |
![]() |
Image | supported | 2D sampled fields, textures, and image quads | Example |
![]() |
Text | supported | Semantic text annotations and labels | Example |
![]() |
Glyph | experimental | Low-level atlas glyph quads | Example |
![]() |
Labels | supported | Categorical integer sampled fields and segmentation masks | Example |
![]() |
Mesh | supported | Triangle meshes, surfaces, and textured geometry | Example |
![]() |
Sphere | supported | 3D sphere impostors with radius and lighting | Example |
![]() |
Volume | supported | 3D sampled scalar fields | Example |
Reference pages intentionally avoid long standalone programs. The canonical source files under
examples/c/visuals/ and generated gallery pages are the executable source of truth.













