Skyscrapers/Towers blocks for Julia Robinson Math Festival

My wife helps lead the local Math Teachers’ Circle (and we’re near the Research Triangle Park, so of course it is the Triangle Math Teachers’ Circle!), and most every year she volunteers for the large Julia Robinson Math Festival at UNC Chapel Hill hosted by the Chapel Hill Math Circle, where hundreds of kids have a rousing day of math play.

She wants to help local math teachers bring the joy of Julia Robinson Math Festivals to their students, so she’s crowd-sourcing the contents of a Festival in a Box. The normal way to make the playing pieces for the Skyscrapers game that’s part of the box is to click together unifix blocks, but that seemed to me an easy way to lose pieces, and I thought it would be really easy to design some parts to 3D print instead, so I signed up.

They work pretty well!

The CAD Journey

I wanted to make the model completely parametric, but I couldn’t figure out how to make the number of units in a tower parametric in FreeCAD, at least with the design I came up with, and without downloading any extensions. So I made six different models, one for each useful unit height, and made only the characteristics parametric.

I had the brilliant (?) idea to model them with an explicit void and a cascading diamond self-supporting top in order to avoid the need for infill up to a fairly ridiculous size. I ran into a weird problem where if I exported an STL or OBJ, the slicer would act as if the inner void wasn’t there, but if I exported a STEP file, it worked fine. I had to get some sage advice on Mastodon before I learned that sometimes, FreeCAD will export STL and OBJ files with inside faces that have their normals pointing in the same direction as the outside faces, which makes most slicers ignore those inside faces. (Each face is a triangle, and the order of the vertices in the triangle gives a rotational orientation to that triangle, which can be used to construct a vector normal to the plane of the triangle, such that the vector points towards the unfilled side.)

A few years ago, PrusaSlicer implemented an “Even-odd” setting for Print Settings → Advanced → Slicing → Slicing Mode that will work around this. It was originally implemented to work with some software for designing parts for 3D printing model aircraft, but it’s helpful here too. I believe that it is not the default because it is more computationally expensive for the slicer.

I didn’t discover that setting until after I’d used STEP files to print all the pieces, but honestly, I think I might just keep using STEP files generally for 3D printing. They are explicitly dimensioned, for one thing; STL and OBJ just have conventional dimensions, which we just tend to assume are mm but occasionally run into having to scale by 2540% because someone used inches. :smiling_face: And STEP files are easier for others to import into their CAD of choice to make changes to.

I like learning new things as a result of modeling, and I definitely succeeded in that with this project. :tada:

Make Your Own

Models are available for download with printing instructions at Cults3D, Printables, and GitLab. For any particular grid size, you will need to print at least that many pieces of each size. To do a 4x4 grid, you will need 4 1Unit, 4 2Unit, 4 3Unit, and 4 4Unit pieces. To do a 5x5 grid, you will need 5 1Unit, 5 2Unit, 5 3Unit, 5 4Unit, and 5 5Unit pieces. The game will be easier to play if each size is printed in its own color. All the 1Unit blocks in one color, all the 2Unit in another color, and so forth.

Play the Game

The rules somewhat resemble sudoku. Place pieces, n each of of n different heights, from 1 unit to n units, on an n x n grid, following a few simple rules:

  • Each row contains only one piece of each height.
  • Each column contains only one piece of each height.
  • A number in a square means a piece of that unit height must be placed there.
  • A number next to the grid means that you must be able to “see” only that number of pieces from that location outside the grid; that is, that exactly that number of pieces must be placed in ascending order by height away from that edge in the adjacent row or column, and that no taller pieces are placed further away from the number. Note that the visible pieces might not be immediately adjacent; there may be shorter pieces hidden in between.

A proper Skyscrapers puzzle has a unique solution.

Puzzle grids are available to download from Julia Robinson Math Festival and Mark Chubb.

2 Likes