Use the Block model to remesh our model. You can adjust Octree depth or Scale settings to change the block size.

Export the model to WaiveFront(.obj) file - this is the file that we are going to use to generate origami.

Check Triagulate faces box and Uncheck the Normals, Materials and include UVs when you export.

Prepare Your Mesh: Check Non-manifold

Although Blender provides a convenient tool to voxelize the mesh, it does not guarantee a manifold geometry.
We need to make sure that there are no non-manifold components in the voxelized model. We use Meshlab to detected non-manifold edges.

Select Filter -> Cleaning and Repairing -> Remove Faces from Non Manifold Edges. You will see a change in the number of faces if there were manifold edges in the original model.

You can draw the edges and better rendering to show the removed non-manifold faces.

In this case, you need to go back to step 1 and adjust your settings of voxelization until a manifold model is obtained.

Find the Hamiltonian Path and Generating Origami

Generating stackable origami using our software simply by the following command

./hamiltonian_main [-option] [argument] -i voxelized_model.obj

There are few options available in our implementation:

-h or -help: print help

-p or -piles: specify the number of piles of stacked origami

-c or -col: specify the number of columns of stacked origami, will override -p

-r or -row: specify the number of rows of folded origami, will override -p

-n or -num-path: specify the number of different hamiltonian paths

You can then drag and drop the produced ori file onto our web-based visualization tool to Origami Folder to instantaneously view the model.

Plan the Continous Folding Path

Planning a continuous folding path for the stackable origami is non-trivial. Our current version of the polyhedral net folding tool provides the ability to plan a folding path for simple stackable shapes, simply running the app using the following command.

./origami [-option] [argument] stackable_model.ori

The following options and values are recommended to maximize your probability of finding a feasible path:

-sampler dis: using discrete sampling for PRM

-ms 20: using maximum sample size of 20, increase this value if you fail to find a feasible path

-bs 100: using a batch size of 100, increase this value if you fail to find a feasible path

-tl 30: using 30 seconds of time limit for each batch, increase this value if you fail to find a feasible path