File Exchange

image thumbnail


version 1.0.1 (98.1 KB) by Giuseppe Cardillo
Stringart: Play with geometry and Bézier's quadratic curve


Updated 19 Jul 2018

View Version History

GitHub view license on GitHub

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

String art, or pin and thread art, is characterized by an arrangement of colored thread strung between points to form geometric patterns. Though straight lines are formed by the string, the slightly different angles and metric positions at which strings intersect gives the appearance of Bézier curves (as in the mathematical concept of envelope of a family of straight lines). Quadratic Bézier curve are obtained from strings based on two intersecting segments. String art has its origins in the 'curve stitch' activities invented by Mary Everest Boole at the end of the 19th century to make mathematical ideas more accessible to children. It was popularised as a decorative craft in the late 1960s through kits and books.

Syntax: stringart(varargin)

'Sides' - sides number of polygon you want to use (default = 3)
'Crossed' - logical value that says if you want to use the perimeter (0 - default) or bisettrices of vertices (1).
'Density' - The number of pins you want to use for each side default = 40)
'Color' - 1x3 vector that indicates the colors of the wires (default = [0 0 0] black)
Created by Giuseppe Cardillo

To cite this file, this would be an appropriate format: Cardillo G. (2018) Stringart: Play with geometry and Bézier's quadratic curve

Cite As

Giuseppe Cardillo (2020). stringart (, GitHub. Retrieved .

Comments and Ratings (4)

Claudio Gelmi

Since the release of MATLAB 2016b, some functions and operators can handle what is called "implicit expansion behavior" ( Therefore, if your are using an older release, you will have to make a simple change to enjoy this magnificent function. In line 65, replace the current line with:


Enjoy String Art!

Claudio Gelmi

You are right, Guiseppe. My problem must be the MATLAB version that I'am using, because I'm using the default parameters...Congratulations for this submission! Great String Art! >> Claudio

Giuseppe Cardillo

Considering that there are two posts as "File Exchange Pick of the Week" ( and surely it works. Now, we have to understand where is the fail onto your system.

Claudio Gelmi

Great idea, but I get an error in line 62...

Error using -
Matrix dimensions must agree.

Error in stringart (line 62)

MATLAB Release Compatibility
Created with R2018a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!