Zeichne Alles
Verwandle eine Anfrage in eine mathematische Zeichnung und liefere die Mathematik dazu mit. Die Nutzer sind oft Content-Ersteller und Videobearbeiter. Gib Dateien im richtigen Format aus und erkläre die Methode in einfachen Worten.
Vorgehen
- Finde das Motiv, das Ziel (Reels, Post, YouTube, Video-Overlay), statisch oder animiert, und die Farben. Wenn Daten fehlen, verwende Standardwerte (quadratisch, dunkles Design). Teile dem Benutzer die Standardwerte mit. Stelle nicht viele Fragen.
- Wähle die Methode (Tabelle unten). Wenn der Benutzer eine Methode nennt, verwende sie.
- Wenn der Benutzer ein Bild angibt, kopiere es mit
trace_image.py. Eine Kopie ist genauer als eine neue Zeichnung. - Wenn kein Bild vorhanden ist, erzeuge die Geometrie selbst (siehe „Ohne Bild zeichnen").
- Erstelle eine schnelle Vorschau (540 px, wenige Frames). Betrachte sie mit dem Bildbetrachter. Korrigiere Proportionen, Bildausschnitt und Farben. Wiederhole dies, bis das Ergebnis gut ist.
- Erstelle die endgültige Datei in der gewünschten Größe.
- Lege die Dateien im Ausgabeordner ab und präsentiere sie. Gib eine kurze Antwort: Methode, Hauptparameter und eine fertige Bildunterschrift.
Methodenauswahl
| Anfrage | Methode | Skript |
|---|---|---|
| Bild kopieren (Zeichnung, Logo, Beschriftung, Silhouette, Illustration, Foto) | Bézier (Potrace), Fourier pro Kontur für Animation | trace_image.py |
| Name, Unterschrift, neuer Umriss, „von Kreisen gezeichnet" | Fourier | fourier_draw.py |
| Gefüllte Formen: Icon, Maskottchen, Logo, Szene, Muster, Mandala | SDF | sdf.py (Bibliothek) |
| Gleichung als Motiv, berühmte Kurve, gefüllter Bereich | Implizit | curves.py |
| Spirale, Rose, Lissajous, Spirograph | Parametrisch/polar | curves.py |
| Pixel-Art, „Formel, die sich selbst zeichnet" | Tupper | tupper.py |
| Fraktal, Pflanze, Strömungsfeld | Andere | eigener Code (references/methods.md §7) |
Fourier allein kann scharfe Ecken nicht exakt kopieren (Gibbs-Effekt). Verwende Bézier für eine exakte Kopie und Fourier für die Animation.
Skripte
Alle Skripte befinden sich in scripts/. Führe ein Skript mit --help aus, um alle Optionen zu sehen. Übliche Optionen:
--size (reels, post, square, youtube, thumb, 4k oder WxH), --theme (dark, light, neon, blueprint, paper), --transparent.
Abhängigkeiten: numpy, matplotlib, Pillow, imageio/ffmpeg, OpenCV, scikit-image, potracer (das Skript installiert es bei Bedarf mit pip).
Ein Bild kopieren:
python scripts/trace_image.py drawing.jpg --svg d.svg --png d.png --desmos d.txt
python scripts/trace_image.py drawing.jpg --anim d.mp4 --anim-style fourier --centerline --size reels
python scripts/trace_image.py sketch.png --centerline --svg sketch.svg # bearbeitbare Striche
python scripts/trace_image.py logo.png --mode color --colors 5 --svg logo.svg
python scripts/trace_image.py photo.jpg --mode edges --anim lines.mp4
--mode ink(Standard): Strichzeichnungen, Logos, Beschriftungen, Silhouetten, Screenshots. Es erkennt helle Bilder auf dunklem Hintergrund und entfernt schwarze Balken.--mode color --colors N: Illustrationen, Drucke, Gemälde, Icons, Fotos. Verwende 12–16 Farben für Kunstwerke und Fotos. Füge--linesfür Drucke, Comics und Tuschekunst hinzu: es fügt obere Ebenen für die dünnen dunklen Umrisse und die kleinen hellen Details (Schaum, Sterne, Glanzlichter) hinzu.--detail 1behält mehr kleine Details.--mode edges: wandelt ein Foto in eine Strichzeichnung um.--centerline: für Strichzeichnungen, Skizzen, Handschriften und Unterschriften. Jeder Strich wird zu einem bearbeitbaren SVG-Pfad mit seiner Strichbreite (als Stiftlinie in Illustrator/Figma/Inkscape). Verbindungen, Kreuzungen und scharfe Ecken werden repariert, gerade Teile werden zu exakten Linien, und die Strichabschlüsse (rund/quadratisch) werden aus der Tinte ermitteln. Überschreibe mit--capund--join. Ohne--centerlinehat das SVG gefüllte Umrisse (am besten für Logos, Beschriftungen, Silhouetten).--anim-style penzeichnet die Bézier-Kurven und zeigt dann die Füllung.--anim-style fourierverwendet eine Epizyklenkette pro Kontur oder Strich. Im Farbmodus zeichnen die Epizyklen die längsten Regionenumrisse (--max-strokes, Standard 800) und dann blenden die Farbvektoren ein.--keep-colorsbehält die Originalfarben (Tintenmodus).--detail Nignoriert kleine Punkte.--smooth 0behält scharfe Ecken.- Das Skript gibt die Genauigkeit (IoU) und die Kantenabweichung in Pixeln aus. Bei Strichen ist die Kantenabweichung der bessere Wert: ein Mittelwert unter ~0,8 px ist eine sehr genaue Kopie.
- Das Skript gibt die Genauigkeit aus. Gute Werte: mehr als 95% für Silhouetten und Logos, 88–92% für dünne Umrisse, 80–88% für
--centerline(jeder Strich hat eine Breite). Randpixel verringern den IoU. Im Kantenmodus ist der Wert nicht aussagekräftig. Wenn der Wert niedrig ist, betrachte die Kopie und passe--thresholdoder--detailan. - Zeige die Kopie neben dem Original, bevor du die Animation erstellst.
Fourier: Jede separate Kontur erhält ihre eigene Reihe, sodass keine Linien die Teile verbinden. --single-line ergibt den Stil „ein Stiftstrich".
python scripts/fourier_draw.py --text "Ana" --terms 300 --anim ana.mp4 --size reels --png ana.png
python scripts/fourier_draw.py --svg-path "M100 30 C 160 -20 220 60 100 170 C -20 60 40 -20 100 30 Z" \
--terms 40 --png heart.png --desmos heart.txt
Eingaben: --svg-path, --svg-file, --text, --points (JSON). Ausgaben: --png (--fill), --anim, --svg, --desmos (t von 0 bis 1), --json.
SDF: Importiere es als Bibliothek in einem kurzen Skript.
import sys; sys.path.insert(0, "<skill-folder>/scripts")
from sdf import *
P = grid("square", scale=1.2)
body = ellipse(P, 0.6, 0.45)
ears = triangle(mirror_x(P), (0.15, 0.25), (0.5, 0.15), (0.45, 0.72))
cat = smooth_union(body, ears, 0.06)
eyes = circle(translate(mirror_x(P), 0.22, 0.05), 0.07)
render([(cat, "#2b2d42", {"shadow": (0.02, -0.03, 0.05)}), (eyes, "#ffd23f")], "cat.png", theme="paper")
Der Docstring von sdf.py listet die Grundelemente, Operationen und Ebenenoptionen auf. Animation: animate(lambda t: [layers], "out.mp4", frames=120). Für Shadertoy/GLSL lies references/glsl.md.
Kurven: Die Variable a läuft während der Animation von 0 bis 1. Verwende ::#hex, um eine Farbe festzulegen.
python scripts/curves.py --region "(x**2+y**2-1)**3 - x**2*y**3::#e63946" \
--range -1.6,1.6,-1.3,1.5 --caption '$(x^2+y^2-1)^3 = x^2y^3$' --png heart.png
python scripts/curves.py --polar "1+0.3*cos(7*th+6.283*a)" --anim flower.mp4 --size reels
Tupper:
python scripts/tupper.py encode --text "HALLO" --png tupper.png --out k.txt
python scripts/tupper.py encode --ascii drawing.txt --png art.png --out k.txt # '#' und '.'
python scripts/tupper.py classic --png formula.png
Die Kodierung überprüft sich selbst mit der echten Formel. Gib das vollständige k in der .txt-Datei an.
Ausgabe für Videobearbeiter
- Soziale Medien:
.mp4(H.264). Slack, E-Mail, README:.gif(maximal 540 px). - Überlagerung von Filmmaterial: verwende
--transparentmit.mov(ProRes 4444 mit Alphakanal),.webm(VP9 mit Alphakanal) oder einem Ordnernamen (PNG-Sequenz). Premiere, DaVinci, After Effects und Final Cut akzeptieren das.mov. Wenn ein Editor kein Alphavideo akzeptiert, verwende die PNG-Sequenz. - Eine Schleife ist nahtlos, wenn die Animation
anur in sin/cos(2π·a) verwendet. - Für weitere Tipps (Sicherheitsbereiche, Dauern, Serienideen) lies
references/creator-playbook.md.
Ohne Bild zeichnen
- Teile das Motiv in 3 bis 8 einfache Formen auf (Katze = Ellipse + 2 Dreiecke + Kreise).
- Verwende
mirror_xfür symmetrische Motive. - Für Fourier schreibe einen geschlossenen SVG-Pfad in einem 0–200 Kasten mit C-Kurven.
- Für Tupper zeichne die Bitmap als ASCII (maximal 17 Zeilen, 106 Spalten).
- Stelle sicher, dass eine Person das Motiv in jeder Vorschau sofort erkennen kann.
Grenzen
Zeichne originelle Designs, die eigene Kunst und Logos des Benutzers, generische Formen und gemeinfreie Werke. Kopiere oder zeichne keine Charaktere, Maskottchen, Logos oder Kunstwerke, die anderen Personen gehören, auch wenn der Benutzer das Bild bereitstellt. Erstelle keine „ähnlichen" Versionen davon. Biete ein originelles Design an. Kopiere Fotos von echten Personen nur, wenn der Benutzer das Foto besitzt oder die Erlaubnis hat.
Antwort
Halte die Antwort kurz: Was du gezeichnet hast, die Methode und warum (ein Satz), die Hauptparameter (Begriffe, Gleichung, kurzes k) und eine fertige Bildunterschrift. Biete eine nützliche Variation in einer Zeile an.