Inclusive education · Educação inclusiva
English · Português · Guided tour / Visita guiada · Validation / Validação
EN: Can an activity end without forcing the next step?
PT: Uma atividade pode terminar sem forçar a próxima etapa?
| Goal · Objetivo | Where to go · Por onde começar |
|---|---|
| Understand a real example · Entender um exemplo concreto | Walkthrough / Roteiro |
| Reproduce and compare · Reproduzir e comparar | Evidence tour / Visita às evidências |
| Inspect the checks · Inspecionar as verificações | Validation record / Registro de validação · CI |
| Explore in the browser · Explorar no navegador | Public demonstration / Demonstração pública |
Example result · Resultado do exemplo: When the first timer expires, the activity index remains 0; explicit completion advances it to 1. / Quando o primeiro tempo expira, o índice permanece 0; a conclusão explícita avança para 1.
Try a comparison · Experimente uma comparação
EN: Let the first timer expire, then compare explicit complete, pause, skip and stop actions.
PT: Deixe o primeiro tempo expirar e compare ações explícitas de concluir, pausar, pular e encerrar.
A private browser-based planner and player for predictable, optional activities. Build a visual sequence, customize invitations, and give the participant control over pacing. Designed for inclusive educational activities with children and adults, including autistic participants.
A useful activity plan should make the next step clearer while preserving the freedom to decline it. This project supports facilitators who want predictable structure, simple language, quiet presentation, and a visible way to pause or finish.
This repository is a working software prototype in a development program centered on the Unitree Go2 PRO. It contributes to inclusive educational activities with children and adults, including autistic participants. The implementation, examples, and test suite provide a reviewable software baseline for the next stage of controlled hardware work.
The planner supplies the human-facing structure around an optional robotics encounter: what will happen, what can happen next, and how to pause or finish. Its robot-observation template explicitly leaves distance and participation to the person. A supported Go2 PRO could later serve as the stationary object of an optional, facilitator-led observation activity. It is not required to use the planner, and the application does not activate it.
A participant and facilitator prepare a four-step plan: choose a distance, optionally observe one detail of a stationary Go2 PRO, take a break, and finish. Watching from elsewhere or declining the activity remains a complete choice. The planner supplies predictable invitations and pause/end controls, without assessing behavior or claiming therapeutic benefit.
Hardware access matters: the standard PRO does not include secondary development in Unitree's comparison table. Custom integration therefore requires written vendor confirmation or a supported development configuration. The software currently has no device adapter. Official Go2 configuration reference, checked September 10, 2026.
Read the Go2 PRO hardware roadmap for the proposed setup, measurements, acceptance criteria, and integration boundaries.
| Capability | Implementation |
|---|---|
| Editable activity plans | Three templates, 1–12 activities, reorder controls, editable invitations, and a 20-change undo history. |
| Participant-controlled pacing | Start, pause, resume, finish an activity early, skip, or end the session. |
| Quiet defaults | Optional timer, no sounds or flashing effects, and no automatic move to the next activity. |
| Portable local plans | Device-local storage, validated JSON import/export, and a print-friendly plan. |
| Readable presentation | Now/next preview, labeled controls, optional higher contrast, and age-neutral design. |
- Choose A gentle introduction and select an activity to edit its invitation.
- Move or remove activities, then use Undo change to compare the plan.
- Start a session, pause it, and try Skip activity or End session.
- Export the plan to keep a copy. Suggested times never force an activity change.
Use Node.js 22 or newer. No dependency installation, keys, or account is required.
git clone https://github.com/galafis/inclusive-session-studio.git
cd inclusive-session-studio
npm test
npm run examples
npm startOpen http://127.0.0.1:4173. The included development server listens only on your machine. Set the PORT environment variable if that port is already in use. The demo is a static application; it can also be hosted by any ordinary static web server. Open it over HTTP, rather than directly from a file, so browser modules load correctly.
The following code runs against the software module, without a robot:
import { presetPlan, createSession, tick } from './src/session.js';
const plan = presetPlan('observation');
const session = tick(createSession(plan), 180);
console.log(session.status); // ready
console.log(session.index); // 0: the next activity was not forcedOpen examples/observation.json for a complete input you can import through the demo. The technical design documents accepted inputs, outputs, and assumptions.
src/session.js Pure domain logic and validation
src/app.js Browser interaction and rendering
src/browser.js Import, export, and text escaping
test/ Behavioral regression tests
examples/ Synthetic, versioned JSON examples
docs/ Architecture, evaluation, and facilitator material
scripts/serve.mjs Local static development server
.github/workflows/ Linux and Windows checks on Node 22 and 24
The current suite includes 30 automated tests. Run npm test for the behavioral suite or npm run test:coverage for a local coverage report. The workflow runs the same suite on Linux and Windows with Node 22 and 24. See validation notes for the tested properties and remaining review work.
This is an educational planning application, not an assessment, diagnostic, or treatment tool. No participant study or clinical benefit is claimed. The optional robot-observation template is a written plan only; the application does not connect to or operate hardware.
This is an independent project by Gabriel Demetrios Lafis. It does not claim endorsement by a hardware vendor, university, emergency service, or clinical organization. Institutional contact: [email protected].
Accessible Route Lab · Rescue Scenario Lab
The projects form a small portfolio for accessible mobility research, rescue education, and inclusive activity planning. They share a commitment to inspectable software and clear limits on demonstrated capability.
See CONTRIBUTING.md and SECURITY.md. The source and documentation are available under the MIT license. Suggestions from people with lived experience and relevant practitioners are especially welcome.
Abrir demonstração · Arquitetura · Guia do projeto · Roteiro de desenvolvimento com Go2 PRO
Planejador e reprodutor de atividades previsíveis e opcionais, com armazenamento local. Permite criar uma sequência visual, adaptar convites e preservar a escolha da pessoa sobre ritmo, pausas e encerramento.
É um protótipo funcional de software em um programa de desenvolvimento direcionado ao Unitree Go2 PRO. Sua contribuição está ligada a atividades educacionais inclusivas com crianças e adultos, incluindo participantes autistas. A implementação, os exemplos e a suíte de testes formam uma base de software verificável para a próxima etapa de trabalho controlado com o equipamento.
O planejador fornece a estrutura de uma interação opcional com robótica: o que acontecerá, qual pode ser a próxima etapa e como pausar ou encerrar. O modelo de observação do robô deixa a distância e a participação sob escolha da pessoa. Um Go2 PRO com suporte poderia ser, posteriormente, o objeto estacionário de uma atividade opcional conduzida por facilitador. Ele não é necessário para usar o planejador, e o aplicativo não o aciona.
Exemplo concreto: Participante e facilitador preparam quatro etapas: escolher a distância, observar opcionalmente um detalhe de um Go2 PRO estacionário, fazer uma pausa e encerrar. Observar de outro local ou recusar a atividade continua sendo uma escolha completa. O planejador oferece convites previsíveis e controles de pausa e encerramento, sem avaliar comportamento nem alegar benefício terapêutico.
Acesso ao equipamento: a configuração PRO padrão não inclui desenvolvimento secundário na tabela da Unitree. Integrações personalizadas dependem de confirmação escrita do fabricante ou de uma configuração de desenvolvimento suportada. Este software ainda não possui adaptador para o robô. Consulte a referência oficial de configurações Go2, verificada em 10 de setembro de 2026.
| Capacidade | Implementação |
|---|---|
| Planos editáveis | Três modelos, de 1 a 12 atividades, reordenação, convites personalizados e histórico de 20 alterações para desfazer. |
| Ritmo controlado pelo participante | Iniciar, pausar, retomar, concluir antes do tempo sugerido, pular ou encerrar a sessão. |
| Padrões tranquilos | Temporizador opcional, sem sons ou efeitos piscantes e sem avanço automático de atividade. |
| Planos locais e portáteis | Armazenamento no dispositivo, importação e exportação JSON validada e impressão do plano. |
| Apresentação legível | Prévia do agora e do próximo passo, controles identificados, contraste opcional e linguagem visual sem infantilização. |
- Escolha A gentle introduction e selecione uma atividade para editar o convite.
- Reordene ou remova atividades; use Undo change para recuperar o plano anterior.
- Inicie uma sessão, pause e experimente Pular atividade ou Encerrar sessão.
- Exporte o plano. O tempo sugerido nunca força a troca de atividade.
A demonstração e a documentação oferecem inglês e português. Use Language / Idioma para alternar a interface sem reiniciar o experimento. Todos os exemplos são sintéticos.
Requisito: Node.js 22 ou superior. Não é necessário instalar dependências, fornecer chaves ou criar uma conta.
git clone https://github.com/galafis/inclusive-session-studio.git
cd inclusive-session-studio
npm test
npm run examples
npm startAbra http://127.0.0.1:4173. O servidor de desenvolvimento aceita conexões apenas da própria máquina. Se a porta estiver ocupada, configure a variável de ambiente PORT. A aplicação também pode ser publicada em um servidor comum de arquivos estáticos. Use HTTP, em vez de abrir o HTML diretamente como arquivo, para permitir o carregamento dos módulos.
Este código executa o módulo do protótipo e não envia comandos ao equipamento:
import { presetPlan, createSession, tick } from './src/session.js';
const plan = presetPlan('observation');
const session = tick(createSession(plan), 180);
console.log(session.status); // ready
console.log(session.index); // 0: the next activity was not forcedO arquivo examples/observation.json é um exemplo completo para importar pela demonstração. A documentação de arquitetura explica formatos, resultados e premissas.
| Caminho | Finalidade |
|---|---|
src/session.js |
Regras do domínio e validação, independentes da interface |
src/app.js |
Interações e apresentação no navegador |
src/browser.js |
Importação, exportação e tratamento de texto |
test/ |
Testes de comportamento e regressão |
examples/ |
Entradas JSON sintéticas e reproduzíveis |
docs/ |
Arquitetura, avaliação e material de facilitação |
scripts/serve.mjs |
Servidor estático de desenvolvimento local |
.github/workflows/ |
Verificações em Linux e Windows, com Node 22 e 24 |
A suíte atual contém 30 testes automatizados. Execute npm test para reproduzir a suíte, ou npm run test:coverage para gerar um relatório local de cobertura. O status de cada commit pode ser consultado na aba Actions.
A suíte verifica pausa sem consumo de tempo, avanço somente por escolha, encerramento imediato, reordenação, cópia independente do plano, validação de importações, limites de duração e tratamento seguro de texto. Não há pontuação ou penalidade por pular atividades.
As notas de validação distinguem as verificações de software das avaliações ainda necessárias com tecnologias assistivas, participantes e profissionais.
É uma ferramenta de planejamento educacional, sem funções de avaliação, diagnóstico ou tratamento. Não foram realizados estudos com participantes nem demonstrados resultados clínicos. O modelo de observação é apenas um plano escrito e não conecta nem opera o robô.
- Disponível: software funcional, demonstração, testes, exemplos e documentação.
- Proposto: revisão participativa e avaliação por profissionais da área, com procedimentos adequados de consentimento e privacidade.
- Etapa de equipamento: acesso ao Go2 PRO, confirmação dos recursos suportados e demonstrações físicas controladas.
- Dependente de desenvolvimento e validação adicionais: qualquer integração programática ou uso com participantes que envolva equipamento físico.
Projeto independente de Gabriel Demetrios Lafis. Contato institucional: [email protected]. Não representa endosso de fabricante, universidade, serviço de emergência ou organização clínica.
Contribuições são bem-vindas conforme CONTRIBUTING.md. Consulte SECURITY.md para relatar vulnerabilidades. Código e documentação estão sob a licença MIT.
Projetos relacionados: Accessible Route Lab, Rescue Scenario Lab e Inclusive Session Studio.
Use Language / Idioma in the demo header to switch between English and Portuguese. Changing the display language preserves the current experiment. The language preference and the current plan are saved locally, as described in the architecture guide. JSON identifiers and state codes remain stable. Worked examples and expected results provide reproducible inputs and explicit numerical checks.
Use Language / Idioma no cabeçalho para alternar inglês e português. A troca preserva o experimento atual. A preferência de idioma e o plano atual são salvos localmente, conforme o guia de arquitetura. Identificadores JSON e códigos de estado permanecem iguais. Os exemplos comentados e resultados esperados oferecem entradas reproduzíveis e verificações numéricas explícitas.
Templates are created in the selected language when loaded. Switching the interface language never rewrites an edited or imported invitation; select the desired language before loading a fresh template. Portuguese JSON plans are included in examples/.
Os modelos são criados no idioma selecionado ao carregá-los. Trocar o idioma da interface nunca reescreve um convite editado ou importado; selecione o idioma antes de carregar um novo modelo. Os planos JSON em português estão em examples/.