1Design your impossible object
Choose two shapes from the
dropdown menus.
To use your own shape, upload an .svg file. Your curve
must have the following properties.
- It must be a single closed curve, like the sample shapes.
- Every vertical line must cross the curve at exactly one or two points (or vertical line segments)—no indentations from the sides.
- Size doesn't matter. The two shapes are scaled automatically to match.
- The figures below show examples of valid and invalid shapes. The indentations on the five-pointed star would be cut off by the algorithm.
Use any vector drawing program to create the shape. If you want to define the curve mathematically, you can use GeoGebra or Desmos. In that case, turn off the axes, grid, and any labels. Regardless of the tool you use, export the curve as an .svg file.
2Export to OpenSCAD
Click Export to OpenSCAD, then Download .scad to save a self-contained .scad file. The pop-up window opens prepopulated with your chosen dimensions. They can be modified here or later in OpenSCAD.
The optional legs let the model stand upright at the proper viewing angle. Also, two of the
feet are round and one is a fish eye; the fish-eye foot should point directly toward or away from the
viewer.
3Render and export an STL
If you don't have OpenSCAD, download the free, open-source program from
openscad.org/downloads.html.
- Open the
.scad file in OpenSCAD.
- Design → Preview to preview the model.
- Fine tune the parameters in the editor window or via the Customizer panel (Window → Customizer).
- Design → Render for a full-resolution render.
- File → Export → Export as STL to save the
.stl file.
4Print it
Send the .stl to your slicer, and print as usual.
Printing advice
- These shapes touch the build plate at only a few small points and most of the shape is unsupported, so adding temporary printing support is essential.
- A brim helps keep the object anchored to the plate.
- Slowing the print speed can improve adhesion and reduce the chance of failure.
- The legs can be thin and fragile, especially where they connect to the main body. Be careful when removing the support structures so the legs don't break.
5Viewing the object
Place the object on a flat surface with the fish eye leg pointing toward you or away from you.
The effect assumes that the viewer is "at infinity." From a practical standpoint, this means that the viewer should not be too close to the object. Also, this means that smaller versions of the object may work better than larger ones.
Ways to view the illusion:
- Look down on the object from 45° to see the effect. Turn it around to see the effect from the other side.
- Prop a mirror behind it—the reflection shows the back-side view. Tip the mirror a few degrees toward
you (about 87° rather than a full 90°) for the best effect.
- Shine a light down on it from behind at 45° to cast the "opposite shadow"—a shadow in the shape of the back-view silhouette.
- Place a mirror flat on a surface. Set the object on the mirror. View from a 45° angle.
The math behind the illusion
Do you want to read more about how these illusions work?
- Richeson, D. (2016). DO THE MATH!: Sugihara's Impossible Cylinder. Math Horizons, 24(1), 18–19. doi.org/10.4169/mathhorizons.24.1.18
- Richeson, D. (2026). A New Method for Creating Impossible Cylinders. Proceedings of Bridges 2026: Mathematics, Art, Music, Architecture, Education, Culture, 487–490. archive.bridgesmathart.org/2026/bridges2026-487.html