Pular para o conteúdo
Skillpedia
Agentes101 mil · #516

worker-visualizer

Desenvolve visualizadores de dados em tempo real que rodam fora da thread principal. É útil para simulações e computação intensiva sem travar a interface.

O que ela faz

Cria uma animação visual que roda de forma fluida (60 quadros por segundo) no seu navegador. Ele faz cálculos pesados em segundo plano, sem travar a página principal, e mostra o resultado em uma tela.

Quando usar

  • ✓Quando você quer ver simulações de partículas ou física em tempo real.
  • ✓Para criar efeitos visuais complexos como fractais que se movem.
  • ✓Ao desenvolver algo que precisa de muitos cálculos sem deixar a interface lenta.

Exemplo do que pedir para a IA

“Crie uma simulação de 1000 partículas que se atraem e mostre em uma tela.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/nexu-io/open-design/blob/main/design-templates/worker-visualizer/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/nexu-io/open-design/blob/main/design-templates/worker-visualizer/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O código principal divide o trabalho: uma parte faz os cálculos pesados em uma área separada (Web Worker) e a outra parte apenas desenha o resultado na tela. Isso garante que a página continue responsiva.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add nexu-io/open-design --skill worker-visualizer

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/design-templates/worker-visualizer/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Skill: Visualizador de Trabalhador

Produz um único index.html autônomo que move computação pesada por quadro para um Web Worker e renderiza o resultado em um canvas, mantendo a thread principal em suaves 60fps.

Por que este é um artefato potencializado

O OpenDesign detecta new Worker( / SharedArrayBuffer / OffscreenCanvas e renderiza este arquivo em visualização potencializada — um iframe cross-origin-isolated com allow-same-origin. Isso significa que Web Workers externos e de blob são construídos com sucesso, SharedArrayBuffer é definido (crossOriginIsolated === true) e importScripts funciona. Na antiga sandbox opaca, todos os três falhavam; aqui eles simplesmente funcionam.

Mapa de recursos

worker-visualizer/
├── SKILL.md      ← you're reading this
└── example.html  ← a working 12k-particle SharedArrayBuffer sim (READ FIRST)

Fluxo de trabalho

Passo 0 — Leia a referência

Leia example.html. Observe a divisão: o worker integra posições a cada tick; a thread principal apenas lê + desenha. Ele detecta recursos crossOriginIsolated e usa um SharedArrayBuffer para cópia zero quando disponível, recorrendo a uma cópia transferível postMessage caso contrário. Sempre envie esse fallback para que o artefato ainda anime se o isolamento estiver desativado.

Passo 1 — Escolha a carga de trabalho

Escolha UM trabalho limitado por computação que valha a pena descarregar:

  • Campo de Partículas / N-corpos (padrão): milhares de corpos com uma lei de força barata.
  • Fractal: tempo de escape de Mandelbrot/Julia em um buffer ImageData.
  • Autômato celular / reação-difusão: grade atualizada no worker.
  • Visualizador de dados/áudio: transforma um stream em barras/anéis a cada quadro.

Passo 2 — Construa index.html

  • Um arquivo, zero requisições externas. Construa o worker a partir de um Blob + URL.createObjectURL (inline sua fonte), ou incorpore-o como um URL data:.
  • Prefira SharedArrayBuffer para estado grande por quadro: aloque na thread principal, passe o SharedArrayBuffer para o worker e leia a mesma visualização Float32Array/Uint8ClampedArray enquanto desenha. Proteja em typeof SharedArrayBuffer !== 'undefined' && crossOriginIsolated.
  • Caminho de fallback: se não estiver isolado, postMessage um ArrayBuffer transferível a cada quadro.
  • Considere OffscreenCanvas + canvas.transferControlToOffscreen() para renderizar dentro do worker para as cenas mais pesadas.

Passo 3 — Sobreposição + marca

  • HUD com o título e 2–3 tiles de estatísticas ao vivo (contagem de partículas, modo de transporte, fps). Mapeie a cor de destaque para o DESIGN.md ativo quando presente; caso contrário, um fundo escuro com um destaque vívido.

Passo 4 — Auto-revisão (P0)

  • Worker constrói sem SecurityError; sim roda.
  • Renderização da thread principal mantém ~60fps sob a carga de trabalho completa.
  • O caminho SharedArrayBuffer é engajado quando crossOriginIsolated é verdadeiro; o fallback postMessage é engajado caso contrário — verifique se AMBOS os ramos degradam de forma limpa.
  • Sem crescimento ilimitado: velocidades/posições permanecem estáveis por minutos.
  • A estatística "Transporte" relata verdadeiramente qual caminho está ativo.
Perguntas frequentes

O que é um 'Web Worker'?

É como ter um ajudante secreto no navegador que faz tarefas pesadas sem atrapalhar o que você está vendo na tela principal.

O que é 'SharedArrayBuffer'?

É uma forma avançada de compartilhar dados muito grandes entre a parte principal e o ajudante (Web Worker) sem precisar copiar tudo, tornando tudo mais rápido.

Por que a animação roda a 60fps?

A ferramenta foi feita para otimizar os cálculos e o desenho, garantindo que a animação seja suave e agradável de assistir, como em um jogo.

Detalhes

Descrição original do autor

A real-time data/particle/simulation visualizer whose heavy compute runs in a Web Worker (off the main thread), optionally sharing memory with the UI via SharedArrayBuffer, and renders to a canvas at 60fps. Produced as a single self-contained `index.html`. Use when the brief asks for a "web worker", "simulation", "particle system", "physics", "off-main-thread", "fractal", "real-time compute", or "

repo: nexu-io/open-design

Popularidade

Estrelas no GitHub
101 mil
Posição no ranking
#516
Licença
Apache-2.0
Atualizada em
16/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas