mvdf

A Minimum Viable Data Format for using R as a front-end for the Blender 3D Rendering Engine

https://github.com/mikemahoney218/mvdf

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
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 


[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)
[![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)
[![CRAN status](https://www.r-pkg.org/badges/version/mvdf)](https://CRAN.R-project.org/package=mvdf)
[![R-CMD-check](https://github.com/mikemahoney218/mvdf/workflows/R-CMD-check/badge.svg)](https://github.com/mikemahoney218/mvdf/actions)
[![lint](https://github.com/mikemahoney218/mvdf/workflows/lint/badge.svg)](https://github.com/mikemahoney218/mvdf/actions)
[![codecov](https://codecov.io/gh/mikemahoney218/mvdf/branch/main/graph/badge.svg)](https://codecov.io/gh/mikemahoney218/mvdf)
[![License: MIT](https://img.shields.io/badge/license-MIT-green)](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

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