PI3MFT

Printable Iterative 3D Meshed Fractal Toolbox
10 Downloads
Updated 26 Aug 2025

Editor's Note: This file was selected as MATLAB Central Pick of the Week

Please first chech the header of main_PI3MFT.m to view the list off possible shapes and options.
Then choose a pattern (pattern_id number) and one shape option.
Example #1
[V,T] = main_PI3MFT(1, 2, true);
gives you the Menger cube at iteration #2, displays it, and stores vertex and triangle sets in V and T output data.
Example #2
[V,T] = main_PI3MFT(2, 3, true);
gives you the cube base koch snowflake at iteration #3, displays it, and stores vertex and triangle sets in V and T output data.
Example #3
[V,T] = main_PI3MFT(16, 3, true); % with torus_shape = true;
gives you the Sierpinki torus at iteration #3, displays it, and stores vertex and triangle sets in V and T output data.
Once you have vertex V and triangle T data output sets, you will need a writer to a 3D printable format (.ply ore .stl writers for instance), which are not included in this toolbox. Beware of the format you use to register your file; some formats (e.g .stl) may mess up the triangulation and waste the 3D printable property.
Normals may not be all coherently oriented; to reorient all them coherently just use reorient_all_faces_coherently function from my mesh processing toolbox or my mesh generation toolbox.
Please don't forget to rate if this code helped and you enjoyed it ! ;-)
3D printed examples created with this code
Cube base Koch snowflake iteration #2
Sierpinski tetrahedron iteration #3
Sierpinski octahedron iteration #3

Cite As

Nicolas Douillet (2026). PI3MFT (https://github.com/NicolasDouillet/PI3MFT/releases/tag/v1.1), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2019b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Version Published Release Notes
1.1

See release notes for this release on GitHub: https://github.com/NicolasDouillet/PI3MFT/releases/tag/v1.1

1.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.