Turtlestitch: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
 
(26 intermediate revisions by 2 users not shown)
Line 16: Line 16:
== Introduction ==
== Introduction ==


'''TurtleStich''' is a programmable embroidery platform created by Andrea Mayr-Stalder (Artist, Educator, Project Lead), [http://m.ash.to/ Michael Aschauer] (Artist, Lead Developer)
'''TurtleStich''' is a programmable embroidery platform created by Andrea Mayr-Stalder (Artist, Educator, Project Lead), [http://m.ash.to/ Michael Aschauer] (Artist, Lead Developer). It is a [[programming microworld]], that allows learning how to program by exploration.


According to [http://turtlestitch.org/about Turtlestitch - Coded Embroidery] (Retrieved Aug 2018), {{quotation|Turtlestitch is based on a browser-based educational programming language ([https://snap.berkeley.edu/ Snap!]) to generate patterns for embroidery machines. It is easy to use, requiring no prior knowledge in programming, yet powerful in creating nowels patterns for embroidery. It is usefull for designers to experiment with generative aesthetics and precision embroidery as well as tool for innovative workshops combining an introduction to programing with haptic output. Turtlestitch uses Snap!s "pen module" which it interprets as a needle and transforms its output into widely-used embroidery file formats.}}. An alternative description is provided in the official [http://turtlestitch.org/faq#whatis FAQ]: {{quotation|TurtleStitch is a platform to generate patterns for embroidery machines. Technically, it's based on Snap!, a browser-based educational programming language. It is easy to use, requires no prior knowledge in programming, and is a powerful tool to create personalized patterns for embroidery. It is useful for designers for experimenting with generative aesthetics and precision embroidery, as well as tool for innovative workshops combining an introduction to programing with haptic output.}}
According to [http://turtlestitch.org/about Turtlestitch - Coded Embroidery] (Retrieved Aug 2018), {{quotation|Turtlestitch is based on a browser-based educational programming language ([https://snap.berkeley.edu/ Snap!]) to generate patterns for embroidery machines. It is easy to use, requiring no prior knowledge in programming, yet powerful in creating nowels patterns for embroidery. It is usefull for designers to experiment with generative aesthetics and precision embroidery as well as tool for innovative workshops combining an introduction to programing with haptic output. Turtlestitch uses Snap!s "pen module" which it interprets as a needle and transforms its output into widely-used embroidery file formats.}}. An alternative description is provided in the official [http://turtlestitch.org/faq#whatis FAQ]: {{quotation|TurtleStitch is a platform to generate patterns for embroidery machines. Technically, it's based on Snap!, a browser-based educational programming language. It is easy to use, requires no prior knowledge in programming, and is a powerful tool to create personalized patterns for embroidery. It is useful for designers for experimenting with generative aesthetics and precision embroidery, as well as tool for innovative workshops combining an introduction to programing with haptic output.}}


Turtlestitch does require programming knowledge. However, it can be acquired through the use of this platform as one its main goal is to provide a motivating means to teach computer science principles.
Turtlestitch does require programming knowledge. However, it can be acquired through the use of this platform as one its main goal is to provide a motivating means to teach computer science principles.
See also:
* [[Snap]], the language behind Turtlestitch
* [[Embroidery Designer]] based on [[Pocket Code]], a mobile programming environment similar to Scratch. This embroidery module was formerly known as [[Code’n’Stitch]] (launched in Apr 2019).
* [[BlocksCAD]], a similar environment for creating 3D models.
== Programming education ==
Turtlestitch allows teaching programming by intuition or using a more "scientific approach" that includes mathematics, software principles, optimized algorithms, etc.
=== Intuitive programming ===
The following, using the now obsolete "pen" system was done during a faculty meeting without thinking about any math. Just some trial and error of angles and distances. A main program will draw call a "block" that will draw the stick, it then will call 8 times a block that draws a petal and shift/rotate in between.
It includes several programming constructs:
* output instructions (move, pen up/down, goto, thickline, reset ...)
* blocks (i.e. functions and function calls ), with and without arguments
* variables ("origin-x" and "origin-y" in the ''stick'' block.
* simple loops
* event ("when clicked")
[[file:simple_flower_2-small.png|none|800px|thumb|Simple flower, [http://turtlestitch.org/users/dks/projects/Simple%20flower%20made%20with%20satin%20lines%20using%20blocks turtle code]. Old version for re-use]]
Result:
[[file:simple_flower_2-small.jpg|none|400px|thumb|Simple flower, stitched]]


== Basic Functionality ==
== Basic Functionality ==


* Turtlestitch is available as online browser-based environment.
* Turtlestitch is available as online browser-based environment.
=== Supported embroidery formats ===
* The program can export to .DST (Tajima) .EXP (Melco) low level [[embroidery format]]s and SVG. The former can be translated to other proprietary embroidery formats, using a [[Embroidery_software#Free_converter_tools_and_other_utilities|converter]]. The latter could be imported to other embroidery programs, e.g. [[InkStitch]].
* The program can export to .DST (Tajima) .EXP (Melco) low level [[embroidery format]]s and SVG. The former can be translated to other proprietary embroidery formats, using a [[Embroidery_software#Free_converter_tools_and_other_utilities|converter]]. The latter could be imported to other embroidery programs, e.g. [[InkStitch]].
=== Embroidery commands ===
As of 2019 there are additional embroidery commands in turtleStitch. Before moving the turtle, one can define a stitch type, e.g. running stitch, satin stitch, cross stitch, etc. Do not use the old "Pen" system anymore
=== Defining the stage size ===
Quote: The maximum size of your pattern is determined by the size of the embroidery frame of your machine. To make sure you are working on the right scale, you can define the “Stage size.” Go to settings ( ), choose “Stage size ...” and define sizes of your “stage” on which you design. The values are given in pixels and 50 pixels = 1cm. So, if you want to design for the pattern with a maximum size of 15cm x 15cm, choose the values for “Stage width” and “Stage height” each 750 (retrieved oct 2019 from [https://www.turtlestitch.org/page/faq the FAQ]).
* Brother 18 x 13cm = 900 x 650
== Tips & Problems ==
* Manual information, e.g. cards can be found at the bottom of the Turtlestitch page (as of March 2020). The menus on top are useless for learning the software.
* Before exporting, you must execute the code, i.e. the software will export the drawing that is seen on the canvas.
* Many examples on the site (as of early 2020) still use the old system. Learn how to combine embroidery plus move commands. 
* Some color change information is missing in the DST file. Workaround: Either convert to another format or edit the file in a converter or embroidery design program.
Problems:
- Move -X steps does not work with embroidery instructions (March 2020)


== Links ==
== Links ==
Line 32: Line 79:


* [http://turtlestitch.org/ http://turtlestitch.org/] Project site.
* [http://turtlestitch.org/ http://turtlestitch.org/] Project site.
* [http://www.turtlestitch.org/gallery gallery] of Turtlestitch programs
* [https://www.turtlestitch.org/beta https://www.turtlestitch.org/beta] (Beta version. As of Jan 2019 we strongly recommend trying this version, since it supports a wider choice of embroidery stitches.
* [https://www.turtlestitch.org/static/download/TurtleStitch-Cards-Beginners.pdf Cards for Beginners] (start from here!)
* [http://www.turtlestitch.org/gallery Gallery] of Turtlestitch programs
* [https://www.turtlestitch.org/static/download/TurtleStitch-Cards-Beginners.pdf Cards to teach TurtleStitch] in workshop. Also usable as a kind of manual since no other exists (at the time of writing)
* [http://turtlestitch.org/faq FAQ]
* [http://turtlestitch.org/faq FAQ]
* [http://snap.berkeley.edu/SnapManual.pdf Snap! User Manual]
* [http://snap.berkeley.edu/SnapManual.pdf Snap! User Manual]
Line 42: Line 92:
'''Blogs, wikis, etc.'''
'''Blogs, wikis, etc.'''


* [http://steamct.blogspot.com/ Steam Coding/Turtle Stich] Blog by Jennifer Lin,
* [https://wiki.turtlestitch.org/start TurtleStitch Wiki]. As of Aug 2018, this is empty.
* [https://wiki.turtlestitch.org/start TurtleStitch Wiki]. As of Aug 2018, this is empty.
=== Other ===
* [http://steamct.blogspot.com/ Steam Coding/Turtle Stich] Blog by Jennifer Lin.
* [https://codecamp.sites.grinnell.edu/craftofcode/ Craft of Code]
== Bibliography ==
* Bryant, C., Gilmour, J., Herce-Hagiwara, B., Pham, A. T., Remash, H., Remash, M., ... & Rebelsky, S. A. (2018, February). The Craft of Code: Exposing Elementary Students to Computing Through Tangible Crafts. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (pp. 1080-1080). ACM. https://dl.acm.org/citation.cfm?id=3162321
* Pohl, M. S., & an der PH Wien, D. (2017). Sticken im internetzeitalter. BILDNERISCHE ERZIEHUNG| TECHNISCHES WERKEN| TEXTILES GESTALTEN, 156. [http://www.kunstakademie.at/phbe/wp-content/uploads/2017/11/Boekwe0117.pdf#page=80 PDF]
* DeWitt, A., Fay, J., Goldman, M., Nicolson, E., Oyolu, L., Resch, L., ... & Zak, E. (2017, March). Arts Coding for Social Good: A Pilot Project for Middle-School Outreach. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (pp. 159-164). ACM. https://dl.acm.org/citation.cfm?id=3017795
* Luhana, K. K., Mueller, M., Schindler, C., Slany, W., & Spieler, B. (2018). Rock bottom, the world, the sky: Catrobat, an extremely large-scale and long-term visual coding project relying purely on smartphones. arXiv preprint https://arxiv.org/abs/1808.06292
** Defines future plans for an endless story
* Wolz, U., Charles, G., Feire, L., & Nicolson, E. (2018, February). Code Crafters Curriculum: A Textile Crafts Approach To Computer Science. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (pp. 1055-1055). ACM. https://dl.acm.org/citation.cfm?id=3162360 (abstract only)
* Wolz, U., Auschauer, M., & Mayr-Stalder, A. (2019). Code crafting with turtlestitch. In ACM SIGGRAPH 2019 Studio, SIGGRAPH 2019 (pp. 1–2). New York, NY, USA: Association for Computing Machinery, Inc. https://doi.org/10.1145/3306306.3328009
* Wolz, U., Auschauer, M., & Mayr-Stalder, A. (2019). Programming embroidery with turtlestitch. In ACM SIGGRAPH 2019 Studio, SIGGRAPH 2019 (pp. 1–2). New York, NY, USA: Association for Computing Machinery, Inc. https://doi.org/10.1145/3306306.3328002
* Wolz, U., Charles, G., Feire, L., & Nicolson, E. (2018). Code Crafters Curriculum. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education  - SIGCSE ’18 (pp. 1055–1055). New York, New York, USA: ACM Press. https://doi.org/10.1145/3159450.3162360
[[Category:Programming]]

Latest revision as of 18:59, 31 March 2022

Machine embroidery
Module: Turtlestitch
to improve beginner
2022/03/31 ⚒⚒ 2018/06/05
Objectives
  • Understand the purpose of Turtlestitch
  • Basic use

Objectives

  • Understand the purpose of Turtlestitch
  • Basic use


  • Quality: to improve
  • Difficulty: beginner


Introduction

TurtleStich is a programmable embroidery platform created by Andrea Mayr-Stalder (Artist, Educator, Project Lead), Michael Aschauer (Artist, Lead Developer). It is a programming microworld, that allows learning how to program by exploration.

According to Turtlestitch - Coded Embroidery (Retrieved Aug 2018), “Turtlestitch is based on a browser-based educational programming language (Snap!) to generate patterns for embroidery machines. It is easy to use, requiring no prior knowledge in programming, yet powerful in creating nowels patterns for embroidery. It is usefull for designers to experiment with generative aesthetics and precision embroidery as well as tool for innovative workshops combining an introduction to programing with haptic output. Turtlestitch uses Snap!s "pen module" which it interprets as a needle and transforms its output into widely-used embroidery file formats.”. An alternative description is provided in the official FAQ: “TurtleStitch is a platform to generate patterns for embroidery machines. Technically, it's based on Snap!, a browser-based educational programming language. It is easy to use, requires no prior knowledge in programming, and is a powerful tool to create personalized patterns for embroidery. It is useful for designers for experimenting with generative aesthetics and precision embroidery, as well as tool for innovative workshops combining an introduction to programing with haptic output.”

Turtlestitch does require programming knowledge. However, it can be acquired through the use of this platform as one its main goal is to provide a motivating means to teach computer science principles.

See also:

Programming education

Turtlestitch allows teaching programming by intuition or using a more "scientific approach" that includes mathematics, software principles, optimized algorithms, etc.

Intuitive programming

The following, using the now obsolete "pen" system was done during a faculty meeting without thinking about any math. Just some trial and error of angles and distances. A main program will draw call a "block" that will draw the stick, it then will call 8 times a block that draws a petal and shift/rotate in between.

It includes several programming constructs:

  • output instructions (move, pen up/down, goto, thickline, reset ...)
  • blocks (i.e. functions and function calls ), with and without arguments
  • variables ("origin-x" and "origin-y" in the stick block.
  • simple loops
  • event ("when clicked")
Simple flower, turtle code. Old version for re-use

Result:

Simple flower, stitched

Basic Functionality

  • Turtlestitch is available as online browser-based environment.

Supported embroidery formats

  • The program can export to .DST (Tajima) .EXP (Melco) low level embroidery formats and SVG. The former can be translated to other proprietary embroidery formats, using a converter. The latter could be imported to other embroidery programs, e.g. InkStitch.

Embroidery commands

As of 2019 there are additional embroidery commands in turtleStitch. Before moving the turtle, one can define a stitch type, e.g. running stitch, satin stitch, cross stitch, etc. Do not use the old "Pen" system anymore

Defining the stage size

Quote: The maximum size of your pattern is determined by the size of the embroidery frame of your machine. To make sure you are working on the right scale, you can define the “Stage size.” Go to settings ( ), choose “Stage size ...” and define sizes of your “stage” on which you design. The values are given in pixels and 50 pixels = 1cm. So, if you want to design for the pattern with a maximum size of 15cm x 15cm, choose the values for “Stage width” and “Stage height” each 750 (retrieved oct 2019 from the FAQ).

  • Brother 18 x 13cm = 900 x 650

Tips & Problems

  • Manual information, e.g. cards can be found at the bottom of the Turtlestitch page (as of March 2020). The menus on top are useless for learning the software.
  • Before exporting, you must execute the code, i.e. the software will export the drawing that is seen on the canvas.
  • Many examples on the site (as of early 2020) still use the old system. Learn how to combine embroidery plus move commands.
  • Some color change information is missing in the DST file. Workaround: Either convert to another format or edit the file in a converter or embroidery design program.

Problems: - Move -X steps does not work with embroidery instructions (March 2020)

Links

Official

For developers

Blogs, wikis, etc.

Other

Bibliography

  • Bryant, C., Gilmour, J., Herce-Hagiwara, B., Pham, A. T., Remash, H., Remash, M., ... & Rebelsky, S. A. (2018, February). The Craft of Code: Exposing Elementary Students to Computing Through Tangible Crafts. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (pp. 1080-1080). ACM. https://dl.acm.org/citation.cfm?id=3162321
  • Pohl, M. S., & an der PH Wien, D. (2017). Sticken im internetzeitalter. BILDNERISCHE ERZIEHUNG| TECHNISCHES WERKEN| TEXTILES GESTALTEN, 156. PDF
  • DeWitt, A., Fay, J., Goldman, M., Nicolson, E., Oyolu, L., Resch, L., ... & Zak, E. (2017, March). Arts Coding for Social Good: A Pilot Project for Middle-School Outreach. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (pp. 159-164). ACM. https://dl.acm.org/citation.cfm?id=3017795
  • Luhana, K. K., Mueller, M., Schindler, C., Slany, W., & Spieler, B. (2018). Rock bottom, the world, the sky: Catrobat, an extremely large-scale and long-term visual coding project relying purely on smartphones. arXiv preprint https://arxiv.org/abs/1808.06292
    • Defines future plans for an endless story
  • Wolz, U., Charles, G., Feire, L., & Nicolson, E. (2018, February). Code Crafters Curriculum: A Textile Crafts Approach To Computer Science. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (pp. 1055-1055). ACM. https://dl.acm.org/citation.cfm?id=3162360 (abstract only)
  • Wolz, U., Auschauer, M., & Mayr-Stalder, A. (2019). Code crafting with turtlestitch. In ACM SIGGRAPH 2019 Studio, SIGGRAPH 2019 (pp. 1–2). New York, NY, USA: Association for Computing Machinery, Inc. https://doi.org/10.1145/3306306.3328009
  • Wolz, U., Auschauer, M., & Mayr-Stalder, A. (2019). Programming embroidery with turtlestitch. In ACM SIGGRAPH 2019 Studio, SIGGRAPH 2019 (pp. 1–2). New York, NY, USA: Association for Computing Machinery, Inc. https://doi.org/10.1145/3306306.3328002
  • Wolz, U., Charles, G., Feire, L., & Nicolson, E. (2018). Code Crafters Curriculum. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education - SIGCSE ’18 (pp. 1055–1055). New York, New York, USA: ACM Press. https://doi.org/10.1145/3159450.3162360