Demonstração web que usa a cĂąmara e visĂŁo computacional para detetar um gesto inspirado no selo do Kage Bunshin (Naruto) e mostrar um efeito de âclonesâ em volta da figura recortada do utilizador.
- Captura de vĂdeo em tempo real (webcam).
- MediaPipe Hands â segue atĂ© duas mĂŁos e desenha o esqueleto (landmarks) sobre o canvas.
- Motor de gesto â analisa um buffer de frames e procura o padrĂŁo âselo em cruzâ: Ăndice e mĂ©dio estendidos, anel e mindinho mais fechados, pulsos prĂłximos e barras das mĂŁos aproximadamente perpendiculares em 2D.
- MediaPipe Selfie Segmentation â gera mĂĄscara da pessoa; o recorte Ă© combinado com o frame para desenhar quatro clones espelhados Ă esquerda e Ă direita, com brilho verde chakra.
- Interface â texto do jutsu, flash discreto no ecrĂŁ, cantos HUD, vinheta e scanline (tema âchakra / sci-fiâ).
| Ărea | Tecnologia |
|---|---|
| Estrutura | HTML5 |
| Estilo | CSS3 (@font-face, variĂĄveis, gradientes, backdrop-filter onde aplicĂĄvel) |
| LĂłgica | JavaScript (ES6+), sem framework |
| GrĂĄficos | Canvas 2D API (getContext('2d')) |
| CĂąmara & pipeline | MediaPipe via CDN (jsDelivr) |
| Modelos | @mediapipe/hands, @mediapipe/selfie_segmentation, @mediapipe/camera_utils |
| Tipografia | Fonte Ninja Naruto (font/njnaruto.ttf) â ver font/readme.txt para licença e crĂ©ditos |
- Hands â deteção e tracking de landmarks 3D das mĂŁos (21 pontos por mĂŁo).
- Selfie Segmentation â mĂĄscara binĂĄria pessoa vs. fundo; usada para recortar a silhueta e alimentar o efeito dos clones.
- Camera Utils â classe
Cameraque liga o<video>ao envio de frames para os grafos do MediaPipe.
Os ficheiros .wasm e modelos sĂŁo carregados automaticamente a partir do pacote npm no CDN (locateFile).
naruto-computer-vision/
âââ kagebunshin.html # PĂĄgina principal
âââ kagebunshin.css # Estilos e tema visual
âââ kagebunshin.js # Gestos, MediaPipe, canvas, efeitos
âââ font/
â âââ njnaruto.ttf
â âââ readme.txt # Licença e informação da fonte
âââ README.md
- Abrir no browser:
http://localhost:{PORT}/kagebunshin.html(ajusta a porta ao comando usado). - Permitir acesso Ă cĂąmara quando o browser pedir.
Recomenda-se Chrome ou Edge recentes; em Safari podem aplicar-se limitaçÔes extra à cùmara ou ao WebGL usado pelo MediaPipe.
- Browser com getUserMedia, Canvas e WebAssembly (para os modelos MediaPipe).
- ConexĂŁo Ă internet na primeira carga (scripts e modelos via CDN), salvo que configures cĂłpias locais dos pacotes
@mediapipe/*.
O processamento Ă© feito no cliente (no teu browser). NĂŁo hĂĄ servidor prĂłprio no repositĂłrio a gravar vĂdeo; apenas o fluxo que o MediaPipe precisa para inferĂȘncia.
- Naruto / elementos de marca: propriedade dos respetivos titulares; este projeto é uma demonstração educacional e de entretenimento sem afiliação oficial.
- Fonte Ninja Naruto: autores e termos em
font/readme.txt.