Package: vellum 0.2.0.9000

vellum: A Low-Level Graphics Framework with a Rust Backend

A grid-like low-level graphics system for R whose scene graph, unit/layout engine, and rendering run in a Rust backend.

Authors:David Schoch [aut, cre]

vellum_0.2.0.9000.tar.gz
vellum_0.2.0.9000.zip(r-4.7)vellum_0.2.0.9000.zip(r-4.6)vellum_0.2.0.9000.zip(r-4.5)
vellum_0.2.0.9000.tgz(r-4.6-x86_64)vellum_0.2.0.9000.tgz(r-4.6-arm64)vellum_0.2.0.9000.tgz(r-4.5-x86_64)vellum_0.2.0.9000.tgz(r-4.5-arm64)
vellum_0.2.0.9000.tar.gz(r-4.7-arm64)vellum_0.2.0.9000.tar.gz(r-4.7-x86_64)vellum_0.2.0.9000.tar.gz(r-4.6-arm64)vellum_0.2.0.9000.tar.gz(r-4.6-x86_64)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
vellum/json (API)

# Install 'vellum' in R:
install.packages('vellum', repos = c('https://schochastics.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/r-vellum/vellum/issues

Pkgdown/docs site:https://r-vellum.github.io

On CRAN:

Conda:

data-visualizationdatavizextendrgraphicsrustscene-graphcargo

6.38 score 11 stars 3 packages 23 scripts 52 exports 12 dependencies

Last updated from:71266cc1a8. Checks:12 OK, 1 FAIL. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-arm64OK361
linux-devel-x86_64OK352
source / vignettesOK500
linux-release-arm64OK365
linux-release-x86_64OK360
macos-release-arm64OK292
macos-release-x86_64OK713
macos-oldrel-arm64OK290
macos-oldrel-x86_64OK670
windows-develOK528
windows-releaseOK542
windows-oldrelOK548
wasm-releaseFAIL274

Exports:as_maskas_vellumas_vellum_scenebezier_grobcircle_grobdatashadedescribedisplaydrawedit_nodeget_nodegrid_layoutgrobheightgrobwidthhexagon_grobhit_testis_unitlinear_gradientlines_grobloop_grobmdnode_namespath_grobpoints_grobpolygon_grobpoppushradial_gradientraster_grobrect_grobrenderrender_gridroundrect_grobscene_modelscene_rasterscene_svgsector_grobsegments_grobsketchspline_grobstyletext_grobvl_arrowvl_clear_render_cachevl_gparvl_patternvl_scenevl_strheightvl_strwidthvl_unitvl_viewportwhy_size

Dependencies:base64encclicpp11gluejsonlitelifecyclerlangS7stringisystemfontstextshapingvctrs

Coming from grid
The concept map | Side by side | What is different, and why | The builder is functional, not stateful | Metrics are eager, so there is no draw-time hook protocol | Units resolve eagerly, and mixed-unit arithmetic is restricted | The tree is retained and inspectable | vl_gpar inherits, but there is no cascade | Do I have to rewrite my grid code?

Last update: 2026-07-09
Started: 2026-07-05

Datashading: millions of points, honestly
Generating an orbit | Shading in one call | Why aggregation wins | Mapping density to colour | Lining up with data axes | A gallery | Recap | In a grammar

Last update: 2026-07-09
Started: 2026-07-05

Get started
A first scene | Building a scene: push, draw, pop | Rendering to a file | Where to go next

Last update: 2026-07-09
Started: 2026-07-05

Rendering grid and ggplot2 through vellum
How it works | A grid grob tree | A ggplot2 plot | When to use interop versus the native API

Last update: 2026-07-09
Started: 2026-07-05

Retained-mode superpowers: hit-testing and editable nodes
Naming nodes | Editing a node | Hit-testing | A per-element model of the scene | Why this matters

Last update: 2026-07-09
Started: 2026-07-05

The scene contract: what vellumplot and vellumwidget depend on
The seam, in one picture | Carrying identity on a grob | scene_model(): the per-element table | elements | panels | The meta key vocabulary | scene_svg(): the emitted attributes | Accessibility | Invariants the contract guarantees | For contributors

Last update: 2026-07-09
Started: 2026-07-07

The scene graph and the paint model
The scene graph | Units | The paint model | Gradients | Patterns | Masks and group opacity | Recap

Last update: 2026-07-09
Started: 2026-07-05

Readme and manuals

Help Manual

Help pageTopics
Masksas_mask
Render grid graphics (ggplot2 / lattice / grid) through vellumas_vellum render_grid
Coerce an object to a vellum sceneas_vellum_scene
Aggregate-then-shade a large point cloud (datashader-style)datashade
Set a scene's accessibility name and descriptiondescribe
Display a scene in the active graphics devicedisplay
Gradient fillsgradients linear_gradient radial_gradient
Graphical objects (grobs)bezier_grob circle_grob grob hexagon_grob lines_grob loop_grob path_grob points_grob polygon_grob raster_grob rect_grob roundrect_grob sector_grob segments_grob spline_grob text_grob
Size a unit by a grob's extentgrobheight grobwidth
Hit-test a scenehit_test
Rich-text labels (markdown subset)md
Inspect and edit a scene by node nameedit_node get_node node_names
A serializable, per-element model of a scenescene_model
Read a rendered scene back as pixelsscene_raster
Render a scene to an SVG stringscene_svg
Hand-drawn ("sketch") renderingsketch
Reusable style classesstyle
Arrowheadsvl_arrow
Clear the render cachevl_clear_render_cache
Graphical parametersvl_gpar
Tiling-pattern fillsvl_pattern
Build and render a scenedraw pop push render vl_scene
Measure textvl_strheight vl_strwidth
Units of measurementis_unit vl_unit
Viewports and layoutsgrid_layout vl_viewport
Explain why a node has its resolved sizewhy_size