knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
The goal of mvdf is to provide a standardized approach to using R as a frontend for the Blender 3D rendering program.
Please note that this package is in early development; breaking changes can and will happen as better approaches become evident.
The mvdf
package proposes a standard approach to using R as a frontend
interface for the Blender 3D rendering program. By breaking the development of
rendering into three distinct steps -- importing data from disparate sources
into a standardized format, manipulating that format through a standard set of
tools, and creating 3D renderings from standardized formats via exporter
functions -- mvdf
forms the cornerstone of an easily-extensible framework for
producing data-driven 3D renders.
The approach centers around creating special objects from our data that we can
then create renderings. The simplest of these objects is an mvdf_obj
, which
just needs an x, y, and z position:
library(mvdf) iris_mvdf <- mvdf_obj( data = iris, x = Sepal.Length, y = Sepal.Width, z = Petal.Length )
With our object successfully created, we can then chain together a few functions to make a Python script that will render our data when run inside Blender:
library(magrittr) # For the %>% pipe render_script <- # Delete placeholder objects and import standard Python modules create_blender_frontmatter() %>% # Add cubes at each point in space in our mvdf add_mesh_primitive(object = iris_mvdf, primitive = "cube", size = 0.2) %>% # Save the output to save_render.blend add_blender_endmatter(filepath = "save_render.blend")
And we can then execute that script from R using execute_render
:
execute_render(render_script)
This script will produce a Blender file ("save_render.blend") with cubes at each point in space specified in our mvdf, with the end result looking something like this:
knitr::include_graphics("vignettes/iris_cubes.jpg")
For more information, check out the introductory vignette!
You can install the development version of mvdf
from GitHub via:
remotes::install_github("mikemahoney218/mvdf")
You'll also need to install Blender separately. mvdf is tested against the current release of Blender and is not guaranteed to work with older versions; in particular, some basic operations may fail with Blender < 2.80.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.