# Supplement

Supplement

to the monograph

An Introduction to Computational Origami

for Mathematica 13

An Introduction to Computational Origami

for Mathematica 13

Tetsuo Ida (University of Tsukuba)

and

Fadoua Ghourab

revised on December 12,2022

revised on July 28,2022

revised on July 17,2022

revised on January 19,2022

revised on September 16,2021

revised on March 23, 2021

revised on December 12,2022

revised on July 28,2022

revised on July 17,2022

revised on January 19,2022

revised on September 16,2021

revised on March 23, 2021

## 1. Introduction

1

. IntroductionThis note is a supplement to Monograph "An Introduction to Computational Origami", Springer, September, 2020:

This note is a guide to using Eos (E-Origami System) described in the monograph. We explain how to install Eos on your computer and give examples of small Orikoto programs, where Orikoto is the programming language of Eos. They may serve as a test of your installation.

## 2. Installation

2. Installation

### System requirements

System requirements

Eos consists of Mathematica packages. The current version of Eos is 3.7. The version of Mathematica. Eos runs under the operating systems (Windows 11, and macOS 13.0.1), where Mathematica 13.1.0.0 is installed. We do not guarantee that Eos 3.7 works correctly for versions earlier than Mathematica 12.

### Download

Download

To download Eos 3.7, you must be an Eos website blog member. To become a member, visit the Eos project website:

First, register yourself . The site is constructed using WordPress (free, open - source software under GPLv2) . You need to provide your account name and your email address . The account name is typically your name (space in the middle is allowed) or your nickname . You must create a unique new name if the same name has been used already . When the registration is successful, you will receive an Eos Project email telling you how to retrieve your own password . Using the password, try to log in to the Eos Project site . Successful login implies that you become a member whose status is a "mono-reader. "

We use your account name and email address only for the communication between you and the Eos project. We use cookies via several plugins that are publically available to the Wordpress users. We use a firewall plugin. It reports us repeated failure logins and originating ip accesses to the database. We also use the plugin ”Simple History” that keeps the the record of user logins for 20 days.

Logging in to the Eos project website, we see the website’s front page. There, you can find the main menu bar. We reach the supplement pages by clicking the menu tab “Supplement.” We see four articles linked from the supplement tabs: Mathematica 12.1 or earlier, Mathematica 12.2, Mathematica 12.3 and Mathematica 13. This article is reached from the top tab “Mathematica 13.“

We will find Eos 3.7 by the menu tab "Eos software." Open Eos 3.7 page.

### Configuration

Configuration

Download the zipped archive of your choice. If you want to have the latest version of Eos, you download the zipped file Eos3.7 in your desired folder. We use the folder whose path is ~/Dropbox. This path marks the root directory of the Eos system. In macOS, for example, it is /Users/xxx/Dropbox/.

If you unzip the file, you will automatically create folder Eos3-7 in the Dropbox. In the folder, you find files Installer.nb and init.m. Open init.m by Mathematica, and rewrite the path according to your folder structure. Namely, if you select a different root folder, e.g., MyEos, to Drop1box, rewrite the line in init.m

Orikoto`$eosSystemDirectory=

FileNameJoin[{$HomeDirectory,"Dropbox","Eos3-7"}]

FileNameJoin[{$HomeDirectory,"Dropbox","Eos3-7"}]

to

Orikoto`$eosSystemDirectory=

FileNameJoin[{$HomeDirectory,"MyEos","Eos3-7"}]

FileNameJoin[{$HomeDirectory,"MyEos","Eos3-7"}]

and save init.m

Then, open, by Mathematica, Installer.nb, and rewrite Dropbox to MyEos, likewise. Namely, rewrite

fromFile=FileNameJoin[

{$HomeDirectory ,"Dropbox","Eos3-7","init.m"}]

{$HomeDirectory ,"Dropbox","Eos3-7","init.m"}]

to

fromFile=FileNameJoin[

{$HomeDirectory ,"MyEos","Eos3-7","init.m"}]

{$HomeDirectory ,"MyEos","Eos3-7","init.m"}]

Execute Installer.nb (Cmd-a + shift enter). Click Yes when Mathematica asks whether you allow the installer to proceed. The installer will put init.m in user’s Mathematica/Kernel, replacing the existing init.m if it exists. If the existing init.m is important for your other applications, save it before you execute the Installer.nb.

The installer prints, in the case of macOS,

Succesfullyinstalled

/Users/xxx/Library/Mathematica/Kernel/init.m

where xxx is the user name.

Exit the Mathematica, saving the Installer.nb .

We can execute installer.nb, whenever we changed the init.m. In other words, we can modify init.m to allow our other applications together with Eos, we should edit the init.m file and install it again by the installer. Do not forget to exit the Mathematica session after the Installer.nb is executed. File init.m is executed only when a new Mathematica session starts.

We have made an important change since the release of Eos 3.6. Eos3.6 is valid until the end of 2022 (your local time). This new release of Eos3.7 is effective until the end of March 31, 2023. In other words, each version lives for three months. We plan to change the usage of Eos software to a subscription-based model from a one-time distribution model for ease of maintenance and development. We care less about backward compatibility and look more for new products.

## 3. Testing

3

. TestingThe following lines of commands are very simple Orikoto program examples. Try to execute them one by one. We will obtain the same outputs as they were in this notebook. The first output by the execution of the

In[]:=

<<EosHeader`

g3 Version 2.1

Eos3.7 (November 15,2022) running under Mathematica 13.1.0 for Mac OS X ARM (64-bit) (June 16, 2022) on Wed 14 Dec 2022 12:33:50.

indicates the version of Eos, Mathematica, and the operating system. The output message differs depending on your Mathematica installation and OS.

In[]:=

EosSession["simple-test"];

In[]:=

NewOrigami[]

simple-test: Step 1

Out[]=

In[]:=

HO["A","B"]

simple-test: Step 2

Out[]=

In[]:=

HO["A","D"]

simple-test: Step 3

Out[]=

In[]:=

UnfoldAll[];

In[]:=

EndSession[];

On the website, following the menu tabs

Origami Works -> Test Examples,

we find four test examples. Download the files. Open each file and execute all the commands.

Origami Works -> Test Examples,

we find four test examples. Download the files. Open each file and execute all the commands.

Except for file yacht.nb, each file has more than one section; Header, Construction, and Verification. When we execute a command in the file, the header part sections have initialization cells that load Eos automatically. Therefore, we may start with Section Construction.

We defined new notations and used them in some examples. We recommend including EosNotation Section that is included in Orikoto program examples. Copy the EosNotations Section at the end of this file after the header part of your Orikoto program.

## 4. Eos environment

4

. Eos environment ### Computing mode

Computing mode

#### Symbolic vs. numeric

Symbolic vs. numeric

Exact[] sets the computation to be exact computation during the constraint solving by Eos. Inexact[] switches to approximate numeric computation (floating point computation).

In[]:=

Exact[]

Step 1

Out[]=

Ok (Exact)

#### Interaction vs . non-interactive construction

Interaction vs . non-interactive construction

In[]:=

InteractiveFold[True]

command sets the interactive mode of Eos. When Eos needs more inputs from the origamist (user) to proceed to fold the origami, Eos asks the origamist's choice or instruction. Command

This command performs the setting of a non-interactive mode. In this mode, the origamist must provide each command’s required arguments.

#### Marking of intersection

Marking of intersection

By default, Eos marks the intersection of a fold-line and existing line segments. Execute MarkOff[] to let Eos not to mark the intersections.

#### Numeric precision

Numeric precision

#### Graphics

Graphics

For visualization of origami by Mathematica, Eos has a data structure for origami suited for the graphics processing by Mathematica. Roughly speaking, the data structure of origami has layers of faces. A small gap separates each layer. We can change the value of the gap by setting the global variable $gap to a specific value or by providing it by named parameter Gap.

Function GraphicsOrigami has the functionality to make the visualized origami more refined. For example, we can specify the gap by the use of named parameter Gap -> desired-gap. For details, read Chapter 7 of the monograph. By default, the global variable $gap is initially set to 0.001. Function ShowOrigami is a synonym of GraphicsOrigami.

### Interactive construction

Interactive construction

We program a method of folding origami by the Orikoto programming language. We develop the program interactively like a human origamist would construct the origami by hand. Starting from an initial square origami sheet, we construct an origami artwork step by step. We have a few options at each step of the construction; method of folding, unfolding, and other manipulations of the origami, such as handling the geometric objects on the origami (e.g., marking the intersection of lines).

A slight change at some step may induce the restart of the construction from the beginning. The mode of computation using Mathematica’s Notebook is particularly suited to the origami construction since restarting from the start will not pose a big problem during the Orikoto programming if we group the input cells properly. We recommend carefully designed use of cell grouping to avoid selecting many individual input cells during the development of the Orikoto program.

### Eos session

Eos session

We can name the origami construction and verification sessions. The name will appear in the output of the subsequent steps of command execution.

Use command EndSession[ ] to finish the session.

#### Initial origami

Initial origami

By default, the initial origami is a 1×1 square and the left bottom vertex is point A(0, 0). The size can be changed as shown in the call of NewOrigami.

We define an initial origami by a square of size 5/2 by 5/2.

Note that the size of the graphics output of Step 1 does not change on our computer screen, but the locations of each point are certainly changed. See the output of the following command.

We may define the shape of the initial origami to be a rectangular.

We may also change the shape of the initial origami even to any convex polygon

We can also change the colors of the faces. The default colors are blue & green. These colors are different from the colors of faces in the monograph. On the paper, the color of “green” does not appear so nice as on the computer display.

#### Unfold operator “!”

Unfold operator “!”

In geometric construction, the action of folding is often immediately followed by unfolding. We realize this unfolding by postfix unfold command “!”.