CommunityImagemgithub.com

richard-evans/visualizacao-cientifica

Crie diagramas científicos/técnicos e ícones conceituais com POV-Ray — átomos, ligações, estruturas cristalinas/moleculares, setas de campos vetoriais, conectores ondulatórios 'oscilantes', efeitos brilhantes/energéticos, acabamentos metálicos e renders limpos com fundo transparente para inserir em artigos, apresentações, pôsteres e figuras de propostas de financiamento.

O que é visualizacao-cientifica?

Esta skill empacota um conjunto de blocos de construção e convenções do POV-Ray para criar diagramas científicos e ícones conceituais que pareçam polidos e profissionais. Em vez de exigir que o usuário domine o POV-Ray do zero, ela fornece macros reutilizáveis (átomos, ligações, flechas de vetor, tubos de onda, esferas brilhantes e mapeamento de cores por orientação) e cinco templates prontos para adaptação (laser/pulso, corrente de partículas, grade térmica, triângulo de interação e estruturas moleculares/cristalinas reais). A skill é útil para qualquer situação em que o resultado final seja uma imagem estática (não interativa) para um documento acadêmico — dispensando a necessidade de o usuário saber que está usando POV-Ray. Ela inclui convenções de design testadas em revisões visuais reais, como fundo branco com canal alfa, um rig de iluminação de três pontos para dar um acabamento fosco e de ilustração, e dicas para evitar artefatos comuns (como z-fighting entre ligações e setas). O fluxo de trabalho é simples: incluir o cabeçalho `common.inc`, escolher os includes necessários, escrever a cena e renderizar com `scripts/render.sh`, que já configura anti-aliasing e canal alfa corretamente. A skill também orienta como gerar estruturas a partir de dados reais de simulação (DFT, dinâmica molecular, micromagnetismo) e fornece um guia de solução de problemas para os erros mais comuns do POV-Ray.

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

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Visualização científica com POV-Ray

Esta skill empacota um conjunto de blocos de construção e convenções do POV-Ray desenvolvidos para uma figura herói real (quatro renders de estado fundamental magnético mais cinco widgets de ícones conceituais para uma proposta de financiamento), refinados ao longo de várias rodadas de revisão visual. Use-a sempre que o produto final for um diagrama ou ícone independente destinado a um documento que outra pessoa lerá — não uma interface de usuário, não uma página web, mas uma imagem renderizada.

Por que POV-Ray e o que isso oferece

As cenas do POV-Ray são texto simples, o que significa: são fáceis de parametrizar (iterar sobre N átomos, gerar uma rede cristalina, varrer um parâmetro), fáceis de compor a partir de macros reutilizáveis e fáceis de re-renderizar em uma resolução diferente sem refazer nenhum trabalho. A saída é uma imagem raster plana e precisamente controlada (não uma cena 3D interativa) — exatamente o formato que artigos, slides e PDFs de financiamento desejam.

Início rápido

  1. #include "common.inc" primeiro — configura a câmera, um rig de iluminação suave de 3 pontos, fundo/transparência e predefinições de acabamento compartilhadas. Olhe para ele uma vez; os comentários explicam o porquê de cada escolha (importante se você precisar desviar disso).
  2. Inclua os que precisar:
    • molecule.inc — átomos (sv_atom), ligações (sv_bond), setas vetoriais (sv_arrow)
    • wave.inc — tubos oscilantes: ondas propagantes e conectores "interação abstrata" difusos são a mesma macro (sv_wave_tube) com parâmetros diferentes
    • glow.inc — o truque de camadas de halo para qualquer coisa que deva parecer brilhante/quente/energética (sv_glow_sphere)
    • orientation_color.inc — mapeie uma direção/ângulo para uma cor perceptualmente distinta (sv_orientation_colour / sv_colour_wheel), para quando a própria direção é o dado (ângulo de spin, direção de fluxo, fase)
  3. Renderize com scripts/render.sh <cena.pov> [L] [A] [saida.png] em vez de chamar povray diretamente — ele define +UA (canal alfa real), anti-aliasing sensato, aponta o POV-Ray para assets/ desta skill para que seus #includes sejam resolvidos sem copiar arquivos, e avisará se o canal alfa sair errado (veja a pegadinha abaixo — isso já atrapalhou uma sessão real, silenciosamente).
  4. Observe o resultado antes de considerar pronto. Leia o PNG de volta (ferramenta Read) e realmente olhe — o POV-Ray pode felizmente renderizar algo sutilmente errado (cortado pelo enquadramento da câmera, cor errada, setas sobrepostas) sem nenhum erro.

Os cinco templates de widgets

assets/widgets/ tem cinco cenas prontas para adaptar, cada uma um exemplo prático dos blocos de construção acima:

ArquivoO que mostraConstruído a partir de
laser.povUma onda oscilante propagante + seta direcional (luz, som, qualquer sinal)sv_wave_tube (aberto, sem afunilamento)
particle_current.povUma fileira de N partículas cada uma carregando uma propriedade vetorial, derivando em uma direção de fluxosv_atom + sv_arrow + uma seta de fluxo
thermal_grid.povUma rede NxN com pequeno jitter posicional, brilhando quente-para-frio pela distância ao centrosv_glow_sphere + um loop de grade com jitter
interaction_triangle.povN objetos unidos por linhas difusas, brilhantes e não rígidas de "interação" (distintas de uma ligação física)sv_atom + sv_wave_tube (afunilado, com jitter, brilhante)

Copie o mais próximo do que precisa e altere os parâmetros declarados no topo (cores, contagens, espaçamento, amplitude) antes de tocar na geometria — todos os quatro são escritos de forma que os "botões" estão em cima.

Para uma molécula/estrutura cristalina real (não um ícone conceitual), pule os widgets e vá direto para molecule.inc: itere sobre suas coordenadas de átomos chamando sv_atom e sv_bond, usando sv_arrow para qualquer vetor por átomo (spin, dipolo, deslocamento) e sv_orientation_colour se a direção desse vetor for um dado significativo que mereça codificação por cor.

Convenções de design que valem a pena manter

Estas não são arbitrárias — cada uma surgiu de uma rodada real de revisão visual:

  • Fundo branco, canal alfa real (+UA). Os renders caem diretamente em um slide/página/figura sem uma caixa visível e compõem-se perfeitamente ao lado de outros painéis, independentemente do que estiver atrás deles.
  • O rig de iluminação de 3 pontos em common.inc, não uma única luz pontual. Uma luz dura parece um objeto 3D renderizado ("clip art"); o rig suave de chave + preenchimento + preenchimento parece uma ilustração polida, fosca e impressa. Mantenha o mesmo rig em todos os painéis de uma figura com vários painéis para que eles pareçam uma família — um painel iluminado de forma diferente de seus vizinhos parece um adesivo incompatível, mesmo quando o estilo da geometria combina.
  • Ligações/conectores rígidos recebem um pequeno deslocamento z para longe da câmera (parâmetro ZOffset do sv_bond) sempre que uma ligação e uma seta possam correr quase paralelas pela mesma região — caso contrário, eles sofrem z-fighting, ou a ligação corta visivelmente a ponta da seta. Pequeno o suficiente (0,15-0,25 unidades em uma escala de cena típica) para que ninguém note conscientemente que está lá.
  • Setas são 10-20% mais curtas do que "tocando". Se duas setas vetoriais se encontram em um ponto compartilhado, reduza Scale até que suas pontas se evitem — pontas se tocando parecem um glitch de renderização, não um dado.
  • Conexões abstratas vs. físicas recebem linguagem visual diferente. Uma ligação real (sv_bond): rígida, nítida, fosca. Um acoplamento/força/correlação abstrato (sv_wave_tube com Glow=true): ondulado, de bordas suaves, brilhante. Não desenhe uma interação para a qual você não possa apontar uma sobreposição orbital literal átomo-átomo como se fosse uma haste física.
  • Distorça ligeiramente arranjos "genéricos". Um triângulo equilátero perfeito ou grade perfeitamente regular parece clip art. Uma pequena irregularidade deliberada (veja o triângulo de interaction_triangle.pov ou o jitter de thermal_grid.pov) parece "um sistema real", mesmo em um ícone esquemático que não é saída de simulação.

Quando você está renderizando dados reais de simulação, não um ícone

Se as posições/vetores dos átomos vêm de uma simulação real (DFT, dinâmica molecular, micromagnetismo, etc.), as convenções dos widgets de ícone ainda se aplicam, mas você está populando chamadas de sv_atom/sv_bond/sv_arrow a partir de dados de coordenadas reais, em vez de escolher valores manualmente. Notas práticas:

  • Gere ligações por um corte de distância entre pares de átomos, não manualmente.
  • Se você quiser mostrar um patch ladrilhado fisicamente periódico real (uma região maior do que uma célula de simulação) sem reexecutar uma simulação cara, e a propriedade se ladrilhar uniformemente (verdadeiro para a maioria dos estados fundamentais ordenados simples), muitas vezes é válido replicar geometricamente o resultado já convergido da célula pequena em vez de resimular um sistema maior — apenas verifique primeiro se a propriedade genuinamente não varia de célula para célula no seu caso.
  • Corte para um limite fisicamente significativo (por exemplo, uma esfera de coordenação completa/motivo unitário), não um retângulo arbitrário — o próprio corte deve dizer algo verdadeiro sobre a estrutura.

Solução de problemas

Leia references/troubleshooting.md antes de gastar tempo depurando um erro de análise do POV-Ray ou um render que parece errado — ele lista as pegadinhas específicas já encontradas ao construir esta skill (palavras SDL reservadas que parecem nomes de variáveis comuns, o bug silencioso da transparência alfa, a orientação da câmera do POV-Ray, peculiaridades de escopo de sphere_sweep/array). A maioria das mensagens de erro do POV-Ray é honesta sobre o problema de sintaxe, mas inútil sobre por que parece daquela forma para as expectativas de um programador normal; esse arquivo existe para que você não tenha que redescobrir as mesmas poucas armadilhas.

Para explicações mais completas dos parâmetros e da lógica de design de cada macro (com mais chamadas de exemplo do que cabem aqui), veja references/techniques.md.

Individual skills in this repo

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

Habilidades Relacionadas