Getting started

The bricks_from_* series of functions creates 3D models of LEGO bricks from a variety of input formats.

3D mosaics

Begin with a brickr mosaic from an image. Rather than graphically rendering the mosaic using build_mosaic(), use bricks_from_mosaic(). This function takes two other inputs:

  • mosaic_height is the number of bricks stacked at the mosaic’s highest point. The default is 6.
  • highest_el specifies if ‘light’ or ‘dark’ color bricks should be the tallest in the model. The default is ‘light’.
demo_img = tempfile() 
download.file("http://ryantimpe.com/files/mf_unicorn.PNG", demo_img, mode="wb")

mosaic <- png::readPNG(demo_img) %>% 
  image_to_mosaic()

mosaic %>% build_mosaic()

Models from rayshader

rayshader by Tyler Morgan-Wall is an open source package for producing 2D and 3D data visualizations in R. rayshader uses elevation data in a base R matrix and a combination of raytracing, spherical texture mapping, overlays, and ambient occlusion to generate beautiful topographic 2D and 3D maps. (Note: text lifted straight from rayshader.com.)

3D models in brickr are rendered using the functions in rayshader. Using bricks_from_rayshader(), you can convert rayshader map output into a brickr model. This function takes three inputs:

  • hillshade is topographic image matrix with an RGB channel (much like the mosaics).
  • heightmap is a two-dimensional matrix specifiying the height of the image at each location.
  • max_height is the number of bricks stacked at the mosaic’s highest point. The default is 12.
  • img_size is the number of bricks on each side of the model. The default is 48.

This example is rendered using build_bricks_rayshader(), which a bit faster for very large sets.