Step 1 Download the Software
Go to the Antiprism downloads page. Download and install Antiprism 0.20.
Step 2 Run the Programs
You need a method of running programs on the command line. In Windows, that could be a DOS box, on other systems a terminal emulator (e.g. xterm). Start this up.
Ensure that the installed Antiprism programs are in your PATH, and that you have OpenGL support for the viewer. (Terminal commands will be in bold.) Type the following command:
antiview icosahedron
If a viewer pops up displaying an icosahedron, then everything is working fine. Close the viewer by pressing 'q' on the keyboard.
Step 3 Make a Model of a Card
Measure your playing card. Display a model of it.
My card is 3 x 4.2 units, but use your own card dimensions at the end of the following command:
polygon dih -s poly 4 | off_trans -R 0,0,45 -S 3,4.2,0 | antiview
Step 4 Repeat the Card Symmetrically
Now that the card is in a known position, it can be moved to a special position and repeated kaleidoscopically.
The kaleidoscope is specified using Schoenflies notation, and has a particular orientation. The details of this can be found in the last section of the help text from running 'off_util -H symmetry'.
In this example the card will be moved towards us (away from the origin), 5 units along the z-axis, and will be repeated according to rotational icosahedral symmetry (Schoenflies notation: I).
polygon dih -s poly 4 | off_trans -R 0,0,45 -S 3,4.2,1 | off_trans -T 0,0,5 | poly_kscope -s I | antiview
The result is a card model with the length of the cards aligned with the edges of an icosahedron.
Just to do something a bit different, for my example model I have twisted the cards 65 degrees, and they are moved out 3.3 units for good overlap.
polygon dih -s poly 4 | off_trans -R 0,0,45 -S 3,4.2,1 | off_trans -T 0,0,3.3 -R 0,0,65 | poly_kscope -s I | antiview
Step 5 Make the Template
There is a card facing you. Press 'z' on the keyboard, hold down the left mouse button and move the mouse towards you. The model will move towards you.
Now, press 'S' (Capital 'S'), hold down the left mouse button, and move the mouse away from you. This will move a slicing plane away from you (may take several movements from the mouse until it hits the model). Move the slice until it is just above the card.
Take a screen shot of the window, and you now have an image to use as the template for your card. Alternatively, measure the position of the intersecting lines off of the screen.
Step 6 Choose Where the Slits Will Go
I slit my cards along the slanted lines from the outside and the other lines from the inside. Trying to do it the other way would have made the cuts intersect and removed the corners of the card.
I entered my image into an image editing program (GIMP), and rotated the card to be square with the screen.
Step 7 Make the Model
Cut the cards and assemble the model. If you are not sure if it will work, make a prototype by printing out a sheet of copies of your template and trying that first.
Here is my prototype. I will use larger pieces of paper next time!
Step 8 More Advanced Models
More advanced models will require more than one card. The trick is to to make the aligned cards individually and store them as files, combine them and repeat kaleidoscopically, finally transform the model by the inverse (opposite) of each card alignment to get the card back to the front.
For example, a truncated dodecahedron. Display a model, showing different kinds of edges by colour, and showing vertex numbers.
off_color -e S tr_dod | antiview -n v
Aligning a card on the front edge is easy
polygon dih -s poly 4 | off_trans -R 0,0,45 -S 3,4.2,1 | off_trans -R 0,0,90 | antiview
Aligning a card on the second type of edge is trickier. Choose the edge between vertices 20 and 29. Find the direction between those edges and the coordinates of one of the vertices on it.
off_query -e 20,29 ED tr_dod
off_query -I 20 Vc tr_dod
We are now going to align the upright of the card with the first direction...
0.80901699437529362,-0.49999999999936473,0.30901699437506891
...and then rotate it around this direction until the normal direction of the card (direction of the z-axis) is aligned with the coordinate of the vertex (planar with this and the axis) which is:
-1.3090169943771268,0.49999999999828287,2.6180339887494966
By trial and error, a good distance for the cards from the origin is 13 units. Make the two cards like this:
polygon dih -s poly 4 | off_trans -R 0,0,45 -S 3,4.2,1 | off_trans -T 0,0,13 -R 0,0,90 > tmp1.off
polygon dih -s poly 4 | off_trans -R 0,0,45 -S 3,4.2,1 | off_trans -T 0,0,13 -R 0,1,0,0,0,1,0.80901699437529362,-0.49999999999936473,0.30901699437506891,-1.3090169943771268,0.49999999999828287,2.6180339887494966 > tmp2.off
Combine them, repeat them symmetrically and view them like this:
off_util tmp1.off tmp2.off | poly_kscope -s I | antiview
Now, how to get the second card to the front so that its cuts can be seen for the template is very easy; simply undo the original alignment rotation by following it by -i:
off_util tmp1.off tmp2.off | poly_kscope -s I | off_trans -R 0,1,0,0,0,1,0.80901699437529362,-0.49999999999936473,0.30901699437506891,-1.3090169943771268,0.49999999999828287,2.6180339887494966 -i | antiview
These are the basic techniques.
Good luck!
Just updated your iPhone to iOS 18? You'll find a ton of hot new features for some of your most-used Apple apps. Dive in and see for yourself:
2 Comments
Nice! Works better than having to work out all of the trig by hand like I was doing.
Awesome article. Thanks for sharing.
Share Your Thoughts