Kresling Haptic Buttons

by stijnwuite15 in Craft > Paper

28 Views, 0 Favorites, 0 Comments

Kresling Haptic Buttons

20260520_115208.jpg

Paper is a highly accessible and sustainable material, traditionally valued in design for rapid sketching. Meanwhile, in tangible interaction design, prototyping physical forms and mechanical feedback typically relies on slow, costly, and resource-intensive processes like 3D printing. As paper comes as a flat sheet, it is rarely considered for these three-dimensional haptic prototypes. This research investigates whether folded paper can bridge this gap by focusing on the Kresling structure, a naturally occurring folding pattern of a compressible paper cylinder.

To explore this, a Research through Design (RtD) approach was taken, fusing studio-based tinkering, a technical force validation, and a design synthesis. Physical testing revealed that modifying the geometry of this folding pattern produces three distinct mechanical feedback types: a spring-like resistance, a non-compressible click, and a bi-stable compressible click, alongside potential acoustic feedback.

To make these findings accessible for the design community, this project introduces a workflow consisting of a parametric design tool, a lookup table, and a database of proven structures. By simplifying the paper folding process, this research demonstrates how paper can be applied in rapid tangible interface prototyping, suggesting that adding rich, physical feedback might be as simple as folding a sheet of paper.

Supplies

Paper, a camera, Python openCV, Processing

Manual How to Use

There will be a few things provided on this page, of which a lot are programs that will help you create your own Kresling haptic feedback structure, for buttons, joysticks, or other interface items.


First there will be a jupyter file in which the analysis of the Kresling structure is shared. (feel free to give feedback on the calculations if you spot any mistakes or are missing something. At the bottom of this Kernel there is a generative table that gives an overview of which parameters to fill in for certain structure radii.

These can be filled in in a processing program, which is the second attached file. This program makes the folding pattern based on your filled in parameters. When you click the export button 3 files come out. A calibration file, a cut file and a print file. Depending on your goals you can either just use the print file, cut it out by hand and fold it. If you have a vinyl cutter you can upload the cut file to cut the pattern for easier folding experience (all the research based findings are based on cut patterns). If you want to combine a print and cut file you can use the crossings on the calibaration file to align the print with your cutting bed. There are two parametric tools, one for hight objects and one for wide objects. If your object will be small I advise to use the one for wide objects.

The last shared file is the current data base of verified parameters and their feedback type, this is an open spreadsheet so feel free to add your parameters to it aswell so others can have an easier time to find the pattern that is right for them.

Jupyter Research File + Generative Table

variant of final table.png
output_25_0.png
output_28_0.png
output_30_0.png
output_32_0.png
output_34_0.png
output_36_0.png
output_38_0.png
output_40_0.png
output_42_0.png
output_42_1.png
output_44_0.png
output_44_1.png
output_45_0.png
output_48_0.png
output_5_0.png
output_5_1.png
output_5_2.png
output_5_3.png
output_5_4.png
output_5_5.png
output_5_6.png
output_5_7.png
output_5_8.png
output_5_9.png
output_5_10.png
output_5_11.png
output_5_12.png
output_5_13.png
output_5_14.png
output_5_15.png
output_5_16.png
output_5_17.png
output_5_18.png
output_5_19.png
output_5_20.png
output_5_21.png
output_5_22.png
output_5_23.png
output_5_24.png
output_5_25.png
output_5_26.png
output_5_27.png
output_5_28.png
output_7_0.png
output_7_1.png
output_7_2.png
output_7_3.png
output_7_4.png
output_7_5.png
output_7_6.png
output_7_7.png
output_7_8.png
output_7_9.png
output_7_10.png
output_7_11.png
output_7_12.png
output_7_13.png
output_7_14.png
output_7_15.png
output_7_16.png
output_7_17.png
output_7_18.png
output_7_19.png
output_7_20.png
output_7_21.png
output_7_22.png
output_7_23.png
output_7_24.png
output_7_25.png
output_7_26.png
output_7_27.png
output_7_28.png
output_11_1.png
output_11_3.png
output_11_5.png
output_11_7.png
output_11_9.png
output_11_11.png
output_11_13.png
output_11_15.png
output_11_17.png
output_11_19.png
output_11_21.png
output_11_23.png
output_11_25.png
output_11_27.png
output_11_29.png
output_11_31.png
output_11_33.png
output_11_35.png
output_11_37.png
output_11_39.png
output_11_41.png
output_11_43.png
output_11_45.png
output_11_47.png
output_11_49.png
output_11_51.png
output_11_53.png
output_11_55.png
output_11_57.png
output_15_0.png
output_17_0.png
output_19_0.png

Here is the Jupyter Python code of the research and the generative table. If you don't have access to this program I have attached a picture of the final look-up table




Parametric Tool Wide

This is the parametric tool for wide structures

Parametric Tool High

This is the parametric tool for high structures

Current Data Base

Here is the final database as a pdf, if you have a new entry please leave a comment.