drawn-artifacts
Generate charts, data visualizations, animated counters, and polished motion-graphic assets with open-source generators (matplotlib, Manim, Lottie, Motion…
Skill by explicit09
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/explicit09-drawn-artifacts
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/drawn-artifacts
What's inside
- Skill name
drawn-artifacts- Description
- Generate charts, data visualizations, animated counters, and polished motion-graphic assets with open-source generators (matplotlib, Manim, Lottie, Motion Canvas) when the visual need goes beyond native MotionScene layers — then place them via PiP/B-roll or MotionScene image layers.
- License
- Apache-2.0
- Instructions
- 226 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (17)
- SKILL.md
- README.md · motion-canvas/
- .gitignore · motion-canvas/template/
- package-lock.json · motion-canvas/template/
- package.json · motion-canvas/template/
- frames-to-prores.mjs · motion-canvas/template/scripts/
- motion-canvas.d.ts · motion-canvas/template/src/
- project.meta · motion-canvas/template/src/
- project.ts · motion-canvas/template/src/
- brand-card.meta · motion-canvas/template/src/scenes/
- brand-card.tsx · motion-canvas/template/src/scenes/
- tsconfig.json · motion-canvas/template/
- vite.config.ts · motion-canvas/template/
- chart.py · scripts/
- lottie_render.py · scripts/
- manim_scene.py · scripts/
- motion_canvas_template_test.py · scripts/
SKILL.md (first lines)
# Drawn Artifacts
Use this when the edit needs a drawn or rendered graphic that native
MotionScene layers can't produce: real charts from real numbers,
math/concept animations, polished decorative motion (confetti,
flourishes, animated icons), or rich custom 2D scenes.
Before reaching for a generator, call `plan_visual_support`. If the
need fits MotionScene's native subset (multi-layer text, panels,
callouts, still image layers with simple animations), use
`plan_motion_scene` instead — it previews and renders natively with no
external toolchain. This skill is the escape hatch for everything past
that subset.
Remotion was deliberately excluded from this toolset (company
licensing terms). All four lanes below are permissively licensed.
## Routing
| Need | Generator | Script |
|---|---|---|
| Chart / data viz from real numbers (bar, line, comparison) | matplotlib | `scripts/chart.py` |
| Concept / math / counter animation (animated stat, growing bars, diagrams in motion) | Manim CE | `scripts/manim_scene.py` |
| Polished decorative motion (confetti, checkmarks, flourishes, animated icons) | Lottie (python-lottie + ffmpeg) | `scripts/lottie_render.py` |
| Rich custom 2D animated scenes beyond the above | Motion Canvas optional template | `motion-canvas/template/` + `motion-canvas/README.md` |
All scripts run through `uv` — no system Python packages needed. `uv`
is on PATH (`/opt/homebrew/bin/uv`) and also bundled with the desktop
app at `binaries/uv-aarch64-apple-darwin`. ffmpeg/ffprobe live at
`/opt/homebrew/bin/`.
## Brand palette
Every artifact uses the house palette unless the user overrides it:
gold `#C8A84E` (primary data/accent), navy `#070D17` (panels,
backgrounds when opacity is wanted), ivory `#F2EDE3` (labels, axes).
Backgrounds are transparent by default.
## 1. Charts — `scripts/chart.py`
```bash
uv run --with matplotlib <skill-root>/scripts/chart.py \
--spec-json '{"type": "bar", "title": "Quarterly Revenue",
"labels": ["Q1", "Q2", "Q3", "Q4"],
"values": [12, 18, 15, 24], "y_label": "$M"}' \
--out generated/drawn/q-revenue.png
```
- Types: `bar`, `line` (single or multi `series`), `comparison`
(grouped bars from `series: [{name, values}, ...]`).
- Output is a transparent RGBA PNG (default 1600x900 @ 200 dpi;
`--width/--height/--dpi` to change). Pass `"panel": true` in the
spec for an 85%-opacity navy backing panel when the underlying
footage is too busy for floating text.
- Place as a MotionScene still image layer (preferred for stills —
you get fades/slides for free) or `Insert PiP`.
VERIFIED: bar/line/comparison specs all render; output probes as
`png / rgba` with genuinely transparent pixels (alpha extrema 0..255).
## 2. Manim animations — `scripts/manim_scene.py`
```bash
uv run --with manim manim render -qh -t --format=mov \
<skill-root>/scripts/manim_scene.py CounterScene \
-o counter.mov --media_dir /tmp/manim-media
cp /tmp/manim-media/videos/manim_scene/1080p60/counter.mov \
generated/drawn/counter.mov
```
- `-t` = transparent background; `--format=mov` writes QuickTime
Animation (qtrle, `argb` pixel format) whose alpha survives into the
overlay compositor. Use `-ql` (480p15) for fast iteration, `-qh`
(1080p60) for the final asset.
- Bundled template scenes, parameterized by env vars (no file edits):
- `CounterScene` — animated stat counter
(`DRAWN_COUNTER_START/END/SUFFIX/LABEL/SECONDS`).
- `BarGrowthScene` — bars growing from the baseline
(`DRAWN_BARS_JSON='[{"label": "2024", "value": 7}, ...]'`,
`DRAWN_BARS_TITLE`, `DRAWN_BARS_SECONDS`).
- For custom scenes, copy `manim_scene.py` into the project, add a
`Scene` subclass with the brand constants, render the same way.
- The bundled scenes use Pango `Text` only — they need NO LaTeX.
Avoid `MathTex`/`Tex`/`DecimalNumber` in custom scenes unless the
machine has a TeX distribution (this one does not).
- System deps: Manim needs cairo + pango. Present on this machine
(`pkg-config --exists cairo pango` passes). On a fresh machine:
`brew install cairo pango pkg-config`.
VERIFIED: both template scenes render end-to-end via
`uv run --with manim`; outputs probe as `qtrle / argb` (alpha kept);
env-var parametrization confirmed.
## 3. Lottie — `scripts/lottie_render.py`
```bash
uv run --with 'lottie[all]' <skill-root>/scripts/lottie_render.py \
--input assets/confetti.json \
--out generated/drawn/confetti.mov
```
- Renders the Lottie JSON to a transparent PNG sequence, then
assembles a ProRes 4444 .mov (`--codec qtrle` for the lighter
QuickTime Animation codec). `--fps`, `--scale` to adjust;
`--frames-dir` keeps the PNG sequence (use `--png-only
--frames-dir ...` when you only want a single frame or a
MotionScene still).
- Sourcing: lottiefiles.com has a large free library. Download the
**Lottie JSON** format (if you get a `.lottie` file, unzip it and
use `animations/*.json`). Every asset carries its own license —
surface the asset URL to the USER and have them verify the license
before it ships in a published edit. Don't bulk-download.
VERIFIED: sample animation rendered end-to-end; .mov probes as
`prores / yuva444p12le` (alpha kept), PNG frames probe as `rgba`.
## 4. Motion Canvas optional template
Use this only when native MotionScene, matplotlib, Manim, or LottieFrom explicit09/montage, Apache-2.0.
More from explicit09/montage
- 0.523score
color-corrector
explicit09
Analyze footage color/exposure problems and apply clip-level graph-native color correction or LUTs through EDL ops.
SkillBFreshness: BClaude Code +9 - 0.517score
podcast-episode-producer
explicit09
End-to-end production of a published podcast episode from raw recording.
SkillBFreshness: BClaude Code +9 - 0.504score
generated-explainer
explicit09
Use when the user wants a generated educational, technical, mathematical, or visual-essay video rather than an edit built primarily from recorded footage.
SkillBFreshness: BClaude Code +9 - 0.476score
pacing-optimizer
explicit09
Optimize pacing by removing dead zones, preserving intentional pauses, and applying safe speed changes based on content type and speech rate.
SkillCFreshness: CClaude Code +9 - 0.476score
auto-cutter
explicit09
Extract the real episode from a long raw recording, then apply conservative mechanical cleanup for silence, fillers, and false starts.
SkillCFreshness: CClaude Code +9 - 0.476score
beat-sync-editor
explicit09
Edit footage to music by creating beat-aligned cut plans, motivated transitions, speed accents, and verification of timing tolerance.
SkillCFreshness: CClaude Code +9 - 0.476score
interview-tightener
explicit09
Tighten an interview by 20-30% without losing meaning.
SkillCFreshness: CClaude Code +9 - 0.476score
meeting-highlights
explicit09
Create concise meeting highlight cuts and reports focused on decisions, action items, blockers, and executive-ready context.
SkillCFreshness: CClaude Code +9 - 0.476score
overlay-animation
explicit09
Plan generated motion-graphic overlay assets as Montage media overlays, with per-slot briefs, exact durations, and EDL insertion hints.
SkillCFreshness: CClaude Code +9 - 0.476score
podcast-editor
explicit09
Polish podcast or interview audio/video by tightening silence, removing filler, applying speed only where safe, balancing speakers, and verifying loudness.
SkillCFreshness: CClaude Code +9 - 0.474score
b-roll-suggester
explicit09
Find visual cutaways for spoken content from an EXISTING IN-PROJECT B-roll library (separate cutaway assets imported alongside the primary recording).
SkillCFreshness: CClaude Code +9 - 0.471score
multicam-director
explicit09
Sync N camera angles by waveform, then auto-direct a flattened single-track program cut from the diarized transcript, applied graph-natively through EDL ops.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 12, 2026 (4 months ago)
- Last release
- Jun 10, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/explicit09/montage
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from explicit09
- 0.523score
color-corrector
explicit09
Analyze footage color/exposure problems and apply clip-level graph-native color correction or LUTs through EDL ops.
SkillBFreshness: BClaude Code +9 - 0.517score
podcast-episode-producer
explicit09
End-to-end production of a published podcast episode from raw recording.
SkillBFreshness: BClaude Code +9 - 0.504score
generated-explainer
explicit09
Use when the user wants a generated educational, technical, mathematical, or visual-essay video rather than an edit built primarily from recorded footage.
SkillBFreshness: BClaude Code +9 - 0.476score
auto-cutter
explicit09
Extract the real episode from a long raw recording, then apply conservative mechanical cleanup for silence, fillers, and false starts.
SkillCFreshness: CClaude Code +9 - 0.476score
beat-sync-editor
explicit09
Edit footage to music by creating beat-aligned cut plans, motivated transitions, speed accents, and verification of timing tolerance.
SkillCFreshness: CClaude Code +9 - 0.476score
interview-tightener
explicit09
Tighten an interview by 20-30% without losing meaning.
SkillCFreshness: CClaude Code +9
Cite this page
drawn-artifacts skill. Agent Mart. https://agentmart.dev/skills/explicit09-drawn-artifacts (last updated 2026-10-24)