unifir

unifir: A Unifying API for Working with Unity in R - Published in JOSS (2022)

https://github.com/ropensci/unifir

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 15 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

cran cran-r r rstats unifir unity unity3d visualization
Last synced: 4 months ago · JSON representation ·

Repository

A unifying interface for calling Unity from R

Basic Info
Statistics
  • Stars: 29
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 7
Topics
cran cran-r r rstats unifir unity unity3d visualization
Created over 4 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codemeta

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# unifir: A Unifying API for Working with Unity in R 


[![DOI](https://joss.theoj.org/papers/10.21105/joss.04388/status.svg)](https://doi.org/10.21105/joss.04388)
[![License: MIT](https://img.shields.io/badge/license-MIT-green)](https://choosealicense.com/licenses/mit/) 
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![Lifecycle: maturing](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html#maturing-1)
[![CRAN status](https://www.r-pkg.org/badges/version/unifir)](https://cran.r-project.org/package=unifir)
[![R-CMD-check](https://github.com/ropensci/unifir/workflows/R-CMD-check/badge.svg)](https://github.com/ropensci/unifir/actions)
[![Codecov test coverage](https://codecov.io/gh/ropensci/unifir/branch/main/graph/badge.svg)](https://app.codecov.io/gh/ropensci/unifir?branch=main)
[![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/521_status.svg)](https://github.com/ropensci/software-review/issues/521)


unifir is a unifying API for creating and managing [Unity](https://unity.com/) 
scenes directly from R (without requiring GUI interaction). Users are able to 
write natural-feeling R code to create "scripts" (C# programs) composed of 
"props" (C# methods) which produce scenes inside the Unity engine. While it is
entirely possible to create fleshed-out Unity scenes through this package, 
unifir is primarily designed around being easy to wrap in other packages, so 
that any number of packages interacting with Unity can all share a common
framework.

The first function most unifir workflows will call is `make_script`, which 
creates a "script" object. In that script, we can tell unifir things like
where we want to save our project:

```{r}
library(unifir)
script <- make_script(project = "path/to/project")
```

We can then iteratively add props to our project, building up a series of
commands that we'll execute in sequence to create a Unity scene:

```{r}
script <- add_default_player(script, x_position = 10)
script <- add_light(script)
script <- save_scene(script)
```

All of these functions are designed with the pipe in mind, letting you
easily simplify your code:

```{r}
script <- make_script(project = "path/to/project") |> 
  add_default_player(x_position = 10) |> 
  add_light() |> 
  save_scene()
```

Once all your props are set, it's time to execute the script via the 
`action` function! This function will create a new Unity project (if necessary),
write your "script" object to a C# file, and execute it inside the Unity project.

```{r eval = FALSE}
action(script)
```

Open your new project from UnityHub, open the scene you created with 
`save_scene`, and you'll see the outputs from your script right in front of you!
To learn more, check out the vignettes that ship with the package -- 
particularly
[the one for how to use unifir to make scenes](https://docs.ropensci.org/unifir/articles/unifir-user-guide.html)
and
[the one for how to extend unifir in your own packages](https://docs.ropensci.org/unifir/articles/unifir-dev-guide.html).

Right now, unifir wraps the elements of the Unity API that I've found useful in
my own work, principally focused around creating GameObjects, lights, player
controllers, and terrain surfaces. If you are interested in pieces of the API
that haven't made it into unifir yet, please open an issue or a PR!

## Installation

The easiest way to install unifir is to install it directly from R-Universe:

```{r eval = FALSE}
# Enable universe(s) by rOpenSci
options(repos = c(
  mikemahoney218 = 'https://ropensci-universe.dev',
  CRAN = 'https://cloud.r-project.org'))

# Install unifir
install.packages('unifir')
```

You can also install unifir from [GitHub](https://github.com/) with:

``` r
# install.packages("remotes")
remotes::install_github("ropensci/unifir")
```

Note that right now there is no release version of unifir; all published 
versions are considered "development" versions. While the unifir API is 
solidifying, it is not yet solid, and breaking changes may happen at any time.

While unifir can be used by itself, you'll probably want to 
[install Unity](https://unity.com/download) in order to actually make Unity 
projects.

## Why do this?

There's been a lot of interest in using immersive virtual environments for 
research on topics including 
[science communication](https://doi.org/10.1080/13658816.2020.1830997),
[landscape planning](https://doi.org/10.1016/j.apgeog.2019.102102),
[environmental economics](https://doi.org/10.1016/j.jeem.2008.08.002)
and beyond. 
This is an incredibly exciting area of research, which looks likely to present
new methods for participatory planning, data visualization, and skill training.
However, right now, much of the research in this area relies upon closed-source
tooling which puts up hurdles in front of the equitability, accessibility, 
and interoperability of the field. 
In addition, a challenge when assessing hand-build environments (say to assess
participant preferences between two scenes) is that us as researchers might
accidentally "tilt the scales" in favor of our preferred option, by putting a 
little more effort into making the scene we personally prefer look more 
aesthetically pleasing than the alternative.

unifir is a first step towards an open-source, fully reproducible approach for
constructing immersive virtual environments. While it currently only targets
Unity, a proprietary source-available game engine, 
unifir hopes to improve the openness and interoperability of immersive virtual
environments by encoding all of the 
decisions involved in building a scene in standard R and C# code.
A partially open system is better than a fully closed one, and if 
other game engines become more feasible options for
large scale immersive virtual environments, unifir may be extended to 
support those as well.

## Citing unifir

To cite unifir in publications please use:

> Mahoney M. J., Beier C. M., and Ackerman, A. C. (2022). unifir: A Unifying API for Working with Unity in R. Journal of Open Source Software, 7(73), 4388, https://doi.org/10.21105/joss.04388

A BibTeX entry for LaTeX users is:

```{bibtex}
  @Article{,
    year = {2022},
    publisher = {The Open Journal},
    volume = {7},
    number = {73},
    pages = {4388},
    author = {Michael J. Mahoney and Colin M. Beier and Aidan C. Ackerman},
    title = {{unifir:} A Unifying {API} for Working with {Unity} in {R}},
    journal = {Journal of Open Source Software},
    doi = {10.21105/joss.04388},
    url = {https://doi.org/10.21105/joss.04388},
  }
```

## Code of Conduct

Please note that the unifir project is released with a [Contributor Code of Conduct](https://docs.ropensci.org/unifir/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.

## Disclaimer

These materials are not sponsored by or affiliated with Unity Technologies or 
its affiliates. "Unity" is a trademark or registered trademark of Unity 
Technologies or its affiliates in the U.S. and elsewhere.

[![ropensci_footer](https://ropensci.org/public_images/github_footer.png)](https://ropensci.org)

Owner

  • Name: rOpenSci
  • Login: ropensci
  • Kind: organization
  • Email: info@ropensci.org
  • Location: Berkeley, CA

JOSS Publication

unifir: A Unifying API for Working with Unity in R
Published
May 11, 2022
Volume 7, Issue 73, Page 4388
Authors
Michael J. Mahoney ORCID
Graduate Program in Environmental Science, State University of New York College of Environmental Science and Forestry, Syracuse, New York, USA
Colin M. Beier ORCID
Department of Sustainable Resources Management, State University of New York College of Environmental Science and Forestry, Syracuse, New York, USA
Aidan C. Ackerman ORCID
Department of Landscape Architecture, State University of New York College of Environmental Science and Forestry, Syracuse, New York, USA
Editor
Kyle Niemeyer ORCID
Tags
virtual reality GIS Unity

Citation (CITATION.cff)

# -----------------------------------------------------------
# CITATION file created with {cffr} R package, v0.3.0
# See also: https://docs.ropensci.org/cffr/
# -----------------------------------------------------------
 
cff-version: 1.2.0
message: 'To cite package "unifir" in publications use:'
type: software
license: MIT
title: 'unifir: A Unifying API for Calling the ''Unity'' ''3D'' Video Game Engine'
version: 0.2.1.9000
doi: 10.21105/joss.04388
abstract: Functions for the creation and manipulation of scenes and objects within
  the 'Unity' '3D' video game engine (<https://unity.com/>). Specific focuses include
  the creation and import of terrain data and 'GameObjects' as well as scene management.
authors:
- family-names: Mahoney
  given-names: Michael
  email: mike.mahoney.218@gmail.com
  orcid: https://orcid.org/0000-0003-2402-304X
preferred-citation:
  type: article
  title: 'unifir: A Unifying API for Working with Unity in R'
  authors:
  - family-names: Mahoney
    given-names: Michael J.
  - family-names: Beier
    given-names: Colin M.
  - family-names: Ackerman
    given-names: Aidan C.
  year: '2022'
  publisher:
    name: The Open Journal
  volume: '7'
  issue: '73'
  journal: Journal of Open Source Software
  doi: 10.21105/joss.04388
  url: https://doi.org/10.21105/joss.04388
  start: '4388'
repository: https://CRAN.R-project.org/package=unifir
repository-code: https://github.com/ropensci/unifir
url: https://docs.ropensci.org/unifir/
contact:
- family-names: Mahoney
  given-names: Michael
  email: mike.mahoney.218@gmail.com
  orcid: https://orcid.org/0000-0003-2402-304X
keywords:
- cran
- cran-r
- r
- rstats
- unifir
- unity
- unity3d
- visualization
references:
- type: software
  title: 'R: A Language and Environment for Statistical Computing'
  notes: Depends
  authors:
  - name: R Core Team
  location:
    name: Vienna, Austria
  year: '2022'
  url: https://www.R-project.org/
  institution:
    name: R Foundation for Statistical Computing
  version: '>= 3.5.0'
- type: software
  title: glue
  abstract: 'glue: Interpreted String Literals'
  notes: Imports
  authors:
  - family-names: Hester
    given-names: Jim
    orcid: https://orcid.org/0000-0002-2739-7082
  - family-names: Bryan
    given-names: Jennifer
    email: jenny@rstudio.com
    orcid: https://orcid.org/0000-0002-6983-2759
  year: '2022'
  url: https://CRAN.R-project.org/package=glue
- type: software
  title: methods
  abstract: 'R: A Language and Environment for Statistical Computing'
  notes: Imports
  authors:
  - name: R Core Team
  location:
    name: Vienna, Austria
  year: '2022'
  url: https://www.R-project.org/
  institution:
    name: R Foundation for Statistical Computing
- type: software
  title: proceduralnames
  abstract: 'proceduralnames: Several Methods for Procedural Name Generation'
  notes: Imports
  authors:
  - family-names: Mahoney
    given-names: Michael
    email: mike.mahoney.218@gmail.com
    orcid: https://orcid.org/0000-0003-2402-304X
  year: '2022'
  url: https://CRAN.R-project.org/package=proceduralnames
- type: software
  title: R6
  abstract: 'R6: Encapsulated Classes with Reference Semantics'
  notes: Imports
  authors:
  - family-names: Chang
    given-names: Winston
    email: winston@stdout.org
  year: '2022'
  url: https://CRAN.R-project.org/package=R6
- type: software
  title: utils
  abstract: 'R: A Language and Environment for Statistical Computing'
  notes: Imports
  authors:
  - name: R Core Team
  location:
    name: Vienna, Austria
  year: '2022'
  url: https://www.R-project.org/
  institution:
    name: R Foundation for Statistical Computing
- type: software
  title: terrainr
  abstract: 'terrainr: Landscape Visualizations in R and ''Unity'''
  notes: Suggests
  authors:
  - family-names: Mahoney
    given-names: Michael
    email: mike.mahoney.218@gmail.com
    orcid: https://orcid.org/0000-0003-2402-304X
  year: '2022'
  url: https://CRAN.R-project.org/package=terrainr
- type: software
  title: covr
  abstract: 'covr: Test Coverage for Packages'
  notes: Suggests
  authors:
  - family-names: Hester
    given-names: Jim
    email: james.f.hester@gmail.com
  year: '2022'
  url: https://CRAN.R-project.org/package=covr
- type: software
  title: knitr
  abstract: 'knitr: A General-Purpose Package for Dynamic Report Generation in R'
  notes: Suggests
  authors:
  - family-names: Xie
    given-names: Yihui
    email: xie@yihui.name
    orcid: https://orcid.org/0000-0003-0645-5666
  year: '2022'
  url: https://CRAN.R-project.org/package=knitr
- type: software
  title: lintr
  abstract: 'lintr: A ''Linter'' for R Code'
  notes: Suggests
  authors:
  - family-names: Hester
    given-names: Jim
    email: james.f.hester@gmail.com
  - family-names: Angly
    given-names: Florent
  - family-names: Hyde
    given-names: Russ
  - family-names: Chirico
    given-names: Michael
  - family-names: Ren
    given-names: Kun
  - family-names: Rosenstock
    given-names: Alexander
  year: '2022'
  url: https://CRAN.R-project.org/package=lintr
- type: software
  title: pkgdown
  abstract: 'pkgdown: Make Static HTML Documentation for a Package'
  notes: Suggests
  authors:
  - family-names: Wickham
    given-names: Hadley
    email: hadley@rstudio.com
    orcid: https://orcid.org/0000-0003-4757-117X
  - family-names: Hesselberth
    given-names: Jay
    orcid: https://orcid.org/0000-0002-6299-179X
  - family-names: Salmon
    given-names: Maëlle
    orcid: https://orcid.org/0000-0002-2815-0399
  year: '2022'
  url: https://CRAN.R-project.org/package=pkgdown
- type: software
  title: rmarkdown
  abstract: 'rmarkdown: Dynamic Documents for R'
  notes: Suggests
  authors:
  - family-names: Allaire
    given-names: JJ
    email: jj@rstudio.com
  - family-names: Xie
    given-names: Yihui
    email: xie@yihui.name
    orcid: https://orcid.org/0000-0003-0645-5666
  - family-names: McPherson
    given-names: Jonathan
    email: jonathan@rstudio.com
  - family-names: Luraschi
    given-names: Javier
    email: javier@rstudio.com
  - family-names: Ushey
    given-names: Kevin
    email: kevin@rstudio.com
  - family-names: Atkins
    given-names: Aron
    email: aron@rstudio.com
  - family-names: Wickham
    given-names: Hadley
    email: hadley@rstudio.com
  - family-names: Cheng
    given-names: Joe
    email: joe@rstudio.com
  - family-names: Chang
    given-names: Winston
    email: winston@rstudio.com
  - family-names: Iannone
    given-names: Richard
    email: rich@rstudio.com
    orcid: https://orcid.org/0000-0003-3925-190X
  year: '2022'
  url: https://CRAN.R-project.org/package=rmarkdown
- type: software
  title: styler
  abstract: 'styler: Non-Invasive Pretty Printing of R Code'
  notes: Suggests
  authors:
  - family-names: Müller
    given-names: Kirill
    email: krlmlr+r@mailbox.org
  - family-names: Walthert
    given-names: Lorenz
    email: lorenz.walthert@icloud.com
  year: '2022'
  url: https://CRAN.R-project.org/package=styler
- type: software
  title: testthat
  abstract: 'testthat: Unit Testing for R'
  notes: Suggests
  authors:
  - family-names: Wickham
    given-names: Hadley
    email: hadley@rstudio.com
  year: '2022'
  url: https://CRAN.R-project.org/package=testthat
  version: '>= 3.0.0'
- type: software
  title: terra
  abstract: 'terra: Spatial Data Analysis'
  notes: Suggests
  authors:
  - family-names: Hijmans
    given-names: Robert J.
    email: r.hijmans@gmail.com
    orcid: https://orcid.org/0000-0001-5872-2872
  year: '2022'
  url: https://rspatial.org/terra/
- type: software
  title: sf
  abstract: 'sf: Simple Features for R'
  notes: Suggests
  authors:
  - family-names: Pebesma
    given-names: Edzer
    email: edzer.pebesma@uni-muenster.de
    orcid: https://orcid.org/0000-0001-8049-7069
  year: '2022'

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "unifir",
  "description": "Functions for the creation and manipulation of scenes and objects within the 'Unity' '3D' video game engine (<https://unity.com/>). Specific focuses include the creation and import of terrain data and 'GameObjects' as well as scene management.",
  "name": "unifir: A Unifying API for Calling the 'Unity' '3D' Video Game Engine",
  "relatedLink": [
    "https://docs.ropensci.org/unifir/",
    "https://CRAN.R-project.org/package=unifir"
  ],
  "codeRepository": "https://github.com/ropensci/unifir",
  "issueTracker": "https://github.com/ropensci/unifir/issues",
  "license": "https://spdx.org/licenses/MIT",
  "version": "0.2.1",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.2.0 (2022-04-22)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Michael",
      "familyName": "Mahoney",
      "email": "mike.mahoney.218@gmail.com",
      "@id": "https://orcid.org/0000-0003-2402-304X"
    }
  ],
  "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": "terrainr",
      "name": "terrainr",
      "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=terrainr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "covr",
      "name": "covr",
      "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=covr"
    },
    {
      "@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": "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": "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": "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",
      "version": ">= 3.0.0",
      "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": "terra",
      "name": "terra",
      "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=terra"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "sf",
      "name": "sf",
      "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=sf"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.5.0"
    },
    "2": {
      "@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"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "methods",
      "name": "methods"
    },
    "4": {
      "@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"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "R6",
      "name": "R6",
      "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=R6"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "utils",
      "name": "utils"
    },
    "SystemRequirements": null
  },
  "fileSize": "2219.487KB",
  "citation": [
    {
      "@type": "ScholarlyArticle",
      "datePublished": "2022",
      "author": [
        {
          "@type": "Person",
          "givenName": [
            "Michael",
            "J."
          ],
          "familyName": "Mahoney"
        },
        {
          "@type": "Person",
          "givenName": [
            "Colin",
            "M."
          ],
          "familyName": "Beier"
        },
        {
          "@type": "Person",
          "givenName": [
            "Aidan",
            "C."
          ],
          "familyName": "Ackerman"
        }
      ],
      "name": "{unifir:} A Unifying {API} for Working with {Unity} in {R}",
      "identifier": "10.21105/joss.04388",
      "url": "https://doi.org/10.21105/joss.04388",
      "pagination": "4388",
      "@id": "https://doi.org/10.21105/joss.04388",
      "sameAs": "https://doi.org/10.21105/joss.04388",
      "isPartOf": {
        "@type": "PublicationIssue",
        "issueNumber": "73",
        "datePublished": "2022",
        "isPartOf": {
          "@type": [
            "PublicationVolume",
            "Periodical"
          ],
          "volumeNumber": "7",
          "name": "Journal of Open Source Software"
        }
      }
    }
  ],
  "releaseNotes": "https://github.com/ropensci/unifir/blob/master/NEWS.md",
  "readme": "https://github.com/ropensci/unifir/blob/main/README.md",
  "contIntegration": [
    "https://github.com/ropensci/unifir/actions",
    "https://app.codecov.io/gh/ropensci/unifir?branch=main"
  ],
  "developmentStatus": [
    "https://www.repostatus.org/#active",
    "https://lifecycle.r-lib.org/articles/stages.html#maturing-1"
  ],
  "review": {
    "@type": "Review",
    "url": "https://github.com/ropensci/software-review/issues/521",
    "provider": "https://ropensci.org"
  },
  "keywords": [
    "rstats",
    "cran",
    "cran-r",
    "r",
    "unifir",
    "visualization",
    "unity",
    "unity3d"
  ]
}

GitHub Events

Total
  • Issues event: 1
Last Year
  • Issues event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 111
  • Total Committers: 1
  • Avg Commits per committer: 111.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Mike Mahoney m****8@g****m 111

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 13
  • Total pull requests: 6
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 14 hours
  • Total issue authors: 4
  • Total pull request authors: 1
  • Average comments per issue: 2.85
  • Average comments per pull request: 1.17
  • Merged pull requests: 6
  • 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 (7)
  • wjones127 (4)
  • lorenzwalthert (1)
  • rsbivand (1)
  • SbastianGarzon (1)
Pull Request Authors
  • mikemahoney218 (8)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 326 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 5
  • Total maintainers: 1
cran.r-project.org: unifir

A Unifying API for Calling the 'Unity' '3D' Video Game Engine

  • Versions: 5
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 326 Last month
Rankings
Stargazers count: 9.9%
Dependent packages count: 18.1%
Average: 22.6%
Dependent repos count: 24.0%
Forks count: 27.8%
Downloads: 33.0%
Maintainers (1)
Last synced: 4 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.5.0 depends
  • R6 * imports
  • glue * imports
  • methods * imports
  • proceduralnames * imports
  • utils * imports
  • covr * suggests
  • knitr * suggests
  • lintr * suggests
  • pkgdown * suggests
  • rmarkdown * suggests
  • sf * suggests
  • styler * suggests
  • terra * suggests
  • terrainr * suggests
  • testthat >= 3.0.0 suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v2 composite
  • r-lib/actions/check-r-package v1 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
  • r-lib/actions/setup-r-dependencies v1 composite
.github/workflows/run-examples.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/test-coverage.yaml actions
  • actions/checkout v2 composite
  • r-lib/actions/setup-r v1 composite
  • r-lib/actions/setup-r-dependencies v1 composite
.github/workflows/R-CMD-check-hard.yaml actions
  • actions/checkout v2 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/lock.yaml actions
  • dessant/lock-threads v2 composite