Ferramentas · No ar (PWA)

MoodTracker

Veja como o seu dia mexe com o seu humor e a sua atenção.

Painel de humor e atenção pela câmera: expressões, olhos, pausas e postura ao longo do dia. O vídeo é analisado no seu aparelho; nada é gravado nem enviado.

Sobre o projeto

O que é MoodTracker

O MoodTracker é um painel pessoal de humor e atenção. Com a câmera ligada, ele olha para o seu rosto de tempos em tempos (a cada 10 segundos, ou 8, 15, 30, 60, como você escolher), estima qual das 7 expressões aparece e mede os olhos, a boca e a direção da cabeça. No painel isso vira um índice de humor de 0 a 10, a expressão que mais apareceu, o tempo na frente da tela, as pausas, a atenção e os padrões por hora e por dia da semana.

O vídeo é analisado inteiro no seu aparelho, dentro do navegador. Nenhum quadro é gravado nem enviado: o que fica guardado é um resumo por hora (contagens e médias), no armazenamento do navegador. Você pode baixar esses resumos ou apagar tudo quando quiser.

São estimativas. Reconhecer uma expressão no rosto não é o mesmo que saber como a pessoa se sente, e a leitura depende de luz, distância e posição. Por isso cada leitura passa por um filtro de qualidade, e há uma calibração que ajusta os limites ao seu rosto. O painel não é um diagnóstico e não substitui a avaliação de um profissional.

Recursos

O que o MoodTracker faz

Humor, de 0 a 10

Um índice que começa em 5, sobe com feliz e surpreso e desce com triste, irritado, nojo e medo. Cada número vem com a diferença para o período anterior (ontem, ou os 7 ou 30 dias antes).

Um painel de verdade

Indicadores do período, expressões ao longo do dia, humor por dia da semana e hora, presença por hora e o que os números sugerem. Todo gráfico tem uma tabela equivalente.

A câmera não grava

O vídeo só existe na tela do seu aparelho. Nenhuma imagem é gravada, guardada ou enviada: o que fica é uma linha por hora, com contagens e médias.

Calibração de 20 segundos

Mede a abertura dos seus olhos e da sua boca e o que o seu rosto mostra em repouso. Os limites de olhos fechando e de bocejo passam a ser os do seu rosto, e o painel pode ajustar as médias ao seu normal.

Leituras filtradas

Cada leitura é uma rajada de 3 quadros: um piscar isolado não vira "olhos fechando". Pouca luz, rosto longe, pouco nítido ou virado ficam fora das médias, e o painel diz quantas leituras foram boas e por que as outras não foram.

Pausas e tempo na frente da tela

Soma o tempo com rosto à vista, conta as pausas de 5 minutos ou mais longe da tela e mostra o maior tempo seguido sem pausa.

Olhos, boca e postura

Olhos quase fechados por um tempo, bocejos, rosto virado, perto demais da tela e inclinação da cabeça. Se você ligar, também conta piscadas por minuto e a mão perto da boca (estimativas).

Instale e use sem internet

É um app instalável (PWA): o detector de rosto e os modelos (cerca de 1,3 MB) ficam guardados e o app abre e analisa sem conexão. O detector de mão (12,8 MB) só é baixado se você o ligar.

Os dados são seus

Baixe os resumos em JSON ou CSV, escolha por quanto tempo guardar (30, 90, 365 dias) e apague tudo com um toque.

Tecnologias

Por dentro do MoodTracker

face-api.js

Detecta o rosto, marca os pontos dos olhos, da boca e do nariz e estima as expressões, tudo no navegador. A versão e os modelos são fixos e conferidos por soma de verificação (npm run moodtracker:vendor).

MediaPipe Hands

Opcional: acha a mão para saber se ela está perto da boca. Só é baixado quando você liga a opção.

Resumos por hora no IndexedDB

Em vez de uma leitura a cada poucos segundos, o app soma tudo em uma linha por hora. O banco fica pequeno, o painel é instantâneo e nenhuma leitura individual existe para vazar.

Gráficos em SVG, sem biblioteca

Linhas e células desenhadas à mão, com cores validadas para os dois temas e para daltonismo, dica por ponteiro e teclado e tabela equivalente.

Regras puras e testadas

As contas do rosto, da calibração, das piscadas, da mão e das estatísticas não tocam em câmera nem em tela e rodam iguais no Node, onde são testadas com uma câmera de mentira e relógio falso.

PWA com service worker

Manifesto, ícones, telas de abertura do iPhone e um service worker que guarda a página, os módulos e os modelos de rosto para funcionar sem internet.

Node, Express e Eta

A mesma base do resto do portfólio, sem etapa de build. O servidor entrega a página e conta, de forma anônima, as ações.

FAQ

Perguntas frequentes

Meu vídeo vai para algum lugar?

Não. A câmera abre só no seu navegador, a análise acontece no seu aparelho e nenhuma imagem é gravada ou enviada. O servidor só recebe o nome de uma ação, numa lista fechada, para os números abertos (e nada com Não rastrear).

O que fica guardado?

Uma linha por hora, no armazenamento do navegador deste aparelho: quantas leituras houve, a soma de cada expressão, os olhos, o rosto virado, a mão perto da boca, as pausas. Não há foto, vídeo nem leitura individual. Dá para baixar tudo em JSON ou CSV e para apagar com um toque.

Isso diz como eu realmente me sinto?

Não. O app estima qual expressão o seu rosto mostra, e a expressão nem sempre combina com o que a pessoa sente. Use como um termômetro de tendência ao longo dos dias, nunca como diagnóstico. Quem se preocupa com a própria saúde emocional deve procurar um profissional.

Para que serve a calibração?

Em 20 segundos o app mede como é o seu rosto em repouso: a abertura dos olhos e da boca e o que ele mostra sem emoção. Com isso, os limites de "olhos fechando" e de bocejo passam a ser os seus, e a opção "Ajustar ao meu normal" tira das médias o que o seu rosto já mostra em repouso. Sem calibrar, valem limites iguais para todo mundo. A calibração não foi validada com rostos de verdade.

Por que algumas leituras são ignoradas?

Leituras com pouca luz, rosto longe da câmera, detecção pouco nítida ou rosto muito virado têm expressões e olhos pouco confiáveis, então ficam fora das médias. O painel mostra a porcentagem de leituras boas e o principal motivo das outras.

O app reconhece idade ou gênero?

Não. A extensão que deu origem ao app estimava os dois, mas estimar gênero pelo rosto é pouco confiável e o painel não precisa disso, então este app não faz.

Como funcionam as piscadas e a mão perto da boca?

São opcionais e ficam desligadas. As piscadas são contadas em janelas de 10 segundos, uma por minuto, e tendem a ser subestimadas: compare com a sua própria taxa em outros dias. A mão perto da boca não distingue roer unha de beber, comer ou coçar o rosto.

Funciona com a janela em segundo plano?

Você escolhe nos ajustes. Como o navegador pode reduzir a câmera de uma janela escondida, isso não foi testado em aparelhos reais: se as leituras ficarem escuras ou sumirem, deixe a janela visível, por exemplo num segundo monitor.

E se houver mais de uma pessoa na imagem?

O app lê um rosto por vez: o que o detector achar mais nítido. Para um painel confiável, use sozinho.

Em quais navegadores funciona?

Foi desenvolvido e testado no Chrome do computador, com uma câmera simulada. Safari, Firefox e celulares não foram testados.

Funciona sem internet? É grátis?

Depois da primeira visita, sim: a página e o detector de rosto ficam guardados no aparelho. É grátis, sem cadastro e sem limite de uso, porque o trabalho é feito no seu aparelho.

Gostou do MoodTracker? Dá para apoiar o trabalho:

Continue explorando

Veja também

Todos os projetos