Jogo educacional de matematica controlado por gestos das maos via webcam
Funcionalidades · Quick Start · Como Jogar · Estrutura · Colaboradores
O VisionQuest utiliza visao computacional para transformar a webcam em um controle de jogo. O jogador responde questoes matematicas usando gestos das maos - juntando o indicador com o polegar (gesto de pinca) para selecionar respostas.
O projeto foi desenvolvido como ferramenta educacional alinhada ao ODS 4 da ONU (educacao de qualidade), promovendo aprendizagem interativa e acessivel.
Note
Originalmente criado como projeto academico em 2024, foi completamente reestruturado em 2026 com arquitetura modular, novo sistema de UI/UX e mecanicas de jogo aprimoradas.
Deteccao de Maos em Tempo Real
- Deteccao de ate 2 maos simultaneamente via MediaPipe Tasks API
- Cursor visual seguindo o dedo indicador em tempo real
- Gesto de pinca (indicador + polegar) para interacao
- Esqueleto da mao desenhado sobre a interface
- Cursor muda de cor ao realizar a pinca (azul → verde)
Sistema de Questoes Matematicas
- Facil: soma e subtracao com numeros de 1 a 20
- Medio: multiplicacao, divisao e potencias
- Dificil: logaritmos, raizes quadradas, equacoes de 1o grau e expressoes com ordem de operacoes
- Plano cartesiano interativo - toque no ponto correto com a mao
- Distratores inteligentes (opcoes erradas plausíveis, sem respostas obvias)
Mecanicas de Jogo
- 3 vidas - erros tem consequencia real
- Sistema de streak - bonus a cada 3 acertos consecutivos
- Barra de progresso com contador de pontos (ex: 7/10)
- Feedback sonoro - sons distintos para acerto e erro
- Resposta correta revelada ao errar - aprendizado pelo erro
- Tela de fim de jogo com estatisticas completas (acertos, erros, pontuacao)
Interface e UX
- HUD com pontuacao, streak, vidas (coracoes) e dificuldade
- Botoes com hover highlight - mudam de cor ao passar o dedo
- Mao sempre visivel por cima de overlays (dicas, fim de jogo)
- Tema escuro com contraste otimizado para leitura sobre webcam
- Instrucoes visuais de como interagir em cada tela
Tip
Pre-requisitos: Python 3.9+ e uma webcam.
# 1. Clone o repositorio
git clone https://github.com/eoLucasS/VisionQuest.git
cd VisionQuest
# 2. Crie e ative um ambiente virtual
python -m venv venv
source venv/Scripts/activate # Windows (Git Bash)
# ou: venv\Scripts\activate # Windows (CMD/PowerShell)
# ou: source venv/bin/activate # Linux/macOS
# 3. Instale as dependencias
pip install -r requirements.txt
# 4. Execute o jogo
python main.pyImportant
Na primeira execucao o MediaPipe carrega o modelo de deteccao de maos, o que pode levar alguns segundos.
| Acao | Gesto |
|---|---|
| Mover cursor | Mova a mao - o dedo indicador controla o cursor |
| Selecionar/Clicar | Junte o indicador com o polegar (pinca) |
| Sair | Pressione a tecla Q a qualquer momento |
Tela Inicial → Selecao de Dificuldade → Questoes → Fim de Jogo
│ │ │
└─ Sair └─ Dicas └─ Jogar Novamente
- Tela inicial - selecione "Jogar" com o gesto de pinca
- Dificuldade - escolha entre Facil, Medio ou Dificil
- Questoes - responda fazendo pinca sobre a opcao correta ou tocando o ponto no plano cartesiano
- Fim - ao atingir 10 pontos (vitoria) ou perder 3 vidas (derrota), veja suas estatisticas
VisionQuest/
├── main.py # Ponto de entrada
├── requirements.txt # Dependencias
├── assets/
│ ├── hand_landmarker.task # Modelo MediaPipe de deteccao de maos
│ ├── preview.png # Screenshot do jogo
│ ├── images/ # Fotos dos colaboradores, icones
│ └── sounds/ # Efeitos sonoros (acerto/erro)
└── src/
├── config.py # Constantes e configuracoes centralizadas
├── game.py # State machine principal do jogo
├── hand_tracker.py # Deteccao de maos (MediaPipe Tasks API)
├── button.py # Botoes interativos com hover
├── cartesian_plane.py # Renderizacao do plano cartesiano
├── question_generator.py # Gerador de questoes matematicas
├── score_system.py # Pontuacao, vidas e streaks
└── screens/
├── title.py # Tela inicial
├── difficulty.py # Selecao de dificuldade
├── gameplay.py # Tela principal do jogo + HUD
├── game_over.py # Tela de fim de jogo com estatisticas
└── hint.py # Overlay de dicas
| Tecnologia | Uso |
|---|---|
| Python 3 | Linguagem principal |
| OpenCV | Captura de video e renderizacao da interface |
| MediaPipe | Deteccao de maos em tempo real (Tasks API) |
| Pygame CE | Sistema de audio |
| NumPy | Operacoes numericas |
O projeto abrange os seguintes topicos, alinhados a ementa academica:
- Aritmetica (soma, subtracao, multiplicacao, divisao)
- Potenciacao e raizes quadradas
- Logaritmos
- Equacoes de 1o grau
- Expressoes com ordem de operacoes
- Plano cartesiano e coordenadas
|
Lucas Silva |
Nycolas Garcia |
Danilo Santos |
Breno Melo |
MIT. Veja LICENSE para detalhes.
Feito por Lucas Silva