mulmocast 1.1.4 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/lib/actions/audio.d.ts +0 -1
  2. package/lib/actions/audio.js +8 -12
  3. package/lib/actions/images.js +1 -0
  4. package/lib/actions/movie.js +1 -3
  5. package/lib/agents/image_openai_agent.js +4 -1
  6. package/lib/methods/mulmo_presentation_style.d.ts +2 -3
  7. package/lib/methods/mulmo_presentation_style.js +14 -8
  8. package/lib/types/agent.d.ts +3 -0
  9. package/lib/types/schema.d.ts +704 -0
  10. package/lib/types/schema.js +5 -1
  11. package/lib/utils/context.d.ts +25 -0
  12. package/lib/utils/file.d.ts +1 -1
  13. package/lib/utils/file.js +5 -2
  14. package/lib/utils/preprocess.d.ts +13 -0
  15. package/package.json +2 -1
  16. package/scripts/templates/image_prompt_only_template.ts +95 -0
  17. package/scripts/test/gpt.json +32 -0
  18. package/scripts/test/mulmo_story.json +11 -0
  19. package/scripts/test/test.json +64 -0
  20. package/scripts/test/test1.json +40 -0
  21. package/scripts/test/test2.json +66 -0
  22. package/scripts/test/test_audio.json +151 -0
  23. package/scripts/test/test_audio_instructions.json +69 -0
  24. package/scripts/test/test_beats.json +58 -0
  25. package/scripts/test/test_captions.json +52 -0
  26. package/scripts/test/test_elevenlabs_models.json +193 -0
  27. package/scripts/test/test_en.json +29 -0
  28. package/scripts/test/test_hello.json +17 -0
  29. package/scripts/test/test_hello_google.json +25 -0
  30. package/scripts/test/test_html.json +66 -0
  31. package/scripts/test/test_image_refs.json +49 -0
  32. package/scripts/test/test_images.json +48 -0
  33. package/scripts/test/test_lang.json +31 -0
  34. package/scripts/test/test_layout.json +152 -0
  35. package/scripts/test/test_lipsync.json +53 -0
  36. package/scripts/test/test_loop.json +34 -0
  37. package/scripts/test/test_media.json +244 -0
  38. package/scripts/test/test_mixed_providers.json +91 -0
  39. package/scripts/test/test_movie.json +39 -0
  40. package/scripts/test/test_no_audio.json +252 -0
  41. package/scripts/test/test_no_audio_with_credit.json +253 -0
  42. package/scripts/test/test_order.json +68 -0
  43. package/scripts/test/test_order_portrait.json +72 -0
  44. package/scripts/test/test_replicate.json +126 -0
  45. package/scripts/test/test_slideout_left_no_audio.json +45 -0
  46. package/scripts/test/test_sound_effect.json +41 -0
  47. package/scripts/test/test_spillover.json +116 -0
  48. package/scripts/test/test_transition.json +55 -0
  49. package/scripts/test/test_transition_no_audio.json +45 -0
  50. package/scripts/test/test_video_speed.json +80 -0
  51. package/scripts/test/test_voice_over.json +104 -0
  52. package/scripts/test/test_voices.json +54 -0
@@ -0,0 +1,252 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "title": "Media Test",
6
+ "references": [
7
+ {
8
+ "url": "https://www.mulmocast.com",
9
+ "title": "Mulmocast",
10
+ "type": "article"
11
+ }
12
+ ],
13
+ "speechParams": {
14
+ "speakers": {
15
+ "Presenter": {
16
+ "voiceId": "shimmer",
17
+ "displayName": {
18
+ "en": "Presenter"
19
+ }
20
+ }
21
+ }
22
+ },
23
+ "beats": [
24
+ {
25
+ "id": "first",
26
+ "speaker": "Presenter",
27
+ "text": "",
28
+ "duration": 2,
29
+ "image": {
30
+ "type": "image",
31
+ "source": {
32
+ "kind": "path",
33
+ "path": "../../assets/images/mulmocast_credit.png"
34
+ }
35
+ }
36
+ },
37
+ {
38
+ "speaker": "Presenter",
39
+ "text": "",
40
+ "duration": 0.5,
41
+ "image": {
42
+ "type": "beat",
43
+ "id": "first"
44
+ }
45
+ },
46
+ {
47
+ "speaker": "Presenter",
48
+ "text": "",
49
+ "duration": 0.5,
50
+ "image": {
51
+ "type": "textSlide",
52
+ "slide": {
53
+ "title": "No Audio",
54
+ "bullets": ["0.5 seconds"]
55
+ }
56
+ }
57
+ },
58
+ {
59
+ "speaker": "Presenter",
60
+ "text": "",
61
+ "duration": 0.5,
62
+ "image": {
63
+ "type": "image",
64
+ "source": {
65
+ "kind": "url",
66
+ "url": "https://raw.githubusercontent.com/receptron/mulmocast-cli/refs/heads/main/assets/images/mulmocast_credit.png"
67
+ }
68
+ }
69
+ },
70
+ {
71
+ "speaker": "Presenter",
72
+ "text": "",
73
+ "duration": 2,
74
+ "image": {
75
+ "type": "textSlide",
76
+ "slide": {
77
+ "title": "No Audio",
78
+ "bullets": ["2 seconds"]
79
+ }
80
+ }
81
+ },
82
+ {
83
+ "speaker": "Presenter",
84
+ "text": "",
85
+ "duration": 2,
86
+ "image": {
87
+ "type": "movie",
88
+ "source": {
89
+ "kind": "url",
90
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/test/pingpong.mov"
91
+ }
92
+ }
93
+ },
94
+ {
95
+ "speaker": "Presenter",
96
+ "text": "",
97
+ "duration": 2,
98
+ "image": {
99
+ "type": "textSlide",
100
+ "slide": {
101
+ "title": "Local Audio Test",
102
+ "bullets": ["Something"]
103
+ }
104
+ },
105
+ "audio": {
106
+ "type": "audio",
107
+ "source": {
108
+ "kind": "path",
109
+ "path": "../../assets/audio/local_voice.mp3"
110
+ }
111
+ }
112
+ },
113
+ {
114
+ "speaker": "Presenter",
115
+ "text": "",
116
+ "duration": 2,
117
+ "image": {
118
+ "type": "textSlide",
119
+ "slide": {
120
+ "title": "Human Evolution",
121
+ "bullets": [
122
+ "Early Primates",
123
+ "Hominids and Hominins",
124
+ "Australopithecus",
125
+ "Genus Homo Emerges",
126
+ "Homo erectus and Migration",
127
+ "Neanderthals and Other Archaic Humans",
128
+ "Homo sapiens"
129
+ ]
130
+ }
131
+ }
132
+ },
133
+ {
134
+ "speaker": "Presenter",
135
+ "text": "",
136
+ "duration": 2,
137
+ "image": {
138
+ "type": "markdown",
139
+ "markdown": [
140
+ "# Markdown Table Example",
141
+ "### Table",
142
+ "| Item | In Stock | Price |",
143
+ "| :---------------- | :------: | ----: |",
144
+ "| Python Hat | True | 23.99 |",
145
+ "| SQL Hat | True | 23.99 |",
146
+ "| Codecademy Tee | False | 19.99 |",
147
+ "| Codecademy Hoodie | False | 42.99 |",
148
+ "### Paragraph",
149
+ "This is a paragraph."
150
+ ]
151
+ }
152
+ },
153
+ {
154
+ "speaker": "Presenter",
155
+ "text": "",
156
+ "duration": 2,
157
+ "image": {
158
+ "type": "chart",
159
+ "title": "Sales and Profits (from Jan to June)",
160
+ "chartData": {
161
+ "type": "bar",
162
+ "data": {
163
+ "labels": ["January", "February", "March", "April", "May", "June"],
164
+ "datasets": [
165
+ {
166
+ "label": "Revenue ($1000s)",
167
+ "data": [120, 135, 180, 155, 170, 190],
168
+ "backgroundColor": "rgba(54, 162, 235, 0.5)",
169
+ "borderColor": "rgba(54, 162, 235, 1)",
170
+ "borderWidth": 1
171
+ },
172
+ {
173
+ "label": "Profit ($1000s)",
174
+ "data": [45, 52, 68, 53, 61, 73],
175
+ "backgroundColor": "rgba(75, 192, 192, 0.5)",
176
+ "borderColor": "rgba(75, 192, 192, 1)",
177
+ "borderWidth": 1
178
+ }
179
+ ]
180
+ },
181
+ "options": {
182
+ "responsive": true,
183
+ "animation": false
184
+ }
185
+ }
186
+ }
187
+ },
188
+ {
189
+ "speaker": "Presenter",
190
+ "text": "",
191
+ "duration": 2,
192
+ "image": {
193
+ "type": "mermaid",
194
+ "title": "Business Process Flow",
195
+ "code": {
196
+ "kind": "text",
197
+ "text": "graph LR\n A[Market Research] --> B[Product Planning]\n B --> C[Development]\n C --> D[Testing]\n D --> E[Manufacturing]\n E --> F[Marketing]\n F --> G[Sales]\n G --> H[Customer Support]\n H --> A"
198
+ }
199
+ }
200
+ },
201
+ {
202
+ "speaker": "Presenter",
203
+ "text": "",
204
+ "duration": 2,
205
+ "image": {
206
+ "type": "html_tailwind",
207
+ "html": [
208
+ "<main class=\"flex-grow\">",
209
+ " <!-- Hero Section -->",
210
+ " <section class=\"bg-blue-600 text-white py-20\">",
211
+ " <div class=\"container mx-auto px-6 text-center\">",
212
+ " <h1 class=\"text-4xl md:text-5xl font-bold mb-4\">Welcome to Mulmocast</h1>",
213
+ " <p class=\"text-lg md:text-xl mb-8\">A modern web experience powered by Tailwind CSS</p>",
214
+ " <a href=\"#features\" class=\"bg-white text-blue-600 px-6 py-3 rounded-lg font-semibold shadow hover:bg-gray-100 transition\">",
215
+ " Learn More",
216
+ " </a>",
217
+ " </div>",
218
+ " </section>",
219
+ "",
220
+ " <!-- Features Section -->",
221
+ " <section id=\"features\" class=\"py-16 bg-gray-100\">",
222
+ " <div class=\"container mx-auto px-6\">",
223
+ " <div class=\"grid grid-cols-1 md:grid-cols-3 gap-8 text-center\">",
224
+ " <div>",
225
+ " <div class=\"text-blue-600 text-4xl mb-2\">⚡</div>",
226
+ " <h3 class=\"text-xl font-semibold mb-2\">Fast</h3>",
227
+ " <p class=\"text-gray-600\">Built with performance in mind using modern tools.</p>",
228
+ " </div>",
229
+ " <div>",
230
+ " <div class=\"text-blue-600 text-4xl mb-2\">🎨</div>",
231
+ " <h3 class=\"text-xl font-semibold mb-2\">Beautiful</h3>",
232
+ " <p class=\"text-gray-600\">Styled with Tailwind CSS for clean, responsive design.</p>",
233
+ " </div>",
234
+ " <div>",
235
+ " <div class=\"text-blue-600 text-4xl mb-2\">🚀</div>",
236
+ " <h3 class=\"text-xl font-semibold mb-2\">Launch Ready</h3>",
237
+ " <p class=\"text-gray-600\">Easy to deploy and extend for your next big idea.</p>",
238
+ " </div>",
239
+ " </div>",
240
+ " </div>",
241
+ " </section>",
242
+ "</main>",
243
+ "",
244
+ "<!-- Footer -->",
245
+ "<footer class=\"bg-white text-gray-500 text-center py-6 border-t\">",
246
+ " 2025 Mulmocast.",
247
+ "</footer>"
248
+ ]
249
+ }
250
+ }
251
+ ]
252
+ }
@@ -0,0 +1,253 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1",
4
+ "credit": "closing"
5
+ },
6
+ "title": "Media Test",
7
+ "references": [
8
+ {
9
+ "url": "https://www.mulmocast.com",
10
+ "title": "Mulmocast",
11
+ "type": "article"
12
+ }
13
+ ],
14
+ "speechParams": {
15
+ "speakers": {
16
+ "Presenter": {
17
+ "voiceId": "shimmer",
18
+ "displayName": {
19
+ "en": "Presenter"
20
+ }
21
+ }
22
+ }
23
+ },
24
+ "beats": [
25
+ {
26
+ "id": "first",
27
+ "speaker": "Presenter",
28
+ "text": "",
29
+ "duration": 2,
30
+ "image": {
31
+ "type": "image",
32
+ "source": {
33
+ "kind": "path",
34
+ "path": "../../assets/images/mulmocast_credit.png"
35
+ }
36
+ }
37
+ },
38
+ {
39
+ "speaker": "Presenter",
40
+ "text": "",
41
+ "duration": 0.5,
42
+ "image": {
43
+ "type": "beat",
44
+ "id": "first"
45
+ }
46
+ },
47
+ {
48
+ "speaker": "Presenter",
49
+ "text": "",
50
+ "duration": 0.5,
51
+ "image": {
52
+ "type": "textSlide",
53
+ "slide": {
54
+ "title": "No Audio",
55
+ "bullets": ["0.5 seconds"]
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "speaker": "Presenter",
61
+ "text": "",
62
+ "duration": 0.5,
63
+ "image": {
64
+ "type": "image",
65
+ "source": {
66
+ "kind": "url",
67
+ "url": "https://raw.githubusercontent.com/receptron/mulmocast-cli/refs/heads/main/assets/images/mulmocast_credit.png"
68
+ }
69
+ }
70
+ },
71
+ {
72
+ "speaker": "Presenter",
73
+ "text": "",
74
+ "duration": 2,
75
+ "image": {
76
+ "type": "textSlide",
77
+ "slide": {
78
+ "title": "No Audio",
79
+ "bullets": ["2 seconds"]
80
+ }
81
+ }
82
+ },
83
+ {
84
+ "speaker": "Presenter",
85
+ "text": "",
86
+ "duration": 2,
87
+ "image": {
88
+ "type": "movie",
89
+ "source": {
90
+ "kind": "url",
91
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/test/pingpong.mov"
92
+ }
93
+ }
94
+ },
95
+ {
96
+ "speaker": "Presenter",
97
+ "text": "",
98
+ "duration": 2,
99
+ "image": {
100
+ "type": "textSlide",
101
+ "slide": {
102
+ "title": "Local Audio Test",
103
+ "bullets": ["Something"]
104
+ }
105
+ },
106
+ "audio": {
107
+ "type": "audio",
108
+ "source": {
109
+ "kind": "path",
110
+ "path": "../../assets/audio/local_voice.mp3"
111
+ }
112
+ }
113
+ },
114
+ {
115
+ "speaker": "Presenter",
116
+ "text": "",
117
+ "duration": 2,
118
+ "image": {
119
+ "type": "textSlide",
120
+ "slide": {
121
+ "title": "Human Evolution",
122
+ "bullets": [
123
+ "Early Primates",
124
+ "Hominids and Hominins",
125
+ "Australopithecus",
126
+ "Genus Homo Emerges",
127
+ "Homo erectus and Migration",
128
+ "Neanderthals and Other Archaic Humans",
129
+ "Homo sapiens"
130
+ ]
131
+ }
132
+ }
133
+ },
134
+ {
135
+ "speaker": "Presenter",
136
+ "text": "",
137
+ "duration": 2,
138
+ "image": {
139
+ "type": "markdown",
140
+ "markdown": [
141
+ "# Markdown Table Example",
142
+ "### Table",
143
+ "| Item | In Stock | Price |",
144
+ "| :---------------- | :------: | ----: |",
145
+ "| Python Hat | True | 23.99 |",
146
+ "| SQL Hat | True | 23.99 |",
147
+ "| Codecademy Tee | False | 19.99 |",
148
+ "| Codecademy Hoodie | False | 42.99 |",
149
+ "### Paragraph",
150
+ "This is a paragraph."
151
+ ]
152
+ }
153
+ },
154
+ {
155
+ "speaker": "Presenter",
156
+ "text": "",
157
+ "duration": 2,
158
+ "image": {
159
+ "type": "chart",
160
+ "title": "Sales and Profits (from Jan to June)",
161
+ "chartData": {
162
+ "type": "bar",
163
+ "data": {
164
+ "labels": ["January", "February", "March", "April", "May", "June"],
165
+ "datasets": [
166
+ {
167
+ "label": "Revenue ($1000s)",
168
+ "data": [120, 135, 180, 155, 170, 190],
169
+ "backgroundColor": "rgba(54, 162, 235, 0.5)",
170
+ "borderColor": "rgba(54, 162, 235, 1)",
171
+ "borderWidth": 1
172
+ },
173
+ {
174
+ "label": "Profit ($1000s)",
175
+ "data": [45, 52, 68, 53, 61, 73],
176
+ "backgroundColor": "rgba(75, 192, 192, 0.5)",
177
+ "borderColor": "rgba(75, 192, 192, 1)",
178
+ "borderWidth": 1
179
+ }
180
+ ]
181
+ },
182
+ "options": {
183
+ "responsive": true,
184
+ "animation": false
185
+ }
186
+ }
187
+ }
188
+ },
189
+ {
190
+ "speaker": "Presenter",
191
+ "text": "",
192
+ "duration": 2,
193
+ "image": {
194
+ "type": "mermaid",
195
+ "title": "Business Process Flow",
196
+ "code": {
197
+ "kind": "text",
198
+ "text": "graph LR\n A[Market Research] --> B[Product Planning]\n B --> C[Development]\n C --> D[Testing]\n D --> E[Manufacturing]\n E --> F[Marketing]\n F --> G[Sales]\n G --> H[Customer Support]\n H --> A"
199
+ }
200
+ }
201
+ },
202
+ {
203
+ "speaker": "Presenter",
204
+ "text": "",
205
+ "duration": 2,
206
+ "image": {
207
+ "type": "html_tailwind",
208
+ "html": [
209
+ "<main class=\"flex-grow\">",
210
+ " <!-- Hero Section -->",
211
+ " <section class=\"bg-blue-600 text-white py-20\">",
212
+ " <div class=\"container mx-auto px-6 text-center\">",
213
+ " <h1 class=\"text-4xl md:text-5xl font-bold mb-4\">Welcome to Mulmocast</h1>",
214
+ " <p class=\"text-lg md:text-xl mb-8\">A modern web experience powered by Tailwind CSS</p>",
215
+ " <a href=\"#features\" class=\"bg-white text-blue-600 px-6 py-3 rounded-lg font-semibold shadow hover:bg-gray-100 transition\">",
216
+ " Learn More",
217
+ " </a>",
218
+ " </div>",
219
+ " </section>",
220
+ "",
221
+ " <!-- Features Section -->",
222
+ " <section id=\"features\" class=\"py-16 bg-gray-100\">",
223
+ " <div class=\"container mx-auto px-6\">",
224
+ " <div class=\"grid grid-cols-1 md:grid-cols-3 gap-8 text-center\">",
225
+ " <div>",
226
+ " <div class=\"text-blue-600 text-4xl mb-2\">⚡</div>",
227
+ " <h3 class=\"text-xl font-semibold mb-2\">Fast</h3>",
228
+ " <p class=\"text-gray-600\">Built with performance in mind using modern tools.</p>",
229
+ " </div>",
230
+ " <div>",
231
+ " <div class=\"text-blue-600 text-4xl mb-2\">🎨</div>",
232
+ " <h3 class=\"text-xl font-semibold mb-2\">Beautiful</h3>",
233
+ " <p class=\"text-gray-600\">Styled with Tailwind CSS for clean, responsive design.</p>",
234
+ " </div>",
235
+ " <div>",
236
+ " <div class=\"text-blue-600 text-4xl mb-2\">🚀</div>",
237
+ " <h3 class=\"text-xl font-semibold mb-2\">Launch Ready</h3>",
238
+ " <p class=\"text-gray-600\">Easy to deploy and extend for your next big idea.</p>",
239
+ " </div>",
240
+ " </div>",
241
+ " </div>",
242
+ " </section>",
243
+ "</main>",
244
+ "",
245
+ "<!-- Footer -->",
246
+ "<footer class=\"bg-white text-gray-500 text-center py-6 border-t\">",
247
+ " 2025 Mulmocast.",
248
+ "</footer>"
249
+ ]
250
+ }
251
+ }
252
+ ]
253
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "$mulmocast": { "version": "1.1" },
3
+ "beats": [
4
+ {
5
+ "text": "The number 1 stands alone—independent, bold, and often lonely. In stories, the lone hero begins their journey without companions, carving their path through courage. Think of Neo in The Matrix, 'The One', chosen to awaken humanity. Or the number 1 in binary—on or off, light or dark. It reminds us that every great movement starts with a single step, a single decision. Just one person can spark a revolution or change history. As Lao Tzu said, 'The journey of a thousand miles begins with one step.'",
6
+ "image": {
7
+ "type": "markdown",
8
+ "markdown": ["# 1", "# one"]
9
+ }
10
+ },
11
+ {
12
+ "text": "Two is the number of connection. In myth, it's often the number of lovers, twins, or duels. Adam and Eve, Sun and Moon, Sherlock and Watson. It's the smallest number that introduces the concept of 'the other'. In quantum physics, entangled particles influence each other instantly, no matter the distance. In life, two minds can spark ideas one alone could never imagine. 'It takes two to tango' is more than a dance—it's a truth about collaboration and tension, the dance of opposites that moves the world forward.",
13
+ "image": {
14
+ "type": "markdown",
15
+ "markdown": ["# 2", "# two"]
16
+ }
17
+ },
18
+ {
19
+ "text": "Three is the storyteller’s favorite. Three acts, three trials, three wishes—our minds love the rhythm. In fairy tales, the youngest of three siblings often prevails, defying expectations. Christianity has the Holy Trinity. In time, we speak of past, present, and future. Philosophers speak of thesis, antithesis, and synthesis. There’s something satisfying about the triangle: it’s stable, dynamic, and complete. As the saying goes, 'Third time’s the charm.' It’s as if the universe speaks in triplets, offering clarity where one or two might falter.",
20
+ "image": {
21
+ "type": "markdown",
22
+ "markdown": ["# 3", "# three"]
23
+ }
24
+ },
25
+ {
26
+ "text": "Four is a number of structure. We see it in the four cardinal directions—north, south, east, and west—framing our understanding of space. Ancient elements often came in fours: earth, water, air, and fire. In East Asia, four can be ominous, sounding like 'death' in some languages. Yet in many traditions, four symbolizes balance. A chair stands on four legs. The year cycles through four seasons. Jung described four functions of consciousness—thinking, feeling, sensing, and intuiting. It’s a square, solid and grounding.",
27
+ "image": {
28
+ "type": "markdown",
29
+ "markdown": ["# 4", "# four"]
30
+ }
31
+ },
32
+ {
33
+ "text": "「5」は、私たちが世界に触れる方法です。片手に5本の指、片足に5本の足指を持ち、私たちは世界を探り、築き、動きます。私たちは、視覚・聴覚・嗅覚・味覚・触覚という5つの感覚を通じて人生を体験します。日本の哲学では「五大」として、地・水・火・風・空の5つの要素が存在します。西洋では、五芒星(ペンタグラム)がバランスや守護の象徴として用いられてきました。それは両手両足を広げた人の姿にも見えます。\n「5」という数字は、私たち人間の経験そのもの――好奇心、感覚、そして意味を求めて生きる姿を映し出しています。",
34
+ "image": {
35
+ "type": "markdown",
36
+ "markdown": ["# 5", "# five"]
37
+ }
38
+ },
39
+ {
40
+ "text": "Six is often seen as a number of harmony and order. In geometry, the hexagon is one of the most efficient and natural forms—think honeycombs or snowflakes. In Christianity, God created the world in six days. In music, a sixth interval is sweet and stable. In chemistry, carbon has six protons—this one element is the foundation of all life. In dice, six is the highest you can roll, often bringing fortune. And in ancient numerology, six represented responsibility and care—it's the number of the caregiver and the homebuilder.",
41
+ "image": {
42
+ "type": "markdown",
43
+ "markdown": ["# 6", "# six"]
44
+ }
45
+ },
46
+ {
47
+ "text": "Seven is a number shrouded in mystery. There are seven colors in the rainbow, seven days in a week, seven continents, and seven wonders of the ancient world. In literature, it's often a sacred or magical number—Harry Potter had seven horcruxes, Snow White had seven dwarves. In many religions, seven is divine: the seventh heaven, the seven chakras, the seven deadly sins. Mathematically, it’s a prime—indivisible, unique. It’s said that humans can best remember seven things at once. Something about it just feels… complete.",
48
+ "image": {
49
+ "type": "markdown",
50
+ "markdown": ["# 7", "# seven"]
51
+ }
52
+ },
53
+ {
54
+ "text": "Eight is a number of abundance and eternity. Turned on its side, it becomes the infinity symbol. In Chinese culture, 8 is extremely lucky, sounding like wealth or fortune. The Olympics in Beijing began on 8/8/08 at 8:08:08 PM for this reason. In Buddhism, the Eightfold Path outlines the steps toward enlightenment. Spiders have eight legs—symbols of patience and precision. Even in music, an octave spans eight notes. It’s the number of cycles, rebirths, and limitless potential—forever looping like a serpent eating its tail.",
55
+ "image": {
56
+ "type": "markdown",
57
+ "markdown": ["# 8", "# eight"]
58
+ }
59
+ },
60
+ {
61
+ "text": "Nine signals the end of a cycle. In pregnancy, it marks the final month before birth. In Norse mythology, there are nine worlds. In Dante’s Inferno, nine circles define Hell. Cats are said to have nine lives—resilient and mysterious. In Japanese culture, the number can be unlucky, associated with suffering. But it’s also powerful: the last single-digit number, composed of three threes. In mathematics, multiplying nine always returns to itself—18 becomes 1+8=9. It's the threshold, the peak before transformation begins again.",
62
+ "image": {
63
+ "type": "markdown",
64
+ "markdown": ["# 9", "# nine"]
65
+ }
66
+ }
67
+ ]
68
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "$mulmocast": { "version": "1.1" },
3
+ "canvasSize": {
4
+ "width": 720,
5
+ "height": 1280
6
+ },
7
+ "beats": [
8
+ {
9
+ "text": "The number 1 stands alone—independent, bold, and often lonely. In stories, the lone hero begins their journey without companions, carving their path through courage. Think of Neo in The Matrix, 'The One', chosen to awaken humanity. Or the number 1 in binary—on or off, light or dark. It reminds us that every great movement starts with a single step, a single decision. Just one person can spark a revolution or change history. As Lao Tzu said, 'The journey of a thousand miles begins with one step.'",
10
+ "image": {
11
+ "type": "markdown",
12
+ "markdown": ["# 1", "# one"]
13
+ }
14
+ },
15
+ {
16
+ "text": "Two is the number of connection. In myth, it's often the number of lovers, twins, or duels. Adam and Eve, Sun and Moon, Sherlock and Watson. It's the smallest number that introduces the concept of 'the other'. In quantum physics, entangled particles influence each other instantly, no matter the distance. In life, two minds can spark ideas one alone could never imagine. 'It takes two to tango' is more than a dance—it's a truth about collaboration and tension, the dance of opposites that moves the world forward.",
17
+ "image": {
18
+ "type": "markdown",
19
+ "markdown": ["# 2", "# two"]
20
+ }
21
+ },
22
+ {
23
+ "text": "Three is the storyteller’s favorite. Three acts, three trials, three wishes—our minds love the rhythm. In fairy tales, the youngest of three siblings often prevails, defying expectations. Christianity has the Holy Trinity. In time, we speak of past, present, and future. Philosophers speak of thesis, antithesis, and synthesis. There’s something satisfying about the triangle: it’s stable, dynamic, and complete. As the saying goes, 'Third time’s the charm.' It’s as if the universe speaks in triplets, offering clarity where one or two might falter.",
24
+ "image": {
25
+ "type": "markdown",
26
+ "markdown": ["# 3", "# three"]
27
+ }
28
+ },
29
+ {
30
+ "text": "Four is a number of structure. We see it in the four cardinal directions—north, south, east, and west—framing our understanding of space. Ancient elements often came in fours: earth, water, air, and fire. In East Asia, four can be ominous, sounding like 'death' in some languages. Yet in many traditions, four symbolizes balance. A chair stands on four legs. The year cycles through four seasons. Jung described four functions of consciousness—thinking, feeling, sensing, and intuiting. It’s a square, solid and grounding.",
31
+ "image": {
32
+ "type": "markdown",
33
+ "markdown": ["# 4", "# four"]
34
+ }
35
+ },
36
+ {
37
+ "text": "Five is how we touch the world. With five fingers on each hand and five toes on each foot, we explore, build, and move. We experience life through five senses: sight, hearing, smell, taste, and touch. In Japanese philosophy, 'Godai' outlines five elements: earth, water, fire, wind, and void. In the West, the pentagram has been used as a symbol of balance and protection. It’s also a human shape—arms and legs spread wide. The number five reflects our human experience: curious, sensory, and striving for meaning.",
38
+ "image": {
39
+ "type": "markdown",
40
+ "markdown": ["# 5", "# five"]
41
+ }
42
+ },
43
+ {
44
+ "text": "Six is often seen as a number of harmony and order. In geometry, the hexagon is one of the most efficient and natural forms—think honeycombs or snowflakes. In Christianity, God created the world in six days. In music, a sixth interval is sweet and stable. In chemistry, carbon has six protons—this one element is the foundation of all life. In dice, six is the highest you can roll, often bringing fortune. And in ancient numerology, six represented responsibility and care—it's the number of the caregiver and the homebuilder.",
45
+ "image": {
46
+ "type": "markdown",
47
+ "markdown": ["# 6", "# six"]
48
+ }
49
+ },
50
+ {
51
+ "text": "Seven is a number shrouded in mystery. There are seven colors in the rainbow, seven days in a week, seven continents, and seven wonders of the ancient world. In literature, it's often a sacred or magical number—Harry Potter had seven horcruxes, Snow White had seven dwarves. In many religions, seven is divine: the seventh heaven, the seven chakras, the seven deadly sins. Mathematically, it’s a prime—indivisible, unique. It’s said that humans can best remember seven things at once. Something about it just feels… complete.",
52
+ "image": {
53
+ "type": "markdown",
54
+ "markdown": ["# 7", "# seven"]
55
+ }
56
+ },
57
+ {
58
+ "text": "Eight is a number of abundance and eternity. Turned on its side, it becomes the infinity symbol. In Chinese culture, 8 is extremely lucky, sounding like wealth or fortune. The Olympics in Beijing began on 8/8/08 at 8:08:08 PM for this reason. In Buddhism, the Eightfold Path outlines the steps toward enlightenment. Spiders have eight legs—symbols of patience and precision. Even in music, an octave spans eight notes. It’s the number of cycles, rebirths, and limitless potential—forever looping like a serpent eating its tail.",
59
+ "image": {
60
+ "type": "markdown",
61
+ "markdown": ["# 8", "# eight"]
62
+ }
63
+ },
64
+ {
65
+ "text": "Nine signals the end of a cycle. In pregnancy, it marks the final month before birth. In Norse mythology, there are nine worlds. In Dante’s Inferno, nine circles define Hell. Cats are said to have nine lives—resilient and mysterious. In Japanese culture, the number can be unlucky, associated with suffering. But it’s also powerful: the last single-digit number, composed of three threes. In mathematics, multiplying nine always returns to itself—18 becomes 1+8=9. It's the threshold, the peak before transformation begins again.",
66
+ "image": {
67
+ "type": "markdown",
68
+ "markdown": ["# 9", "# nine"]
69
+ }
70
+ }
71
+ ]
72
+ }