mvdf
A Minimum Viable Data Format for using R as a front-end for the Blender 3D Rendering Engine
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (18.8%) to scientific vocabulary
Keywords
blender
cran
r
r-package
rstats
Last synced: 11 months ago
·
JSON representation
Repository
A Minimum Viable Data Format for using R as a front-end for the Blender 3D Rendering Engine
Basic Info
- Host: GitHub
- Owner: mikemahoney218
- License: other
- Language: R
- Default Branch: main
- Homepage: https://mikemahoney218.github.io/mvdf/
- Size: 2.59 MB
Statistics
- Stars: 16
- Watchers: 2
- Forks: 0
- Open Issues: 1
- Releases: 0
Topics
blender
cran
r
r-package
rstats
Created over 5 years ago
· Last pushed about 5 years ago
Metadata Files
Readme
Changelog
Contributing
License
Codemeta
README.Rmd
---
output: github_document
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# mvdf: a standardized approach to using R as a frontend for the Blender 3D rendering program
[](https://www.tidyverse.org/lifecycle/#experimental)
[](https://www.repostatus.org/#wip)
[](https://CRAN.R-project.org/package=mvdf)
[](https://github.com/mikemahoney218/mvdf/actions)
[](https://github.com/mikemahoney218/mvdf/actions)
[](https://codecov.io/gh/mikemahoney218/mvdf)
[](https://choosealicense.com/licenses/mit/)
The goal of mvdf is to provide a standardized approach to using R as a frontend
for the [Blender](https://www.blender.org/) 3D rendering program.
Please note that this package is in early development; breaking changes can and
will happen as better approaches become evident.
## What's an MVDF anyway?
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:
```{r}
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:
```{r}
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`:
```{r, eval=FALSE}
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:
```{r}
knitr::include_graphics("vignettes/iris_cubes.jpg")
```
For more information, check out the [introductory vignette!](https://mikemahoney218.github.io/mvdf/articles/intro-to-mvdf.html)
## Installation
You can install the development version of `mvdf` from GitHub via:
``` r
remotes::install_github("mikemahoney218/mvdf")
```
You'll also need to install [Blender](https://www.blender.org/download/)
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.
Owner
- Name: Michael Mahoney
- Login: mikemahoney218
- Kind: user
- Location: Boston, MA
- Company: @cafri-labs
- Website: https://mm218.dev/
- Repositories: 103
- Profile: https://github.com/mikemahoney218
R, Python, and using data to understand this complex world we live in
CodeMeta (codemeta.json)
{
"@context": [
"https://doi.org/10.5063/schema/codemeta-2.0",
"http://schema.org"
],
"@type": "SoftwareSourceCode",
"identifier": "mvdf",
"description": "A small, self-contained, minimum viable data format providing a \n standard interface for using R as a front-end for the Blender 3D rendering\n program. The core approach centers around an S4 class, 'mvdf', with getter,\n setter, and validation methods designed to be extended for more specific \n rendering approaches.",
"name": "mvdf: A Minimum Viable Data Format for 3D Rendering via Blender",
"license": "https://spdx.org/licenses/MIT",
"version": "0.0.0.9000",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "R",
"url": "https://r-project.org"
},
"runtimePlatform": "R version 4.0.3 (2020-10-10)",
"author": [
{
"@type": "Person",
"givenName": "Michael",
"familyName": "Mahoney",
"email": "mike.mahoney.218@gmail.com",
"@id": "https://orcid.org/0000-0003-2402-304X"
}
],
"contributor": {},
"copyrightHolder": {},
"funder": {},
"maintainer": [
{
"@type": "Person",
"givenName": "Michael",
"familyName": "Mahoney",
"email": "mike.mahoney.218@gmail.com",
"@id": "https://orcid.org/0000-0003-2402-304X"
}
],
"softwareSuggestions": [
{
"@type": "SoftwareApplication",
"identifier": "knitr",
"name": "knitr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=knitr"
},
{
"@type": "SoftwareApplication",
"identifier": "codemetar",
"name": "codemetar",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=codemetar"
},
{
"@type": "SoftwareApplication",
"identifier": "pkgdown",
"name": "pkgdown",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=pkgdown"
},
{
"@type": "SoftwareApplication",
"identifier": "rmarkdown",
"name": "rmarkdown",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=rmarkdown"
},
{
"@type": "SoftwareApplication",
"identifier": "lintr",
"name": "lintr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=lintr"
},
{
"@type": "SoftwareApplication",
"identifier": "styler",
"name": "styler",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=styler"
},
{
"@type": "SoftwareApplication",
"identifier": "testthat",
"name": "testthat",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=testthat"
},
{
"@type": "SoftwareApplication",
"identifier": "dplyr",
"name": "dplyr",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=dplyr"
},
{
"@type": "SoftwareApplication",
"identifier": "brio",
"name": "brio",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=brio"
},
{
"@type": "SoftwareApplication",
"identifier": "devtools",
"name": "devtools",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=devtools"
}
],
"softwareRequirements": [
{
"@type": "SoftwareApplication",
"identifier": "R",
"name": "R",
"version": ">= 3.5"
},
{
"@type": "SoftwareApplication",
"identifier": "methods",
"name": "methods"
},
{
"@type": "SoftwareApplication",
"identifier": "rlang",
"name": "rlang",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=rlang"
},
{
"@type": "SoftwareApplication",
"identifier": "glue",
"name": "glue",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=glue"
},
{
"@type": "SoftwareApplication",
"identifier": "proceduralnames",
"name": "proceduralnames",
"provider": {
"@id": "https://cran.r-project.org",
"@type": "Organization",
"name": "Comprehensive R Archive Network (CRAN)",
"url": "https://cran.r-project.org"
},
"sameAs": "https://CRAN.R-project.org/package=proceduralnames"
}
],
"codeRepository": "https://github.com/mikemahoney218/mvdf",
"fileSize": "1554.844KB",
"developmentStatus": [
"https://www.tidyverse.org/lifecycle/#experimental",
"https://www.repostatus.org/#wip"
],
"relatedLink": "https://mikemahoney218.github.io/mvdf/",
"readme": "https://github.com/mikemahoney218/mvdf/blob/main/README.md",
"contIntegration": "https://codecov.io/gh/mikemahoney218/mvdf",
"keywords": [
"r",
"rstats",
"r-package",
"blender",
"cran"
],
"releaseNotes": "https://github.com/mikemahoney218/mvdf/blob/master/NEWS.md",
"issueTracker": "https://github.com/mikemahoney218/mvdf/issues"
}
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1
Issues and Pull Requests
Last synced: over 1 year ago
All Time
- Total issues: 1
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- mikemahoney218 (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
.github/workflows/check.yaml
actions
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/upload-artifact main composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
.github/workflows/lint.yaml
actions
- actions/cache v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-r v1 composite
.github/workflows/pkgdown.yaml
actions
- actions/cache v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
.github/workflows/pr-commands.yaml
actions
- actions/checkout v2 composite
- r-lib/actions/pr-fetch v1 composite
- r-lib/actions/pr-push v1 composite
- r-lib/actions/setup-r v1 composite
.github/workflows/render-readme.yaml
actions
- actions/cache v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
.github/workflows/test-coverage.yaml
actions
- actions/cache v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-pandoc v1 composite
- r-lib/actions/setup-r v1 composite
.github/workflows/write-codemeta.yaml
actions
- actions/cache v2 composite
- actions/checkout v2 composite
- r-lib/actions/setup-r v1 composite
DESCRIPTION
cran
- R >= 3.5 depends
- glue * imports
- methods * imports
- proceduralnames * imports
- rlang * imports
- brio * suggests
- codemetar * suggests
- devtools * suggests
- dplyr * suggests
- knitr * suggests
- lintr * suggests
- pkgdown * suggests
- rmarkdown * suggests
- styler * suggests
- testthat * suggests