Playing with 3D printable Lego typeface

Writting with Lego have been something I've been interested for a while, my 3D printer push me to go further

Lego wall

I have been fan of Lego and pixel art since my childwood so I decided to create a Lego wall in my DigitasLBi Labs office. Then we started making pixel art using small bricks. I set this wall as an open canvas where everybody could create, I started with Mario Bross and then Bomberman appear with bob the sponge, space invaders, etc. And yes I also made a Lego Qr-Code :-)… Later people used the wall to display messages or font based logo. Design text message using Lego is quite chanlenging and you often end up with a deceptive result. That’s where the idea of creating some “Lego” brick fontface came.

Lego wall


I started designing “Lego” chars by hand using 123Design but that rapidly became a nigthmare because a Lego brick is quite complexe. I also wanted to be abble to generate all font char at once. But a least I had a first working POC:


After exploring different 3D software and CAD tools I finally discovered an opensource 3D CAD software named OpenScad. That was exactly what I was looking for, it’s a programing language capable of generating 3D model using simple 3D shape and boolean operation. You can easely create whatever you want. You can also use a lot of differents library developped by the community. The amazing part of this tools is his ability to generate 3D model dynamicaly. For my needs I have create a script capable of generating all the parts of a brick. After that it looks like this to generate A,B and C chars:

renderBrick() Letter("A");
renderBrick() Letter("B");
renderBrick() Letter("C");

That’s usefull but you still need some manual work to generate the full set of chars of the font. An other great part of OpenScad is his CLI ability. Using Bash script you can call your OpenScad script with a set of parameters in my case I was abble to pass a list of chars and a font ID to generate all chars from a font.

array=(${string//,/ })
for i in "${!array[@]}"
  echo -e "generating: \033[35m"${array[i]}"\033[0m"
  openscad -o output/${3}-${fontArray[${3}]}/CHAR/${array[i]}.stl -D debug_mode=false -D fontID=${3}  -D 'letter="'${array[i]}'"' bricks_gen.scad

I now have a fully configurable bash script capable of generating a full set of chars



Using any existing font is a great source of creativity, thanks to my OpenScad script I was abble to generate any font but I wanted to generate bricks that fit prefectly with Lego sizes and constraints. Chars width & heigth need to be proportional to the lego knobs spacing. That’s where I starded design two font face “Brick font” and “Brickolage”.

Long Shot


Birds of paradise






Once designed and generated chars have to be printed. This pieces seamms easy to printed at the first tougth but I faced a lot of issues with bridging and overall quality. After a lot of different seettings and software I finaly been abble to print acceptable quality using Simplify 3D.


This technic of generating brick from font inspired me to create some motivationnal posters, doors sign for my kids and message for the office.

La vie est belle
La vie est belle
Non smoking area
All you need is...
Kids door sign
All you need is love

Stay young and play Lego derivated from my Stay Young poster.


I’m still exploring what to do with this, any ideas or maybe you want a custom font or a door sign ? feel free to ask.

Let's keep in touch

Copyright © 2016 Julien TERRAZ - Powered by Jekyll