Moeeldouma commited on
Commit
cffd653
Β·
verified Β·
1 Parent(s): 70d2997

Restore Space README frontmatter (fix CONFIG_ERROR)

Browse files
Files changed (1) hide show
  1. README.md +24 -172
README.md CHANGED
@@ -1,182 +1,34 @@
1
- # Eldouma Graphics
2
-
3
- **Turn a script into a finished motion-graphics video β€” free, open-source, and AI-powered.**
4
-
5
- [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](./LICENSE)
6
- [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](./CONTRIBUTING.md)
7
-
8
- Give it a script β€” in **English or Arabic** β€” and Eldouma Graphics turns it into a broadcast-quality
9
- motion-graphics video. A built-in **AI agent** reads what you want in plain language and picks, fills,
10
- and even generates animated scenes for you. Under the hood is a large library of animated **scene
11
- templates** (titles, stats, charts, lower-thirds, logo stings, and a bold full-screen **"Impact"**
12
- style), a **timeline editor** for arranging and fine-tuning, and **MP4 export**.
13
-
14
- It runs entirely on your machine as a Vite + React single-page app plus a small Node API server.
15
-
16
- > **Free by default.** Run without any of the optional keys and there is **no login, no credits, no
17
- > billing** β€” just the editor. You only need **one AI key** for the agent + transcription to light up.
18
-
19
- ---
20
-
21
- ## ✨ Quick start (let Claude install it for you)
22
-
23
- The easiest way in: hand this repo to **Claude** (in [Claude Code](https://claude.com/claude-code) or on
24
- [claude.ai](https://claude.ai)) and let it do the setup. Copy the repo URL, paste the prompt below, and
25
- Claude clones it, installs the dependencies, wires up your `.env`, starts the dev server, and hands you
26
- back a local URL to open.
27
-
28
- **Copy-paste this to Claude:**
29
-
30
- > Clone https://github.com/MoeEldouma/eldouma-graphics, follow its README to install it, create the
31
- > `.env` from `.env.example` with my AI key, run `npm run dev`, and give me the local URL to open.
32
-
33
- Have your one AI key ready (see [Connect your own AI](#-connect-your-own-ai)) and Claude will drop it in
34
- for you.
35
-
36
  ---
37
-
38
- ## πŸ›  Manual install
39
-
40
- Prerequisites: **Node.js >= 20**.
41
-
42
- ```bash
43
- # 1. Clone
44
- git clone https://github.com/MoeEldouma/eldouma-graphics
45
- cd eldouma-graphics
46
-
47
- # 2. Create your env file and add ONE AI key
48
- cp .env.example .env
49
- # then open .env and set KIMI_API_KEY=... (see the section below for where to get a key)
50
-
51
- # 3. Install
52
- npm install
53
-
54
- # 4. Run (starts the web app + the API together)
55
- npm run dev
56
- ```
57
-
58
- Then open **http://localhost:5173**.
59
-
60
- `npm run dev` uses `concurrently` to start the **Vite web app on http://localhost:5173** and the **Node
61
- API server** (default port `4600`) side by side. Server code does not hot-reload β€” restart `npm run dev`
62
- after editing `.env` or anything under `server/`.
63
-
64
- Get a free key to paste into `.env`:
65
-
66
- - **Kimi / Moonshot (recommended):** https://platform.moonshot.ai β€” set `KIMI_API_KEY`.
67
- - Or **DeepInfra:** https://deepinfra.com β€” set `DEEPINFRA_API_KEY`.
68
- - Or **Groq** (speech only): https://console.groq.com β€” set `GROQ_API_KEY`.
69
-
70
- One key is enough to start. To build for production instead: `npm run build`, then `npm start`.
71
-
72
  ---
73
 
74
- ## πŸ”Œ Connect your own AI
75
 
76
- Eldouma Graphics is **provider-agnostic** β€” bring whichever key you have. Every provider is
77
- OpenAI-compatible, and a model only appears in the app when its key is present, so the in-app **model
78
- switcher** lets you pick freely.
79
 
80
- | Provider | Env var | What it powers | Get a key |
81
- | --- | --- | --- | --- |
82
- | **Kimi (Moonshot)** | `KIMI_API_KEY` | The **primary LLM** β€” the agent, scene generation, and script writing. No per-token cap. | [platform.moonshot.ai](https://platform.moonshot.ai) |
83
- | **DeepInfra** | `DEEPINFRA_API_KEY` | Cheap pay-per-token open models (Llama / Qwen) for the agent + scene generation, and Whisper **speech-to-text**. | [deepinfra.com](https://deepinfra.com) |
84
- | **Groq** | `GROQ_API_KEY` | Whisper **speech-to-text** (word-level timestamps) and **text-to-speech** narration. | [console.groq.com](https://console.groq.com) |
85
 
86
- **You only need one to start.** With just `KIMI_API_KEY`, the agent, scene generation, and script
87
- writing all work. Add `DEEPINFRA_API_KEY` or `GROQ_API_KEY` when you want transcription/narration or the
88
- cheaper open models. Remove a key and its models simply disappear from the switcher β€” no code change.
89
-
90
- Default model choices: `Kimi Standard` for reliable tool-calling day to day, and a `Reasoning` Kimi model
91
- for the deeper agentic scene-building. Switch anytime from the model picker in the app.
92
-
93
- ---
94
-
95
- ## 🎬 Generate new motion graphics with AI
96
-
97
- You are not limited to filling in the built-in templates β€” you can **describe a scene in plain language**
98
- and let AI build it:
99
-
100
- 1. Open the **AI panel** in the editor.
101
- 2. Describe what you want β€” a topic, a style, an accent color, the text, the mood ("a bold full-screen
102
- stat that slams a big number onto an orange slab", "a glass lower-third for the speaker's intro").
103
- 3. The agent picks the closest scene template, fills it with your copy, sets theme/accent/font, and adds
104
- it to your timeline. For overlays it can **anchor** a graphic to the exact line in your transcript so
105
- it lands on the right moment.
106
-
107
- You can drive this with the built-in agent, or use **Claude / any model** the same way. Prefer working in
108
- your own words and let the agent translate them into scenes; then fine-tune by dragging, resizing, and
109
- tweaking in the inspector.
110
-
111
- Want a brand-new reusable look? **Contributors add scene templates to the library** so everyone can use
112
- them β€” see [Contributing](#-contributing). The single biggest way to grow Eldouma Graphics is more
113
- scenes.
114
-
115
- ---
116
-
117
- ## πŸ€– Agentic AI workflow
118
-
119
- Eldouma Graphics is, at its core, a **reference implementation of an agentic AI workflow** β€” not a single
120
- prompt-in / clip-out call, but an AI **agent that plans, acts through tools, observes the result, and
121
- iterates** until a whole video is built. If you want to see a real, end-to-end agentic system you can read
122
- and run, this is one.
123
-
124
- **The loop**
125
-
126
- 1. **Perceive** β€” you give it natural language (a sentence, a full script, or a chat instruction), optionally with audio / video / an image.
127
- 2. **Plan** β€” it breaks the input into beats and, for each beat, decides the *content shape* (a number β†’ a stat scene, a list β†’ chips, a process β†’ steps, a comparison β†’ compare, an AI/data concept β†’ a concept scene) and picks a matching scene from a **279-template library**.
128
- 3. **Act β€” tool calls** β€” it calls tools in a loop, each mutating the shared timeline state:
129
- - `add_motion_scene` β€” generate, **art-direct** (theme / accent / font / background) and **place** one scene (anchored to a transcript line or an explicit time)
130
- - `fill_scene` / `edit` β€” write or rewrite a scene's copy
131
- - `set_section_status` β€” drive the visible plan checklist (active β†’ done)
132
- - `translate`, `analyze` β€” localize (EN / Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ©) or shot-detect footage
133
- 4. **Observe & iterate** β€” it reads the timeline back, marks each planned section done, and keeps going turn-by-turn until the video is built β€” then **refines on further plain-language asks** (create β†’ edit β†’ manage).
134
-
135
- **Why it's a good agentic reference**
136
-
137
- - **Tool-calling over a shared state**, not one-shot generation β€” the hallmark of an agent.
138
- - **Model-agnostic** β€” the loop is provider-agnostic; connect Kimi / Claude / GPT / Gemini / DeepInfra or any OpenAI-compatible endpoint (see [Connect your own AI](#-connect-your-own-ai)). Swap the brain, keep the workflow.
139
- - **A visible trace** β€” the AI panel shows the agent's live plan (each scene lights up *active β†’ done*) and a "what it's doing now" line, so the autonomy is legible, not a black box.
140
- - **Human-in-the-loop** β€” every step is inspectable and editable; the agent proposes, you dispose.
141
-
142
- **Read the code**
143
-
144
- | Piece | Where |
145
- |---|---|
146
- | The agent loop, system prompt & tool schema | [`src/lib/agent.ts`](src/lib/agent.ts) |
147
- | The streaming tool-calling endpoint | [`server/index.mjs`](server/index.mjs) β†’ `/api/chat/stream` |
148
- | The tool "menu" β€” 279 scenes the agent can call, with prop schemas + a selection playbook | [`src/remotion/mg/catalog.mjs`](src/remotion/mg/catalog.mjs) |
149
- | The provider-agnostic model client (bring your own key) | [`packages/ai/client.mjs`](packages/ai/client.mjs) |
150
- | The visible agent trace (plan checklist + live status) | [`src/components/AIPanel.tsx`](src/components/AIPanel.tsx) |
151
-
152
- > **See it with zero setup:** on the live demo, click **Open a sample** for a bold *Impact*-style showcase this pipeline produces β€” then connect a key and watch the agent build a new one from a single sentence.
153
-
154
- ---
155
-
156
- ## 🀝 Contributing
157
-
158
- PRs are very welcome under AGPL-3.0. The **highest-leverage contribution is a new scene template** β€” a
159
- new animated look immediately becomes available to the picker and to the AI agent for everyone.
160
-
161
- See **[CONTRIBUTING.md](./CONTRIBUTING.md)** for the dev setup, where scenes live, the shape of a scene,
162
- and the PR flow.
163
-
164
- ---
165
-
166
- ## πŸ“œ License
167
-
168
- **AGPL-3.0** β€” free forever. You can use, study, modify, and share it. The one rule that matters: if you
169
- **modify or host** Eldouma Graphics (including as a network service), you must make your source available
170
- under the same license. Full text in **[LICENSE](./LICENSE)**.
171
-
172
- ---
173
 
174
- ## Credits
 
 
 
175
 
176
- Eldouma Graphics ships with freely-licensed assets. Thank you to their creators:
 
177
 
178
- - **Fonts** β€” bundled under the SIL Open Font License 1.1. See [`public/fonts/NOTICES.md`](./public/fonts/NOTICES.md).
179
- - **Music** β€” original, procedurally-synthesized tracks (effectively CC0). See [`public/music/CREDITS.md`](./public/music/CREDITS.md).
180
- - **Sound effects** β€” original designed sound set (effectively CC0). See [`public/sfx/CREDITS.md`](./public/sfx/CREDITS.md).
181
 
182
- Built with [Remotion](https://remotion.dev), React, and Vite.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: Eldouma Graphics
3
+ emoji: 🎬
4
+ colorFrom: yellow
5
+ colorTo: purple
6
+ sdk: docker
7
+ app_port: 7860
8
+ pinned: false
9
+ license: agpl-3.0
10
+ short_description: Free AI motion-graphics studio (bring your own AI key)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  ---
12
 
13
+ # 🎬 Eldouma Graphics β€” live demo
14
 
15
+ A **free, open-source AI motion-graphics studio**: describe a video in plain words and an AI agent
16
+ builds it scene-by-scene from a large library of animated templates (including a bold "Impact" style),
17
+ in **English or Arabic**, then exports it to MP4.
18
 
19
+ ## ▢️ How to use this demo
 
 
 
 
20
 
21
+ This is a **bring-your-own-key** sandbox β€” it costs the host nothing, and your key never leaves your browser:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
+ 1. Click **Connect AI** (top bar).
24
+ 2. Paste your own API key β€” [Kimi / Moonshot](https://platform.moonshot.ai) (recommended),
25
+ DeepInfra, Groq, or any OpenAI-compatible endpoint.
26
+ 3. Describe a video and start generating. Projects here are **temporary** and reset when the Space restarts.
27
 
28
+ > πŸ”’ Your key is stored only in your browser (localStorage) and sent as a request header β€” it is
29
+ > never saved on the server or in logs. Heavy 4K exports may be slow on the free CPU tier.
30
 
31
+ ## 🏠 Run it yourself (free, forever)
 
 
32
 
33
+ Full source + install guide: **https://github.com/MoeEldouma/eldouma-graphics** β€” licensed **AGPL-3.0**.
34
+ Clone it, add one AI key, `npm install`, `npm run dev`, done. PRs (especially new scene templates) welcome!