Bricklayer

Overview

This page contains links to instructions for installing the BricklayerIDE and an overview of the Bricklayer graphics libraries.

The Bricklayer IDE

The BricklayerIDE provides an environment for creating, editing, executing, and debugging Bricklayer programs.

The BricklayerIDE can be installed on both MAC-OS and Windows operating systems. Install instructions can be found at the following links.

Graphics Libraries

Bricklayer is a set of five graphics libraries written in SML that provide primitives suitable for creating 2-dimensional and 3-dimensional block-based artifacts.

In Bricklayer, (block-based) artifacts are constructed from pieces. A piece is an atomic artifact that occupies a single cell in a discrete coordinate space. The most common piece used in Bricklayer artifacts is a 1x1x1 LEGO brick, which is refered to as a bit-brick. It is also possible to construct Bricklayer artifacts using pieces denoting a variety of Minecraft blocks. Bricklayer currently provides 72 different bit-bricks and 343 Minecraft blocks. For a complete set of pieces consult the document found at the following link.

In Bricklayer documents, the terms piece, brick, and block are used interchangeably.

Documentation describing the functions available in each of the graphic libraries can be found at the following links.

  • Level 1 – This library provides a set of basic “put” functions for placing pieces (LEGO bricks or Minecraft blocks) having standard LEGO shapes and colors at given coordinates.
  • Level 2 – This library extends the Level 1 library with “offset” functions that shift the location of the origin coordinate. Also provided are functions for creating circles and rings.
  • Level 3 – This library provides a “put” function that is parameterized on shape, piece, and coordinate. Also provided are “offset” functions and functions for creating lines, circles, and rings. And finally, Level 3 introduces a “setMySpace” function that can be used to create barriers restricting brick placement to subspaces within a virtual space.
  • Level 4 – This library provides set of functions for creating 3D artifacts. Included are functions for creating rectangular prisims, spheres, cones, cylinders, and lines. In addition, many functions are parameterized brick lists (rather than bricks). Functions that are parameterized on brick lists create artifacts by populating designated cells in the virtual space with bricks that are randomly selected from the brick list.
  • Level 5 – This library extends the Level 4 library with a variety iterators. Iterators are used to process the coordinates beloning to a subspace of the virtual space.  Also provided are cell-based update and access functions.

A number of output formats are provided enabling Bricklayer artifacts to be viewed in a variety ways. The following viewing possibilities are currently supported.

  • Lego Digital Designer (LDD)
    • POV-Ray – A tool that creates high resolution renderings of LDD artifacts.
  • LDraw
  • Minecraft
  • STL viewers such as 3D Builder and Cura