CommunityBildgithub.com

Wissenschaftliche Visualisierung mit POV-Ray

Erstellen Sie wissenschaftliche/technische Diagramme und Konzept-Icons mit POV-Ray – Atome, Bindungen, Kristall-/Molekülstrukturen, Vektorfeldpfeile, oszillierende „Wellen“-Verbindungen, leuchtende/energetische Effekte, metallische Oberflächen und saubere transparente Hintergrund-Renderings für die Verwendung in Papieren, Präsentationen, Postern und Förderanträgen.

Was ist Wissenschaftliche Visualisierung mit POV-Ray?

Dieser Skill kapselt eine Reihe von POV-Ray-Bausteinen und Konventionen für die Erstellung wissenschaftlicher und technischer Diagramme und Icons. Er ist für Entwickler von KI-Agenten konzipiert, die gerenderte Bilder für Publikationen, Präsentationen oder Förderanträge benötigen. Der Skill bietet vorgefertigte Makros für Atome (`sv_atom`), Bindungen (`sv_bond`), Vektorpfeile (`sv_arrow`), Wellenleiter (`sv_wave_tube`) und Leuchteffekte (`sv_glow_sphere`). Er enthält außerdem fünf anpassbare Widget-Vorlagen (z. B. für Laserpulse, Teilchenströme, thermische Gitter und Interaktionsdreiecke) mit einstellbaren Parametern. Die Ausgabe erfolgt als PNG mit echtem Alphakanal für die nahtlose Einbindung in andere Dokumente. Der Skill wird über Claude Code, Cursor, Codex oder ähnliche KI-Agenten-Plattformen genutzt, die eine textbasierte Beschreibung des gewünschten Diagramms akzeptieren und den POV-Ray-Code sowie das Render-Skript generieren. Ein Troubleshooting-Leitfaden hilft, häufige Fallstricke zu vermeiden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/richard-evans/research-skills/tree/HEAD/scientific-visualisation

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Wissenschaftliche Visualisierung mit POV-Ray?

Dieser Skill bündelt eine Reihe von POV-Ray-Bausteinen und Konventionen, die für eine echte Hauptfigur entwickelt wurden (vier magnetische Grundzustands-Renderings plus fünf Konzept-Icon-Widgets für einen Förderantrag) und über mehrere Runden visueller Überprüfung verfeinert wurden. Greifen Sie darauf zu, wann immer das Ergebnis ein eigenständiges Diagramm oder Icon ist, das in einem Dokument stehen soll, das jemand anderes lesen wird – keine Benutzeroberfläche, keine Webseite, ein gerendertes Bild.

Warum POV-Ray und was das bringt

POV-Ray-Szenen sind reiner Text, was bedeutet: Sie lassen sich leicht parametrisieren (Schleife über N Atome, Gitter erzeugen, Parameter durchlaufen), einfach aus wiederverwendbaren Makros zusammensetzen und ohne erneute Arbeit in einer anderen Auflösung neu rendern. Die Ausgabe ist ein flaches, präzise gesteuertes Rasterbild (keine interaktive 3D-Szene) – genau das Format, das Papiere, Folien und PDFs für Förderanträge tatsächlich benötigen.

Kurzanleitung

  1. #include "common.inc" zuerst – richtet Kamera, sanfte 3-Punkt-Beleuchtung, Hintergrund/Transparenz und gemeinsame Finish-Voreinstellungen ein. Schauen Sie es sich einmal an; die Kommentare erklären das Warum hinter jeder Wahl (wichtig, wenn Sie davon abweichen müssen).
  2. Binden Sie je nach Bedarf Folgendes ein:
    • molecule.inc – Atome (sv_atom), Bindungen (sv_bond), Vektorpfeile (sv_arrow)
    • wave.inc – oszillierende Röhren: Ausbreitungswellen und unscharfe „abstrakte Interaktions“-Verbindungen sind dasselbe Makro (sv_wave_tube) mit unterschiedlichen Parametern
    • glow.inc – der geschichtete Halo-Trick für alles, das als glühend/heiß/energetisch wirken soll (sv_glow_sphere)
    • orientation_color.inc – ordnet eine Richtung/einen Winkel einer wahrnehmungsmäßig unterschiedlichen Farbe zu (sv_orientation_colour / sv_colour_wheel), für wenn die Richtung selbst die Daten darstellt (Spinwinkel, Flussrichtung, Phase)
  3. Rendern Sie mit scripts/render.sh <szenenname.pov> [B] [H] [ausgabe.png] anstatt povray direkt aufzurufen – es setzt +UA (echter Alphakanal), sinnvolles Antialiasing, weist POV-Ray auf das assets/-Verzeichnis dieses Skills, damit Ihre #includes ohne Kopieren von Dateien aufgelöst werden, und warnt Sie, wenn der Alphakanal falsch ausgegeben wurde (siehe die Falle unten – das hat bereits eine echte Sitzung heimlich getroffen).
  4. Sehen Sie sich das Ergebnis an, bevor Sie es als erledigt betrachten. Lesen Sie das PNG zurück (Read-Tool) und schauen Sie tatsächlich hin – POV-Ray rendert fröhlich etwas subtil Falsches (durch den Kamerarahmen beschnitten, falsche Farbe, überlappende Pfeile) ohne Fehlermeldung.

Die fünf Widget-Vorlagen

assets/widgets/ enthält fünf sofort anpassbare Szenen, jede ein ausgearbeitetes Beispiel der oben genannten Bausteine:

DateiWas sie zeigtAufgebaut aus
laser.povEine sich ausbreitende oszillierende Welle + Richtungspfeil (Licht, Schall, jedes Signal)sv_wave_tube (offen, keine Verjüngung)
particle_current.povEine Reihe von N Teilchen, die jeweils eine Vektoreigenschaft tragen, die in eine Flussrichtung driftensv_atom + sv_arrow + ein Flusspfeil
thermal_grid.povEin NxN-Gitter mit kleinen Positionsstörungen, glühend heiß nach kalt je nach Abstand vom Zentrumsv_glow_sphere + eine gestörte Gitterschleife
interaction_triangle.povN Objekte, verbunden durch unscharfe, glühende, nicht-starre „Interaktions“-Linien (unterscheiden sich von einer physikalischen Bindung)sv_atom + sv_wave_tube (verjüngt, gestört, glühend)

Kopieren Sie die Vorlage, die Ihren Bedürfnissen am nächsten kommt, und ändern Sie die deklarierten Parameter oben (Farben, Anzahlen, Abstände, Amplitude), bevor Sie die Geometrie selbst anfassen – alle vier sind so geschrieben, dass die „Stellschrauben“ oben sind.

Für eine echte Molekül-/Kristallstruktur (kein Konzept-Icon) überspringen Sie die Widgets und gehen Sie direkt zu molecule.inc: Iterieren Sie über Ihre Atomkoordinaten und rufen Sie sv_atom und sv_bond auf, verwenden Sie sv_arrow für jeden pro-Atom-Vektor (Spin, Dipol, Verschiebung) und sv_orientation_colour, wenn die Richtung dieses Vektors selbst aussagekräftige Daten sind, die farblich kodiert werden sollten.

Designkonventionen, die es wert sind, beibehalten zu werden

Diese sind nicht willkürlich – jede entstand aus einer echten visuellen Überprüfungsrunde:

  • Weißer Hintergrund, echter Alphakanal (+UA). Renderings können direkt auf eine Folie/Seite/Abbildung gesetzt werden, ohne einen sichtbaren Kasten, und fügen sich sauber neben andere Paneele ein, unabhängig davon, was sich dahinter befindet.
  • Die 3-Punkt-Beleuchtung in common.inc, nicht eine einzelne Punktlichtquelle. Ein hartes Licht wirkt wie ein gerendertes 3D-Objekt („Clip Art“); die weiche Key+Fill+Fill-Beleuchtung wirkt wie eine polierte, matte, gedruckte Illustration. Behalten Sie die gleiche Beleuchtung in allen Paneelen einer mehrteiligen Abbildung bei, damit sie als eine Einheit wirken – ein anders beleuchtetes Paneel als seine Nachbarn sieht aus wie ein nicht passender Aufkleber, selbst wenn der Geometriestil übereinstimmt.
  • Bindungen/starre Verbindungen erhalten einen kleinen Z-Offset von der Kamera weg (ZOffset-Parameter von sv_bond), wann immer eine Bindung und ein Pfeil nahezu parallel durch denselben Bereich verlaufen könnten – sonst kommt es zu Z-Fighting oder die Bindung schneidet sichtbar in eine Pfeilspitze. Klein genug (0,15–0,25 Einheiten in einem typischen Szenenmaßstab), dass niemand bewusst bemerkt, dass es vorhanden ist.
  • Pfeile sind 10–20 % kürzer als „berührend“. Wenn zwei Vektorpfeile an einem gemeinsamen Punkt aufeinandertreffen, verkleinern Sie Scale, bis ihre Spitzen einander ausweichen – sich berührende Spitzen wirken wie ein Rendering-Fehler, nicht wie Daten.
  • Abstrakte vs. physikalische Verbindungen erhalten unterschiedliche visuelle Sprachen. Eine echte Bindung (sv_bond): starr, scharf, matt. Eine abstrakte Kopplung/Kraft/Korrelation (sv_wave_tube mit Glow=true): wellig, weichkantig, leuchtend. Zeichnen Sie keine Interaktion, für die Sie keine buchstäbliche Atom-Atom-Orbitalüberlappung als physikalischen Stab angeben können.
  • Verzerren Sie „generische“ Anordnungen leicht. Ein perfektes gleichseitiges Dreieck oder ein perfekt regelmäßiges Gitter wirkt wie Clip Art. Eine kleine, bewusste Unregelmäßigkeit (siehe das Dreieck in interaction_triangle.pov oder die Störung in thermal_grid.pov) wirkt wie „ein echtes System“, selbst in einem schematischen Icon, das keine Simulationsausgabe ist.

Wenn Sie echte Simulationsdaten rendern, kein Icon

Wenn Atompositionen/-vektoren aus einer tatsächlichen Simulation stammen (DFT, Molekulardynamik, Mikromagnetik usw.), gelten die oben genannten Icon-Widget-Konventionen weiterhin, aber Sie füllen sv_atom/sv_bond/sv_arrow-Aufrufe mit echten Koordinatendaten, anstatt Werte von Hand auszuwählen. Praktische Hinweise:

  • Erzeugen Sie Bindungen durch einen Abstandsschwellenwert zwischen Atompärchen, nicht von Hand.
  • Wenn Sie eine echte, physikalisch periodische gekachelte Region (einen größeren Bereich als eine Simulationszelle) zeigen möchten, ohne eine teure Simulation erneut auszuführen, und die Eigenschaft gleichmäßig kachelt (was für die meisten einfachen geordneten Grundzustände zutrifft), ist es oft gültig, das bereits konvergierte Ergebnis der kleinen Zelle geometrisch zu replizieren, anstatt ein größeres System neu zu simulieren – überprüfen Sie jedoch zuerst, ob die Eigenschaft in Ihrem Fall wirklich nicht von Zelle zu Zelle variiert.
  • Beschneiden Sie auf eine physikalisch sinnvolle Grenze (z. B. eine vollständige Koordinationssphäre/ein Einheitsmotiv), nicht auf ein beliebiges Rechteck – der Zuschnitt selbst sollte etwas Wahres über die Struktur aussagen.

Fehlerbehebung

Lesen Sie references/troubleshooting.md, bevor Sie Zeit mit der Fehlersuche bei einem POV-Ray-Parse-Fehler oder einem falsch aussehenden Rendering verbringen – es listet die spezifischen Fallstricke auf, die bereits beim Erstellen dieses Skills aufgetreten sind (reservierte SDL-Wörter, die wie normale Variablennamen aussehen, der stille Alpha-Transparenz-Bug, die Kamerahändigkeit von POV-Ray, sphere_sweep/Array-Scoping-Eigenheiten). Die meisten POV-Ray-Fehlermeldungen sind ehrlich, was das Syntaxproblem betrifft, aber wenig hilfreich, was das Warum aus Sicht eines normalen Programmierers angeht. Diese Datei existiert, damit Sie nicht dieselben wenigen Fallen neu entdecken müssen.

Für ausführlichere Erklärungen der Parameter und Design-Gründe jedes Makros (mit mehr Beispielaufrufen, als hier Platz finden), siehe references/techniques.md.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills