Thoughts & News From The Polar 3D Team

Viewing entries tagged

January EDU Project: Fractal Tree In The Forest


January EDU Project: Fractal Tree In The Forest

Welcome to the first EDU project of 2017 by our own Dr. David Thornburg! Winter is still in full effect, but hopefully this project will have you thinking about a verdant, green tree on a beautiful spring day. Without further adieu, here's Dr. Thornburg's Lesson...

Followers of this blog are no strangers to BlocksCAD, and this is the tool we'll be using today. The best way to access BlocksCAD is through its own site:


Good programming languages (like BlocksCAD) support recursive programming. Instead of looping a single set of commands, a recursive module uses replicas of itself as a part of the module definition. Once a module is called, the values of variables are local to that instance of the module. The result is the ability to create complex objects that can't be made with simple loop instructions.

In celebration of this capability, we'll create a famous recursive structure, a fractal tree. Fractals are complex structures in which any part of the structure is a replica of the structure as a whole. An entire branch of mathematics (chaos and complexity theory) is devoted to the exploration of these structures.

Consider a tree, for example, branches are similar to each other, but their size changes as smaller branches grow out of larger ones.

A similar pattern is found in ferns where the whole structure is similar to the smaller parts that make up the plant.

I became so engaged by these structures that I wrote a couple of books on the topic back in the 1980's: Discovering Apple Logo : An Invitation to the Art and Pattern of Nature, Addison Wesley, 1983.

The language I wrote about, Logo, supported recursion so it was a natural choice. Of course, in those days, the graphics were low resolution 2D images on an Apple II computer ― a far cry from what we can do with BlocksCAD and a 3D printer today.


As our tree is being built, the size and length of branches will change, just as they do with real trees. We start by creating a set of global variables used in our structure.

Next we define a recursive module called tree. This module uses three local variables ― the starting branch length and width and the depth (number of levels) of the tree. These three variables will have their local values changed during use of the module. All other variables will keep their global values.

There are two things to notice in this module. First, you'll see that we don't use the Centered option for the cylinder. This makes it easy to get all the branches connected. Second, the cylinder is tapered from its previous radius at the bottom to the new one at the top ― just like the branches of many real trees.
Once this module has been created, we can create our final instructions.

When this BlocksCAD program is run, it produces the following tree. I changed the rendering color by clicking on the Render window box with the color swatch and choosing green as the new color since it looks more tree-like. Of course the color of your printed object will be chosen by the filament you use.

Here's our printed tree.

This tree also looks like a stalk of broccoli. You should do some research to see why this is.


October EDU Project: Building With BlocksCAD


October EDU Project: Building With BlocksCAD

This is another installment in the monthly, continuing series of Educational Projects by David Thornburg. This October lesson, aimed at middle school students or higher, focuses on an interesting design tool called BlocksCAD. Without further adieu, here's David Thornburg with his monthly lesson!

Introducing BlocksCAD

One of my favorite new 3D design tools is a programming language that design shapes and generates a STL files as its output. This language is called BlocksCAD and it is made by the good folks at Einstein's Workshop ( BlocksCAD is and easy-to-use version of OpenSCAD, a tremendously powerful design tool that can be tricky for younger users to master. If you are familiar with programming languages for kids like Scratch (, you already know about coding through the assembly of jigsaw-like pieces to create a program of your own design. BlocksCAD works in a similar way, making it perfect for beginners without limiting the complexity of objects you can design. BlocksCAD works in the cloud, making it perfect for iPads and Chromebooks. To show you how it works, let's design a card holder. While this is not an educational project per se, it showcases the elements of the language. Since “coding” is increasingly of interest in education, it makes sense to highlight the language in this blog.

Go to the BlocksCAD site ( and log in. You will see the screen divided into three areas: a set of colored bars on the left denoting various shapes and operations (the commands of the BlocksCAD language), a window in the center where you will have your program, and a window on the right side where you can see your model as it is progressing. This is also the window you'll use to export your project as an STL file for printing.

Next, in the area to the right of Project Name near the top left of the window, type Card Holder, and click on the 3D shapes button to the left of the screen. This gives you a few options. Click on the Cube icon at it will show up on your center screen.

Enter X, Y and Z values of 60, 95, and 3 mm and choose “centered” for the shape. Press the Render button to see the result.

I like to choose “centered” whenever I can so I know the origin of every object. Objects can be moved and rotated using the transformation tools by pressing the Transforms button on the left side of the screen.

BlocksCAD supports text, so we'll illustrate that next. Click the Text button on the left side of the screen and choose 3D text. This puts an operator on the screen in which you can add your text (I wrote “Genius”), the height of the text in mm, the font (I chose Liberation Serif), and the amount by which the text is extruded (3 mm is fine for us). The only thing that's missing is the “centered” option, which bums me out. The great folks behind BlocksCAD are working on this. But, no problem for us, we have two cool tools in the Transforms button to fix this ― Translate and Rotate. I also used Union from the Set Ops button to combine everything using the Union block. This is important because we will soon rotate the whole plate, and want the cube and the text to stay together.

As you can see, we rotated the text 90º around the Z-axis and translated the text so it is somewhat centered horizontally and located near the top of the cube.

A quick note regarding text: BlocksCAD only provides a few typefaces because they can't go onto your computer and prowl around for your own fonts. Computer-resident software like OpenSCAD doesn't have this restriction. I mention this because it might come up in one of your later projects.

Our next step is to rotate our shape by 60º around the Y-axis so it forms a tilted back for our business card holder.

Once this is done, we make another “cube” with the same dimensions as the first, rotate it 60º the other way (quick, what positive rotation angle is equivalent to rotation by -60º?  (No fair looking at the numbers below!)

After doing the rotation, you need to translate the location of the card holder back so it interlocks with the front. You can either use your vast understanding of trigonometry, or tinker around until you get it!  I'll let you decide which approach is fastest.

I've chosen to put each of the pieces together with another Union block. The first item is our rotated part with the text. Next, we added the back, and if you click the + sign on the Union block you'll add a place for another part to add.

Now we need a base to hold the stack of cards. To do this, add a cube with X, Y, and X dimensions of 10, 95, and 3 mm. This gives us a flat base you can add to the holder with a Translate command. Add this part to the Union block.

Finally, you need to add a lip to make sure the cards don't slip out the front. This is made with another translated “cube” with X, Y, and Z dimensions of 3, 95 and 10 mm that has been translated into place and added to the Union block. 

That's it!

Now when you render the shape you'll get the finished card holder ready to save as an STL file and send to your printer. If you print the card holder the way it will sit on a desk, your printer will add supports to the interior of the holder that you take off when the print is finished. Now, if you want, you can rotate the entire model by 90º so it prints sideways. This way, no supports are needed, and the finish of the card holder might be prettier. You should try both ways and see which one you like best.

The finished card holder is shown below. The goal of this blog was to show a few of the nice tools in BlocksCAD. You should continue to experiment on your own and let me know how you like the language.





Introducing: Educational Projects By David Thornburg


Introducing: Educational Projects By David Thornburg

Today we're starting something that we think you'll love. This is the first in a monthly series of projects in the STEAM (science, technology, engineering, arts, and mathematics) education areas written by David Thornburg, that we want you to try with your class! They involve the design and construction of projects that can be used to explore a variety of topics. 

Our emphasis is on the design process and we'll primarily focus on two excellent free design tools suitable for students at most grade levels: Tinkercad and BlocksCAD. These entry-level tools are cloud-based, and accounts are free. 

As you work with these projects, we want to hear from you! Especially if you have cool ideas for new projects, and ways you have extended these projects in your own schools. Have fun and enjoy David's first project: Sea Shell Spirals!



Sea shells are amazing objects to explore.  Young children enjoy finding them, exploring their colors and shapes.  They even hold large ones to their ears to “hear the ocean.”  This project explores the spiral shape of many shells, with special focus on shapes similar to that of the chambered nautilus― a cephalopod whose shell is an equiangular spiral.  In this project, you will build 3D-printable shapes of quarter circles with different sizes based on Fibonacci numbers (connecting this activity to math) that, when assembled, produce a spiral similar to that of the chambered nautilus.  These shapes will be made using Tinkercad.

Fibonacci numbers are generated from a simple calculation and show up quite commonly in nature.  Starting with the numbers 1 and 1, the next number in the series is the sum of the previous two numbers.  This gives us 1, 1, 2, 3, 5, 8, 13, 21, and so on.  Our project will use quarter circle pieces whose width is based on Fibonacci numbers.  We will start with two quarter circles 10 mm across, and add more from there.

If you'd like to download the entire lesson as PDF for usage in the classroom, use the link below!

SEA SHELL SPIRALS : Step-By-Step Design

1. Using Tinkercad, drag a cylinder to the workplane and drag the ruler tool onto this plane as well.  The reason for using the ruler is that it lets us enter numbers for sizes as text rather than having to drag a corner of a shape by hand which sometimes is hard to control accurately.

2. Make the cylinder 20 mm in diameter by entering these numbers in the text field associated with each side on the x-y plane.


3.  Change the height of the cylinder to 5 mm and drag a box onto the workplane.

4.  Set the box dimensions to 25 mm on a side, with a height of 7 mm.

5.  Use the black triangle at the top to lower the box beneath the workplane by 1 mm.

6.  Using the arrow keys, move the box so the left edge is at the center of the cylinder.  If you don't get it the first time, you can fix it later.


7.  Copy and paste the box and use the arrow keys so the upper edge is at the center of the cylinder.


8.  Select both boxes and turn them into holes by clicking on the hole button in the Inspector window near the top right of the workplane window.


9.  Select all three objects and choose the Group button at the top of the screen.  This will leave you with just the visible quarter circle.


10.  If the dimensions are not exactly 10 mm by 10 mm, Ungroup the object, move the boxes to the right place, and Group everything again.

11.  Change the piece height to 3 mm.  This completes your basic piece, and everything else is made from copies of this.


12. Copy and paste your first shape, move it to the right and click on the rotate symbol (the red curved arrow shown below) and drag the piece by 90º.

13.  Use the arrow keys to move the piece to the right, leaving a small gap with the first piece.


14.  Copy and paste this piece and move it down a bit.

15.  Change the dimensions to 20 mm, rotate the piece 90º, and move it to clear the pieces you already made.


16.  Repeat this process with a size of 30 mm.


17. Repeat this process with a size of 50 mm.


18. Repeat this process with a size of 80 mm.


19.  You now have enough pieces to fill your build plate.  Change your view so you are looking at the model from the top and adjust any pieces that are too close together.


20.  Export your model as an STL file for printing.

Printing & Assembling The Model

Print a set of shapes in any color you wish and put them together into a spiral.  To my eye, this pattern is very pleasing to the eye.  As you can see, using Fibonacci numbers makes everything fit perfectly!


Things To Do & Notice

 /* Style Definitions */
	{mso-style-name:"Table Normal";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	font-family:"Liberation Serif","serif";
     Chambered Nautilus Shell Section Source: Wikipedia