← Search

Persian Motion Director
Video / Motion design 📌 Pinned version: commit 5499640
⚙ Needs: Before you start: read this whole install prompt…

Persian Motion Director

Direct professional motion design with correct Persian/Farsi and right-to-left typography, in Remotion or plain web code: an anti-slideshow method (one camera, objects that carry across scenes,...

At a glance
What
Direct professional motion design with correct Persian/Farsi and right-to-left typography, in Remotion or plain web code: an anti-slideshow method (one camera, objects that carry across scenes,...
Cost
Free
Needs
Before you start: read this whole install prompt, tell me in a few lines what this skill does and what installing it involves, and wait for my go-ahead before you do anything else.
Install
Copy the installer prompt below into your Muse — your agent does the rest.

Version:

⌁

Install

Copy the install package below, then paste it into Muse📌 Pinned version: commit 5499640
Wanna be extra careful?

The install prompt below already includes the vetting steps: your agent follows the community checklist before installing anything with executable code. Want more?

How to check a build before installing →

🔒 Security and provenance
📌 Pinned version: commit 5499640 · 2026-10-19
Skill Harbor never reviews the code of a listed skill. These are dated facts about the install prompt and our install test, not a safety certification. Review a skill yourself before you install it. How we verify

Before you start: read this whole install prompt, tell me in a few lines what this skill does and what installing it involves, and wait for my go-ahead before you do anything else. Prerequisites: none for the install itself: no account, no API key, no paid service, and nothing else to install first. The install is a plain copy of the repository folder; none of its code is run during installation. Using the skill afterwards has its own optional tool needs, disclosed in step 2 below: Node.js and npm for the Remotion example project (its dependencies are installed with npm install, at use time only, inside your own project copy), and Python packages for two helper scripts (uharfbuzz and fonttools for scripts/shape_persian.py, numpy for assets/music/compose_shur_pulse.py). None of those are installed during this install. Install "persian-motion-director" for me. It is a motion-design directing skill for pieces that contain Persian/Farsi or other Arabic-script, right-to-left text: an anti-slideshow method (one camera, objects that carry across scenes, music first and cuts locked to the beat), eight ready techniques with live sketches, HarfBuzz tooling for per-letter and per-dot Persian animation, kashida stretching instead of letter-spacing, and a Persian correctness checklist and linter. Repository: https://github.com/atmirrr/persian-motion-director (the skill is the whole repository folder at the pinned commit: SKILL.md at the root, plus references/, scripts/ and assets/) Pinned version: install the code at commit 5499640d2dfe5bedd73a8d3f1529847707be7e20 exactly. Do not substitute a newer version. If this commit is unreachable, stop and tell me. 1. Clone https://github.com/atmirrr/persian-motion-director into a temporary folder, check out commit 5499640d2dfe5bedd73a8d3f1529847707be7e20, and copy the whole repository folder from that checkout (excluding the .git folder). Then compare every file in the folder with the fingerprints recorded for this listing on 2026-10-19: [FINGERPRINTS] - .gitignore: SHA-256 6fa8690a2b7fac09aed650d505d5eb2fb74a68f980b8bbcf9fc73b624c30fba6 - LICENSE: SHA-256 05178fffefdde59fdf06409e45fa7ba8d32429a1c6f37a1a2a0d0d133fcb00b5 - README.md: SHA-256 0a6c76c9587db201329f4bc1836f7581782ba71c8197fcc694a5389c0c3adbae - SKILL.md: SHA-256 80f5ef8d0bb2c67fd3b3880435a5e4bfd1332be781c02d5256e67808b1a73782 - assets/music/compose_shur_pulse.py: SHA-256 60378f57d4bdaeb084efbeeddefabc7c7e0f516930d1886223954c294bfb1154 - assets/remotion/package.json: SHA-256 f185e2b4b8680facee30219821d7dbda91b17ca62f0650b513173457bba2239f - assets/remotion/public/fonts/OFL.txt: SHA-256 17e355067c8284f47743a1ee3b1ef7ff684ff0601eda357f9353b10b3016ab31 - assets/remotion/public/fonts/Vazirmatn-VF.woff2: SHA-256 4e3fa217d38fdafc1fea4414ceb58ca5e662cf0ab5fa735a8c8c20e8b42cad92 - assets/remotion/public/music/beats.json: SHA-256 6b165c62964e64d1609714a1ab5c3e57ccdd3b0effa33ec94435398ffaa8d9af - assets/remotion/public/music/shur-pulse.mp3: SHA-256 9fcc923b0dae4ab0219ca327e7506e6855e420848f94f8968f5999cf357bea59 - assets/remotion/public/music/whooshes.mp3: SHA-256 42c2104e663de2cbf261128eb30b4003db720edefcde5d5556b19c002ebec64e - assets/remotion/remotion.config.ts: SHA-256 b1fc04c9d06adec7fbf57d2e77ddd76e1f80089f1e42d7f3429d6d646c8370f8 - assets/remotion/render-clips.mjs: SHA-256 da1f09269691c07108866dffd2cf0730fa341b565f57479f6686557565a27741 - assets/remotion/render-stills.mjs: SHA-256 a8202b26cc4870f3d993ace7bbf0ee1881bae4248cc443b08971883e063b338b - assets/remotion/src/Clip.tsx: SHA-256 3c480a937662bb018ca2ef3e3b8a2e9b1e0fd96206190a532aeb9bcb82810f13 - assets/remotion/src/Root.tsx: SHA-256 b1d7d1521342ff96db48c67e48b2651f0cdb70d1b9adfae99dd20d37f1df8349 - assets/remotion/src/SketchPlayer.tsx: SHA-256 aa11b4576a944a6bb28e4a88fbd90b76286bc9d4dcf1ee8db07a7549599fea3d - assets/remotion/src/fonts.ts: SHA-256 29ed16a31da072fad99bf31906442fcf44e1b65733f4accd08ad2f8152b13008 - assets/remotion/src/index.ts: SHA-256 5462d3268136731ce43bfd7c5072ea1ba48b51fec94fa30076f5044f4b39e4a2 - assets/remotion/src/intro/Intro.tsx: SHA-256 9bdf8384410aa494ad4c57cda3abd7ba97563612c8f3effa4e0e65b8f86167ee - assets/remotion/src/intro/TitleOutline.tsx: SHA-256 be30f303ef0e8dc85ba026f3dda3e74586d2ea5ecb8fc1a6056175e86b53190e - assets/remotion/src/intro/glyphs-intro.js: SHA-256 057feda3d8db6b2d9621d1fd4f59c69e981aa77fe41902f7e91461f7070a8923 - assets/remotion/src/intro/kit.tsx: SHA-256 f7cc44f5b92722aa244d3d8be0de8c7c17bd942a874fb4e40b78584bb162067a - assets/remotion/src/intro/lines.tsv: SHA-256 5956f471937d33ada001adb9d8aea42a5a63a9c46293926f6e90a0b6d2e5af6f - assets/remotion/tsconfig.json: SHA-256 f3ff4950cb65149d7df8f1ac1a6ccdd3a9d45fd1b0f266acb5b3d10d2cda3296 - assets/sketches/engine.js: SHA-256 46287d9e297fab750e0d656c55fd7a36270ac0f8de1691f8954decefb8a619af - assets/sketches/fonts/OFL.txt: SHA-256 17e355067c8284f47743a1ee3b1ef7ff684ff0601eda357f9353b10b3016ab31 - assets/sketches/fonts/Vazirmatn-VF.ttf: SHA-256 696249a2c74b39ffdef55de4df2809c5b639d3ff80d618d8160a095d2fd49dca - assets/sketches/fonts/Vazirmatn-VF.woff2: SHA-256 4e3fa217d38fdafc1fea4414ceb58ca5e662cf0ab5fa735a8c8c20e8b42cad92 - assets/sketches/gallery.html: SHA-256 39f9e8120ed1d4c352b33ae930b8d902f50e4fc30da3566ed989a6d1c5a77498 - assets/sketches/gallery.js: SHA-256 0b33f57a992dddd5321a2da73056dac892bce932011dc5f35e6fa34c5c5cd0b2 - assets/sketches/glyphs.js: SHA-256 1c9724e7eb8de8ab1d8b5868ccda1e5375426741f7cf3ca0fe1a849935a7e139 - assets/sketches/lines.tsv: SHA-256 9d2ca0729fe6f3bcc9e5d803ae3357ba45aeb56ac437db8ae397a829383b6ba7 - assets/sketches/sketches.css: SHA-256 ba4755b4f6f5a9bbe971a3db06b1c8ec4f298cf75d60ce0d673f4e8b277c02e1 - assets/sketches/sketches.js: SHA-256 d1984953ca1012428a6c98cf1dba53ec5ea7a9f3e54e738d1e226f9f73eba153 - media/01-oner.gif: SHA-256 87e1df7b90898507387f50dd66756463f2c86bce3cd966c74b049bb344ac39b0 - media/02-match.gif: SHA-256 fa9e2992995830608402f086c8d374a06abd6d1b2ff0a2f058b2c8dd9684b262 - media/03-ui.gif: SHA-256 8364a304e7f9b6602f57d482f732f974763e50a8eb6cd98fa8bc2f0f30b9ef0f - media/04-beat.gif: SHA-256 ff5bd8252d9fe26ab2467ddabcbf4b0718cb6fe3c9c166f23d45df0274e126ce - media/05-boil.gif: SHA-256 d7ea2e62dbb5d983d9d7d6125f3dd435e3e9e3ad1426dbbd8a60ec434069c232 - media/06-cutout.gif: SHA-256 969e15f5dca70bb7107805fedb34a88ec71abaad9d5a631391c361e29d762a33 - media/07-nuqta.gif: SHA-256 290b007a4bf0f4ce6e63fa77f2d510776b6c30677dab8d3650a4b23cd7ca55ba - media/08-kashida.gif: SHA-256 69cf01894a5ea4ade2d925b4ddde51a19314024377b006ec7ef035bd2d5a98f9 - references/anti-slideshow.md: SHA-256 f36307fa6780e739ac0878cf5fb98fe27558c013e884b9eb4d443ac634aaa53a - references/persian-copy.md: SHA-256 faf2fb18df8c63479ba1dce2b4873e96b9a0705f703dca227128c4c30a7b1792 - references/persian-typography.md: SHA-256 41d283cd923d48a830413f2a50620d1f6c4866eb5bf92058d2dd248e20ac8212 - references/sources.md: SHA-256 40a53793174f19a948d8f0b0645a42999d7dbb2aa4f7a80dac59a97937a763e1 - references/techniques/01-one-camera.md: SHA-256 6e9d92398bd96fd560f446c5119d435ea553365e2426ecea2051a0f013b07dd5 - references/techniques/02-one-shape.md: SHA-256 9a1458bf932d39935e69bc2ef4b3e26700ea9cf17c165861070c31cb196271d5 - references/techniques/03-real-ui.md: SHA-256 cf60978effe9f8836fd1138694cf24807738f168fdb3be842b54e8e129d3e319 - references/techniques/04-beat-cut.md: SHA-256 3bee6645a1cca1346432e4c8ab5ba985383865dd7b8bd68f1406becaa986f93c - references/techniques/05-line-boil.md: SHA-256 c1222a0d677e2c7db1403c0488dde5f9443e8d7e3dca5667522e40987fcc897e - references/techniques/06-paper-cutout.md: SHA-256 7943c340ee7861ddc9d18d9b8e2a7155d286a25412bfcd4d158dee53dc641645 - references/techniques/07-nuqta-dots.md: SHA-256 dc87d7c5c15cb5b60b70f72021605e2f97c5368192d95d639b5c3b2330ab3c7a - references/techniques/08-kashida.md: SHA-256 a2d200c49afee38105146e09402f14ac311a7a90d283303577c05cf1e0c1fc9b - references/workflow.md: SHA-256 0618286e0fb2a15e710b6d52ab20a7ed74adfe21c0dc47b6afdde5d3927d59b3 - scripts/lint_persian.py: SHA-256 ca150f668dd606e2781b554cb01849da58b1bbf717b7f66d30a7433169c57e43 - scripts/package.json: SHA-256 3ca9d4afd21425087cf31893b8f9f63c81b0b8408db5e343ca76e5f8aa26ab9a - scripts/shape_persian.py: SHA-256 6bc6d67126ae092e70b0cf3b4d895507758a3ce1f1940c4118726cffe55ffed8 - scripts/split_fa.js: SHA-256 ac113e1502a9b0874384b591955202cfcb82126c7d9205fe525309f4807264f4 If a file does not match, it changed since the listing was prepared: do not install it yet, tell me what you found and let me decide. 2. Read SKILL.md in full, and skim the rest of the skill (references/, scripts/, assets/) enough to tell me in plain words: what the skill does when used, which services it connects to, whether it reads or sends any personal information or keys, and anything that seems unusual. Stop on any red flag and tell me before going further. Confirm these points from the files: - The skill's functional perimeter is 49 files: SKILL.md at the root (9,380 bytes), 13 files under references/ (the workflow, the anti-slideshow and Persian typography/copy guides, the sources, and one file for each of the eight techniques), 4 files under scripts/ (lint_persian.py, shape_persian.py, split_fa.js, package.json), and 31 files under assets/ (the sketches engine and gallery, the Remotion example project, the fonts, the shipped music and its Python composer). The clone also copies 11 further files that are not part of the skill's function: README.md, LICENSE, .gitignore and the eight demo GIFs under media/ that the README displays. - There IS code in this skill, and none of it runs during installation: the scripts are local text tools (lint_persian.py is pure Python standard library and only checks Persian copy and code; shape_persian.py shapes Persian with HarfBuzz locally and writes SVG/JSON outlines; split_fa.js splits Persian words locally; compose_shur_pulse.py generates a WAV track and a beats.json locally with numpy), the sketches are plain JavaScript that draw in a browser page or in Remotion, and the Remotion render scripts (render-clips.mjs, render-stills.mjs) bundle and render MP4/PNG files locally. The install step is a copy only: do not run npm, npx, pip, python or node as part of this install. - Nothing is sent anywhere during installation itself; the only download at install time is the repository from GitHub at the pinned commit. No file names an account, an API key, a telemetry service or a remote API, and no code in the repository makes a network call (no fetch, no requests, no webhook). - At use time, everything runs locally on material I provide, with these downloads disclosed before they happen, and only when I choose the route that needs them: running the Remotion examples means npm install inside my copy of assets/remotion/ (package.json pins remotion and @remotion/cli, @remotion/bundler and @remotion/renderer 4.0.530, react and react-dom 19.1.1, with typescript and @types/react as dev dependencies), which downloads those packages from the npm registry on first use, and npx remotion may be used to open the studio or render; scripts/shape_persian.py needs pip install uharfbuzz fonttools (from PyPI) and assets/music/compose_shur_pulse.py needs numpy; viewing the sketches means serving assets/sketches/ with a local static server (for example python3 -m http.server) and opening the gallery on localhost, which is a local server, not an outbound send. The references cite sources as ordinary links (x.com posts, w3.org, unicode.org, chromestatus.com, remotion.dev, and the SIL font licence at scripts.sil.org): nothing opens them unless I choose to. - The Vazirmatn font files under assets/ are licensed separately under the SIL Open Font License 1.1 (OFL.txt in each fonts folder); the rest of the code is MIT. The shipped MP3 music under assets/remotion/public/music/ is generated by assets/music/compose_shur_pulse.py and is stated free to use. - The scope is directing and building motion pieces (promo and launch films, kinetic typography, animated explainers, social clips, title sequences) whose text is Persian/Farsi or RTL, and fixing pieces that look like a slideshow or whose Persian looks broken. The director's loop in SKILL.md is: read the brief, show 6-10 technique directions and let me pick before building, lock the music and its bar map first, write the shot list on the beat grid, render style frames for my yes, build in Remotion or plain web code, then run scripts/lint_persian.py on all copy and review stills before rendering. 3. When I say "yes, install", install it as a skill: copy the whole repository folder (without .git) into the agent's skills directory, in a folder named "persian-motion-director", keeping its full structure (SKILL.md, references/, scripts/, assets/, and the other copied files). The upstream route, a plain git clone of https://github.com/atmirrr/persian-motion-director into ~/.claude/skills/persian-motion-director, installs the same folder; either route is fine as long as the checkout is at the pinned commit and every file matches its fingerprint. 4. Verify with no network calls: frontmatter valid, all files in place, fingerprints re-checked on the installed copy. 5. Report what was installed, where, and what I still need to do myself (for example: install the use-time tools myself, only if and when I want them — Node.js/npm and npm install for the Remotion examples, uharfbuzz and fonttools for the shaping script, numpy for the music composer — and provide the brief, the copy and the music myself; using the skill is a separate step that only starts when I ask for it, and the use-time downloads disclosed above happen only then, on routes I choose). GitHub is optional: if I have a GitHub account or the gh CLI, you may use it; otherwise public access is fine. Never require it unless it's in the prerequisites above. Rules: don't touch anything outside the temp folder and the install target. If anything looks off, stop and ask me.

?

Questions

How do I install a build?

Every product page includes a copy-paste install prompt. Paste it into your Muse and it sets the build up for you — no manual configuration.

Where does my money go?

Straight to the seller. Skill Harbor never processes payments: checkout happens on the seller’s own page, usually Stripe.

What does the ✓ next to a creator’s name mean?

It means we confirmed the identity of the person behind the listing. It says nothing about the code itself — always check a build before installing it.