# Origami programming

in E-origami system

Eos

Origami programming

in E-origami system

Eos

in E-origami system

Eos

Tetsuo Ida

University of Tsukuba, Japan Homepage:https://www.i-eos.org/ida/

(c) Tetsuo Ida, Eos project, University of Tsukuba

## OutLine

OutLine

We cover six topics :

1

.Origami geometry

2

.Introduction to Orikoto language of Eos

3

.Geometric construction by Orikoto

4

.Automated geometric theorem proving

5

.Traditional origami practice

6

.More examples..

We will make all the material for the tutorial on the home page of the Eos project www . i - eos . org after the tutorial session, in addition to Eos system.

We will make all the material for the tutorial on the home page of the Eos project www . i - eos . org after the tutorial session, in addition to Eos system.

## Terminology

Terminology

Origami ⟺ Ori + Kami ⟺ fold + paper ⟺ Paper folding

action of paper folding

a sheet of paper (used as a countable noun)

art of paper folding

## Euclidean Geometry and Origami Geometry

Euclidean Geometry and Origami Geometry

### Objects

Objects

We consider 2D (dimensional) in Euclid, and 3D and semi-3D in Origami.

In Euclid, we have geometric objects: planes, lines and points.

In Origami, we have geometric objects: stack of sheets of paper, creases, marked point (abstracted as (bounded) plane, ray, line segment and point.

### Construction tools

Construction tools

In Origami, we only have paper folding according to small number of fold rules called Huzita-Justin rules.

In Euclid, we have a straightedge and a compass.

## Comparison: Euclid and Origami

Comparison: Euclid and Origami

With the Euclid tool, we can draw circles and lines, and can construct points of their intersections (circle and circle, circle and line, and line and line).

In Origami, we can construct a crease made by fold and unfold along the same fold-line. The fold-line becomes a crease. Conversely, a crease can be extended to be a line when we imagine an infinite sheet of paper. We can construct the intersections of creases.

In both cases, we have a set E (E for Euclid) and O (O for Origami) of points (intersections).

E and O form a field when we appropriately define field operations.

When we continue constructions in E, we form a tower of fields;

, , ..., . is a field extension of with operation of taking the square root, starting from the field of rational numbers.

E

0

E

1

E

i+1

E

i

When we continue constructions in O, we from a tower of fields,

, , ..., . is a series of field extensions each by operation of taking a square root or cube root, starting from the field of rational numbers.

O

0

O

1

O

i+1

In the above sense, origami geometry is more powerful than Euclidean geometry.

## Examples

Examples

Construct a trisector of an arbitrary angle.

Construct a regular heptagon.

Double a cube.

Given a segment of an arbitrary length l, construct a segment whose length is .

3

l

## Rule of the game

Rule of the game

We use only lines and points on an origami, and superpose them by folding an origami along a line.

We call this line the fold-line for the superposition.

We require that the rule set specifies a finite number of the fold-lines. By applying one of the rules, we obtain one of the fold-lines that it specifies for folding.

## Superposition

Superposition

One superposition :

(a) points and

P

1

P

2

P

1

P

2

P

1

P

2

(b) lines and

l

1

l

2

l

1

l

2

l

1

l

2

l

1

l

2

l

1

l

2

l

1

l

2

(c) a point and a line

P

l

P

l

¬ (∈ )

P

l

The pink s give us an infinite number of the fold-lines.

## Combination of superpositions

Combination of superpositions

To eliminate the cases of infinite umber of fold lines, we impose further conditions on the objects: non-degeneracy condition and non-incidence condition. However, more interesting method is to combine the superpositions.

### Example 1

Example 1

We take the pink cases of(a) and (b). We combine (a) and (b). The combination of the superpositions reads:

Given line l and a point P on the origami O, fold O along a fold-line that passes through P and superposes l with itself.

### Example 2

Example 2

We can use the pink case of (c). We combine two different superpositions (c).

Given line and and points and on the origami O, fold O along a fold-line that superposes and , and and .

l

1

l

2

P

1

P

2

l

1

P

1

l

2

P

2

## Huzita-Justin rule (set)

Huzita-Justin rule (set)

Huzita-Justin rule set is based the two superposition methods with appropriate degeneracy and non-incident conditions. It is a complete enumeration of operations of superposition. It consists of seven rules.

### Axiom

Axiom

Huzita - Justin' s rules specify fold-lines that we can perform a fold by hand.

## Huzita - Justin rules

Huzita - Justin rules

#### O1

O1

#### O2

O2

#### O3

O3

Problem 1: Show another fold-line.

Problem 2: Show a configuration in which we have only one fold-line.

#### O4

O4

#### O5

O5

Problem: Show that we have one more fold-line in this configuration.

#### O6

O6

Problem: Show that we have two more fold-lines in this configuration.

Problem: Show configurations in which we have 0, 1, or 2 fold lines.

#### O7

O7

Problem: Show a configuration in which we have no fold line.

## Language Orikoto

Language Orikoto

Orikoto is a language for origami programming for Eos.

Orikoto has the same syntax of Wolfram Language of Mathematica.

Orikoto runs on Mathematica 12.3 (most functionality of Orikoto is available on earlier versions of Mathematica 12 and 11).

From Orikoto all the functionality of Mathematica is accessible.

For beginners, palette Eos Assistant is available.

## Example - Angle trisection

Example - Angle trisection

We describe the construction and verification of trisection of an arbitrary angle.

To invoke Eos, we load the Eos package as follows :

Usually, the first command that we enter is EosSession, which initializes Eos run-time environment. The argument of EosSession is a string that names the session we begin. This name will appear in the subsequent steps of the command executions.

#### Construction

Construction

We then create a new origami of 10 by 10 square.

We construct a new point E at an arbitrary position on the origami. For the construction, we have to give a concrete location, e.g., (6,8) in this example. Any point on the origami will do.

The next command expresses O1. It asks Eos to fold the origami along the line that extends the segment AE. At the fundamental level of origami geometry, the fold line is determined uniquely by two superpositions, i.e., point A and point A, and point E and point E. However, we can forget about the logical meaning as long as we use Orikoto and think the fold in terms of manipulations of origami. The default fold is so-called “valleyfold” and right faces of the fold-line are moved. Here, you have to think of the half-line starting at A since we need the notion of the direction to determine left/right hand side.

The command line below ends by an exclamation mark ‘!’. The exclamation mark is a postfix operator of Unfold. This line consists of two commands of folding by rule O1 and unfolding the resulting origami to restore to the previous shape. The net effect is to obtain the crease EA.

We will trisect the angle ∠EAB. We need three lines AB, HI, and FG by Abe’s method. The three lines are parallel, and Line HI is equidistant from AB and FG. Since we already have AB, we now construct line FG. We apply rule O2. We obtain line FG. Line FG is the perpendicular bisector of the segment AD. Note that in the command arguments we specify Mark-> {“AD”,”BC”}. This added argument asks Eos to mark the intersections of the fold-line with segments AD and BC. The names of the intersections are not specified in the command. Hence, the system automatically assigns names F and G to the intersections with AD and BC, respectively.

Similarly, we obtain line HI .

The next step is the most important in the construction. In this step, we enter a command of rule O6 We fold the origami in such a way as to bring point F to line AE and point A to line HI. The command calls for two superpositions. We see that three fold-lines satisfy this requirement. Therefore, this command with four arguments cannot determine a single requested folding. It only shows three possible cases.

We select the third one in the above cases and obtain the origami shown below.

We almost finish the construction of the two trisectors. The line that passes through the left-bottom corner (formerly point A position) of the original origami and point A is one trisector, and the other is the line that passes through the left-bottom corner and point H.

The rest of the commands help us to view the obtained trisectors.

The graphics output below more clearly shows the trisectors. They are the lines that extend the segments AK and AJ.

#### Verification

Verification

Without loss of generality, we set the locations of the four corners of the initial origami. We set the location of E to be arbitrary. This can be specified by “E” {u1,u2}, where u1 and u2 are free variables.

## Traditional Origami

Traditional Origami

To many people, origami is fun for more reasons.

More complicated method of folding are used.

## Towards 3D origami and variations

Towards 3D origami and variations

### Origami piano

Origami piano

https://www.wolframcloud.com/obj/ida.tetsuo.ge/Published/Origami-Piano-tutorial-published.nb

## Concluding Remarks

Concluding Remarks

Overview of Eos system

Formalization of Computational Origami

is discussed in detail in the monograph:

An Introduction to Computational Origami, Springer, 2020

is discussed in detail in the monograph:

An Introduction to Computational Origami, Springer, 2020

A paper on “A new modeling of (some) traditional folds” will be available at forthcoming ENTCS (ADG 2021, T.Ida and H. Takahashi.

## Initialization Cells

Initialization Cells

## Load Eos

Load Eos

## EosNotations

EosNotations

## Orikoto Notations

Orikoto Notations

#### Quote

Quote

#### Vector

Vector

#### Quantifier

Quantifier

Exists

ForAll

### g3Notations

g3Notations

multivec multiplicative inverse

unit multivec

multivec conjugate

multivec reflection

multivec constants

Grade operator (extraction)

Insertion to multivec (not used)

Exponential

Projection to i-blade (not used)

Magnitude

Precedence

Inner and outer products have precedence over multiplication

Outer products have precedence over inner products.

## Extra

Extra