Supplement
Supplement
to the monograph
An Introduction to Computational Origami
with Eos3.7.2 and Mathematica 13.2
An Introduction to Computational Origami
with Eos3.7.2 and Mathematica 13.2
Tetsuo Ida (University of Tsukuba)
and
Fadoua Ghourab
revised on June 24,2023
revised on March 27,2023
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 March 27,2023
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 small examples writtten in Orikoto language of Eos. They may serve as a test of your installation.
2. Installation
2. Installation
System requirements
System requirements
Eos consists of threee Mathematica packages. The current versions of Eos are 3.7.2. Eos runs under the operating systems (Windows, and macOS and Linux), where Mathematica 13.2.1 is installed.
Download
Download
To download Eos 3.7.2, 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. Make sure that your email address is correct. Your account information will be sent to this 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 request is received, 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 have become a member whose status is a "mono-reader." In case you do not receive an Eos project invitation, you cannot login to the website.
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 record of user logins for 20 days.
Logging in to the Eos project website, you see the website’s front page. There, you can find the main menu bar. You reach the supplement pages by clicking the menu tab “Supplement.” You see two articles linked from the supplement tabs: Mathematica 12.1 or earlier and Mathematica 13.2. This article is reached from the top tab “Mathematica 13.2.“
We will find Eos 3.7.2 by the menu tab "Eos software." Open Eos 3.7 page.
Configuration
Configuration
Download the zipped archive. 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-2 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 Dropbox, rewrite the line in init.m
Orikoto`$eosSystemDirectory=
FileNameJoin[{$HomeDirectory,"Dropbox","Eos3-7-2"}]
FileNameJoin[{$HomeDirectory,"Dropbox","Eos3-7-2"}]
to
Orikoto`$eosSystemDirectory=
FileNameJoin[{$HomeDirectory,"MyEos","Eos3-7-2"}]
FileNameJoin[{$HomeDirectory,"MyEos","Eos3-7-2"}]
and save init.m
From now on, I only explain the case of Eos3-7-2.
Then, open, by Mathematica, Installer.nb, and rewrite Dropbox to MyEos, likewise. Namely, rewrite
fromFile=FileNameJoin[
{$HomeDirectory ,"Dropbox","Eos3-7-2","init.m"}]
{$HomeDirectory ,"Dropbox","Eos3-7-2","init.m"}]
to
fromFile=FileNameJoin[
{$HomeDirectory ,"MyEos","Eos3-7-2","init.m"}]
{$HomeDirectory ,"MyEos","Eos3-7-2","init.m"}]
Execute Installer.m (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.2 is effective until the end of December 31, 2023. In other words, each version lives for six months. We plan to release a new version every three months, however. 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[]:=
<<EosLoader.m
Eos3.7.1.1 (March 21,2023) running under Mathematica 13.2.1 for Mac OS X ARM (64-bit) (January 27, 2023) on Wed 21 Jun 2023 18:29:53.
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/Origami: Step 1
Out[]=
In[]:=
HO["A","B"]
simple-test/Origami: Step 2
Out[]=
In[]:=
HO["A","D"]
simple-test/Origami: 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 (Load Eos), Construction, and Verification. When we execute a command in the file, the first section has an initialization cell that loads Eos package. 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 first section (.e.,Load Eos Section) 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[]
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 ShowOrigami 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 GraphicsOrigami is a synonym of ShowOrigami.
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 screen.
Unfold operator “!”
Unfold operator “!”
In geometric construction, the action of folding is often immediately followed by unfolding. We realize this unfolding by postfix unfold operator “!”.