You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Swipe is a **domain-specific, declarative language** for non-developers (such as designers, animators, illustrators, musicians, videographers and comic writers) to create **media-rich/animated documents** that contain photos, videos, images, vector graphics, animations, voices, musics and sound effects, which will be consumed on touch-enabled devices such as smartphones, tablets and touch-enabled set-top-boxes (such as **iPhone and Apple TV**).
15
15
16
-
##What is Swipe Engine?
16
+
##What is Swipe Engine?
17
17
18
18
Swipe Engine is the **viewer** of documents described in Swipe. Since it supports hyperlinking and allows you to browse from one Swipe document to another, you could even call it a **domain-specific browser**. At this moment (October 2015), Swipe Engine is available for **iOS and tvOS**, but will be ported to other platforms such as Android, Windows and even HTML5 (and we are looking for volunteers to do so).
19
19
20
-
##Why do we need Swipe?
20
+
##Why do we need Swipe?
21
21
22
22
Because existing platforms (such as HTML5, ePub, Flash and iBooks) require some form of programming to create media-rich/animated documents, which is expensive and error-prone.
23
23
@@ -27,15 +27,15 @@ Because existing platforms (such as HTML5, ePub, Flash and iBooks) require some
27
27
28
28
That's why I came to the conclusion that it's time to design a new platform, which is powerful enough to describe media-rich documents that allow us to take full advantage of modern devices, but is also **strictly declarative** (no API, no script), easy to read, easy to write and easy to auto-generate.
29
29
30
-
##Why is it open?
30
+
##Why is it open?
31
31
32
32
Because I want to make it an industry standard so that everybody can benefit from it. I was lucky enough to work on several successful products, such as Windows 95, which were used by hundreds of millions of people. I'd like to see such a success again.
33
33
34
-
##Is it really free?
34
+
##Is it really free?
35
35
36
36
Yes, I still maintain the copyright, but it's **absolutely free**. You can use it for non-commercial and commercial applications, modify it as needed, port it to other platforms (I'd really appreciate if you open source it as well), re-distribute it with your applications, as long as you explicitly mention that your application uses Swipe and recognize me (Satoshi Nakajima) as the copyright holder.
37
37
38
-
##Target Applications
38
+
##Target Applications
39
39
40
40
* Interactive Comics
41
41
* Sound Novels
@@ -44,7 +44,7 @@ Yes, I still maintain the copyright, but it's **absolutely free**. You can use i
44
44
* Media-rich Tutorials and Presentations
45
45
* Interactive Arts
46
46
47
-
##Primary Audiences
47
+
##Primary Audiences
48
48
49
49
* Designers/Illustrators
50
50
* Animators
@@ -54,7 +54,7 @@ Yes, I still maintain the copyright, but it's **absolutely free**. You can use i
54
54
* Teachers/Educators
55
55
* Weekend Programmers
56
56
57
-
##Design Principles
57
+
##Design Principles
58
58
59
59
* Optimized for touch-enabled devices
60
60
* 100% declarative (no programming)
@@ -64,11 +64,11 @@ Yes, I still maintain the copyright, but it's **absolutely free**. You can use i
64
64
* Designer friendly
65
65
* Lightweight & portable
66
66
67
-
##Is there an authoring tool?
67
+
##Is there an authoring tool?
68
68
69
69
I'm working on it. Stay tuned.
70
70
71
-
##Specification
71
+
##Specification
72
72
73
73
The specification is available [here](SPECIFICATION.md).
Copy file name to clipboardExpand all lines: SPECIFICATION.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
-
#Swipe Language Specification
1
+
#Swipe Language Specification
2
2
3
-
##Abstract
3
+
##Abstract
4
4
5
5
This specification defines the features and syntax of Swipe, a mark-up language for non-developers to create media-rich and animated documents for touch-enabled devices.
6
6
7
-
##Status of this document
7
+
##Status of this document
8
8
9
9
This specification describes the current snapshot of the Swipe 0.1, which is still under development and may change drastically.
10
10
11
-
##1. Introduction
11
+
##1. Introduction
12
12
13
13
Swipe is a domain-specific, declarative language for non-developers (such as designers, animators, illustrators, musicians, videographers and comic writers) to create media-rich documents (books and presentations) that contains photos, videos, vector graphics, animations, voices, music and sound effects, which will be consumed on touch-enabled devices (such as smartphones, tablets and touch-enabled set-top-boxes).
14
14
@@ -63,7 +63,7 @@ Swipe is NOT
63
63
-**StringId**: Regular string used as an identifier
64
64
-**LangId**: Language identifier, such as "\*", "en", "ja", "de", etc., where "\*" represents the default
65
65
66
-
##2. Document
66
+
##2. Document
67
67
68
68
A **Document** is a UTF8 JSON file, which consists of a collection of **Pages**. The order of **Pages** in the collection is significant, and they will be presented to the user in the specified order.
69
69
@@ -108,7 +108,7 @@ When the user opens this document with a Swipe viewer, the user will see only th
108
108
-**languages** ({"id":LangId, "title":String},...): Languages to display via the "Lang." button in the Swipe viewer.
109
109
110
110
111
-
##3. Page
111
+
##3. Page
112
112
113
113
**Page** consists of a collection of **Elements**. The order of **Elements** in the collection is significant, those elements will be rendered in the specified order (from bottom to top).
114
114
@@ -144,7 +144,7 @@ Here is a **Document** with a **Page**, which has two **Elements**.
144
144
-**eyePosition** (Float): Eye position (z-height) for the perspective relative to width, default is 1.0 (not supported)
##4. Paging direction, inter-page transition and animation
147
+
##4. Paging direction, inter-page transition and animation
148
148
149
149
The paging direction is defined by the "paging" property of the **Document**. It must be either *vertical*, *leftToRight* or *rightToLeft*, and the default is *vertical*.
150
150
@@ -165,7 +165,7 @@ The "play" property defines the timing of play/animation defined on the **Page**
165
165
-*always*: The animation on the **Page** will be played after scrolling to this page
166
166
-*scroll*: The animation on the **Page** will be performed while the user scrolls the page
167
167
168
-
##5. Page Template
168
+
##5. Page Template
169
169
170
170
A **PageTemplate** defines a set of properties and **Elements** to be shared among multiple **Pages**. It also defines a background music to be played when one of those **Pages** is active.
171
171
@@ -230,7 +230,7 @@ The following example uses the "id" to identify a particular **Element** in the
230
230
### PageTemplate specific properties
231
231
- bgm (URL): Specifies the background music to play.
232
232
233
-
##6. Element
233
+
##6. Element
234
234
235
235
An **Element** is a visible entity on a **Page**. It occupies a specified rectangle area within a **Page**. An **Element** may contain child **Elements**.
236
236
@@ -346,7 +346,7 @@ The following example shows how to use a **ElementTemplate** with child **Elemen
346
346
}
347
347
```
348
348
349
-
##7. Transition Animation
349
+
##7. Transition Animation
350
350
351
351
The **Transition Animation** specifies a set of animations to play right after or during the page transition (depending on the "transition" property of the page).
352
352
@@ -394,7 +394,7 @@ If the "play" property of the page is "scroll" like the example below, the anima
394
394
}
395
395
```
396
396
397
-
##8. Loop Animation
397
+
##8. Loop Animation
398
398
399
399
The "loop" property of the element specifies the **Loop Animation** associated with the element. Unlike **Transition Animation**, it repeats the same animation multiple times specified by the *count* property (the default is 1).
400
400
@@ -427,7 +427,7 @@ Following example wiggles the text "I'm wiggling!" three times when the second p
427
427
}
428
428
```
429
429
430
-
##9. Multilingual Strings
430
+
##9. Multilingual Strings
431
431
432
432
The "strings" property of the page specifies strings in multiple languages. The format is:
0 commit comments