Automated Mountain-Valley Assignment

How to use: upload a .cp file, using auxiliary lines to indicate creases for which you don't know the direction. You can assign m/v to the creases that you do know. Make sure your creases are in the default [-200,200] box, and there are no extra creases outside of that.

You can manually find a solution by answering "yes" or "no" at every step if the current crease pattern self intersects (or if it's just one you don't like). To automatically find one solution, click "Find first solution."


                
                


            

Is the current cp flat foldable? (for manual solution)


Original crease pattern

Current crease pattern

Notes about this program

How it works: All the possible mv assignments of a cp would form a large binary tree, since each unassigned crease can either become M or V. This program essentially traverses the tree depth first until it reaches a flat foldable solution with all creases assigned.

More specifically, at every level of the tree it assigns a crease such that a new face is able to make a path back to the starting face without crossing unassigned creases. (These unreached faces are shaded grey.) Sometimes this allows the program to add multiple creases in one iteration. At every step, the program looks for local flat foldability and global flat foldability among the faces that have been connected to the starting face. If an incomplete cp already has self intersection, the branch is pruned.

This program borrows code from Jason Ku's Flat-Folder for the self intersection detection, which is available as open source under the MIT license.


Things coming soon: I'm actively working on this project right now. Here are some things I hope to improve soon.



This program was created by Brandon Wong and is under the MIT license. Github