Bricker – Photoreal Lego/Minecraft Simulations

by Bricks Brought to Life in Scripts and Addons

Instructions:

  • Begin by creating or importing a 3D Mesh object in Blender.
    • For best results, make sure your object is a single, water-tight mesh.
    • Follow all of the steps you would normally take to create the animation or simulation you want converted to bricks.
  • Open up the Bricker tool panel from the 3D viewport by pressing the 'T' key and selecting the 'Bricker' tab on the far left.
  • With your 3D mesh selected, create a new model with 'Brick Models -> New Model' and name it whatever you'd like by double clicking on the name in the models list.
  • Click 'Brickify Object' and wait a moment while the brick model is generated (NOTE: for animation/simulations, adjust frame duration in the "Animation" tab)
  • Customize your brick model by adjusting the parameters and various options (see settings documentation below) for a specific result.
  • Click 'Update Model' after making changes to commit your adjustments.
  • If at any point you wish to view or edit the source object after the brick model has been generated, simply click 'Brick Models -> Delete Brickified Model' and the source object will return to view.
  • If you want to edit the topology of your brickified model, we recommend first baking the model in the 'Bake/Export' dropdown. This will convert your Bricker model into a standard Blender object that can be edited as you would any other object. Keep in mind that you will no longer have access to the Bricker menu options for this model.
  • NOTE: Before animating your model with the AssemblMe plugin, you'll need to split the model into separate objects by clicking 'Bricker > Model Settings > Split Model', then 'Bricker > Brick Models > Update Model'.



Installation (credit: CG Cookie):

  • You can download Bricker from your account dashboard on the Blender Market, assuming you’ve already purchased it.
  • The easiest way to install Bricker is to do so directly from Blender. You can do this by going to File > User Preferences > Add-ons > Install from File. This will open a File Browser in Blender, allowing to you navigate to and select the .zip file you downloaded. Press Install from file.
  • If your browser auto-extracted the downloaded .zip file then you will need to re-compress Bricker folder before installing.
  • Once installed, Blender should automatically filter the addons list to show only Bricker. You can then enable the add-on by clicking the checkbox on the upper right of the add-on panel.



Settings Documentation:


Bricker Preferences

  • Default Brick Height Method for setting default 'Model Height' value when new model is added
    • Relative (recommended) – 'Model Height' setting defaults to fixed number of bricks tall when new model is added
    • Absolute – 'Model Height' setting defaults to fixed height in decimeters when new model is added
  • Model Height (bricks) Default height for bricker models in bricks (standard deviation of 1 brick)
  • Brick Height (dm) Default brick height in decimeters
  • Brickify in Background
    • On – Run brickify calculations in the background
    • Off –  User interface will freeze during calculation. Yields minor performance gain, though the process cannot be stopped mid-calculation
    • Auto – Brickifies complex models in the background, while brickifying simple models locally to improve efficiency
  • Updater Settings – Addon updater developed by CGCookie. Refer to the built-in tool documentation by hovering over the options and waiting for the tooltip to appear.


Brick Models

  • Dropdown Menu
    • Copy Settings to Others – Create Brick Model for each frame, from start to stop frame (WARNING: Calculation takes time, and may result in large blend file)
    • Copy Settings – Start frame of the Brick animation
    • Paste Settings – End frame of the Brick animation
    • Select Bricks – Maximum number of Blender instances allowed to run in background for Bricker calculations (larger numbers are faster at a higher CPU load; 0 for local calculation)
    • Deselect Bricks – Max seconds allowed for each frame's model to calculate (0 for infinite; cancels process if time exceeded)
  • Brickify Object – Create brick sculpture from source object mesh
  • Brickify Animation – Create new brick sculptures from source object mesh for each frame in range specified under ‘Animation > Start/Stop Frame’
  • Delete Brick Model/Animation – Delete brickified model (restores original source object)
  • Update Model/Animation – Update brick model/animation to reflect changes in the Bricker settings
  • Report Error – Report a bug via an automatically generated issue ticket (appears when Bricker error occurs)
  • Revert Matrix Settings – Revert Matrix settings to save model customizations (appears when settings are changed that will clear any model customizations)


Animation

  • Animation (enable) Create Brick Model for each frame, from start to stop frame (WARNING: Calculation takes time, and may result in large blend file)
  • Start First frame of the brick animation
  • End Final frame of the brick animation


Model Transform

  • Apply to Source  Apply transformations to source object when Bricker model is deleted
  • Show Manipulator Expose the parent object for this brick model for viewport manipulation
  • Location/Rotation/Scale Indirectly affect the transformation settings of the Bricker model (transforms hidden parent of model)


Model Settings

  • Brick Height Height of the bricks in the final Brick Model
  • Gap between bricks Distance between bricks
  • Split Model – Split model into separate objects (slower)
  • Shell Thickness – Thickness of the outer shell of bricks
  • Randomize Location Max random location applied to each brick
  • Randomize Rotation – Max random rotation applied to each brick


Customize Model

  • BrickSculpt Tools Available for purchase soon from the Blender Market; see full documentation of the BrickSculpt tools here.
  • Select by Type Select bricks of specified type
  • Select by Size Select bricks of specified size
  • Toggle Exposure Set exposure of bricks to correct insideness calculation (consider setting ‘Advanced > Insideness Ray Cast Direction’ to ‘XYZ’ instead)
  • Split Bricks – Split selected bricks into 1x1 bricks
  • Merge Bricks Merge selected bricks (auto-converts brick type to 'BRICK' or 'PLATE')
  • Draw Adjacent Bricks Draw new brick(s) adjacent to active brick
  • Change Type – Change brick type of active brick
  • Change Material – Change material for selected bricks
  • Auto Update on Delete – Draw newly exposed bricks when existing bricks are deleted


Brick Types

  • Brick Type Type of brick used to build the model
  • Max Brick Width Maximum brick width in studs
  • Max Brick Depth Maximum brick depth in studs
  • Legal Bricks Only – Construct model using only legal brick sizes
  • Custom Brick Type Objects – Custom objects to use as additional brick types (for use in 'Customize Model' panel)
  • Brick Type Object – Custom object to use as main brick type
  • Distance Offset – Offset distance between custom bricks (1.0 = side-by-side)


Merge Settings

  • Merge Type Type of algorithm used for merging bricks together
    • Random – Merges randomly for realistic build
    • Greedy – Creates fewest amount of bricks possible
  • Random Seed Random seed for brick merging calculations
  • Connectivity Quality of the model's brick connectivity (higher numbers are slower but bricks will be more interconnected)
  • Merge Shell with Internals – Construct model using only legal brick sizes
    • Horizontal and Vertical – Merge shell bricks with internals in both directions
    • Horizontal – Merge shell bricks with internals horizontally, but not vertically
    • Vertical – Merge shell bricks with internals vertically, but not horizontally
    • Neither – Don't merge shell bricks with internals in either direction


Materials

  • Material type Choose what materials will be applied to the model
    • None – No materials applied to the bricks
    • Single Material – Choose a single material to apply to all generated bricks
    • Random – Apply a random material from Brick materials to each generated brick
    • Use Source Materials – Apply material based on closest intersecting face
  • Material Name Name of the material to apply to all bricks
  • Internal Material Name Name of the material to apply to bricks inside material shell
  • Shell Material Depth – Depth to which the outer materials should be applied (1 = Only exposed bricks)
  • Random Seed – Random seed for material assignment
  • Apply Material – Apply specified material to all bricks
  • Color Mapping – Method for mapping source material(s)/texture(s) to new materials
    • None – Use source material(s)
    • RGB – Map RGB values to new materials (similar materials will merge into one material based on threshold)
    • ABS – Map RGB values to nearest ABS Plastic Materials (available here on the Blender Market)
  • Snap Threshold – Threshold for combining colors together (higher numbers for fewer unique materials generated)
  • Transparent Weight – How much the original material's alpha value affects the chosen ABS Plastic Material
  • Use UV Map (enable) – Transfer colors from UV map (if disabled or no UV map found, brick color will be based on RGB of first shader node)
  • Tex/UV Texture – UV Image to use for UV Map color transfer (defaults to active UV if left blank)
  • Material Properties – All of these properties are directly exposed values from the 'Principled BSDF' shader used for the generated materials, as documented here
    • Include Transparency – Include the alpha value of the original RGBA color in the new material
  • Included Materials – Bricks can be mapped to any material in this list


Detailing

  • Studs Choose what materials will be applied to the model
    • None – No materials applied to the bricks
    • Random – Apply a random material from Brick materials to each generated brick
    • Custom – Choose a custom material to apply to all generated bricks
    • Use Source Materials – Apply material based on closest intersecting face
  • Logo Choose logo type to draw on brick studs
  • Custom Logo Object – Select a custom logo object to use on top of each stud
  • Custom Logo Scale – Logo scale relative to stud scale
  • Custom Logo Inset – How far to inset logo to stud (0: none, 1: fully inset)
  • Exposed Underside Detail – Level of detail on underside of bricks with exposed undersides
  • Hidden Underside Detail – Level of detail on underside of bricks with obstructed undersides
  • Circle Vertices – Number of vertices in each circle in brick mesh
  • Bevel Bricks – Bevel brick edges and corners for added realism
  • Bevel Width – Bevel amount (relative to brick height)
  • Bevel Segments – Number of segments for rounded edges/verts
  • Bevel Profile – The profile shape (0.5 = round)


Supports

  • Internal Supports Choose what type of brick support structure to use in your model
  • Lattice Supports – Distance between cross-beams
  • Lattice Height – Height of the cross-beams
  • Alternate X and Y – Alternate back-and-forth and side-to-side beams
  • Cylinder Thickness – Thickness of the columns
  • Cylinder Step – Distance between columns


Advanced

  • Clear Cache Clear brick mesh and matrix cache (Model customizations will be lost)
  • Insideness Ray Cast Direction – Ray cast method for calculation of insideness
    • High Efficiency – Reuses single intersection ray cast for insideness calculation
    • X – Cast rays along X axis for insideness calculations
    • Y – Cast rays along Y axis for insideness calculations
    • Z – Cast rays along Z axis for insideness calculations
    • XYZ (Best Result) – Cast rays in all axis directions for insideness calculation (slowest; uses result consistent for at least 2 of the 3 rays). Yields higher quality model if source mesh is not watertight.
  • Use Normals – Use normals to calculate insideness of bricks (WARNING: May produce inaccurate model if source is not single closed mesh)
  • Verify Exposure – Run insideness calculations on every brick location (slower, but may fix issue where row(s)/column(s) of extra bricks are drawn)
  • Calculate Internals – Calculate values for bricks inside shell (disable for faster calculation at the loss of the 'ShellThickness' and 'Supports' features)
  • Brick Shell – Choose whether the outer shell of bricks will be inside or outside the source mesh
    • Inside Mesh – Draw brick shell inside source mesh (recommended for best representation of original shape)
    • Outside Mesh – Draw brick shell outside source mesh
    • Consistent – Draw brick shell on a consistent side of the source mesh topology (negative side for XYZ axes)
      • May fix noisy model if source mesh is not water-tight
      • In most situations, 'Verify Exposure' should be enabled when using this setting to prevent unwanted row(s)/column(s) of bricks.
  • Expanded Axes – The brick shell will be drawn on the outside in these directions
  • Instance Brick Data – Use instanced brick mesh data when 'Model Settings > Split Model' is enabled to save on memory and render times
  • Use Source Local – Generate bricks based on local orientation of source object
  • Max Worker Instances – Maximum number of Blender instances allowed to run in background for Bricker calculations (larger numbers are faster at a higher CPU load; 0 for local calculation)


Bake/Export

  • Bake Model Convert model from Bricker model to standard Blender object (applies transformation and clears Bricker data associated with the model; source object will be lost)
  • Export LDraw – Export active brick model to ldraw file